Шифр «Энигмы»: почему современный ноутбук взламывает его за секунды?

Computerphile 2,9 млн 21 мин 5 мин 12.04.2021
Главное

Выпуск новой 50-фунтовой банкноты с портретом Алана Тьюринга побудил авторов популярного технологического канала Computerphile задаться интригующим вопросом: насколько легко взломать шифр легендарной машины Enigma в XXI веке с помощью обычного ноутбука? Обладая вычислительной мощностью, многократно превосходящей все знаменитые электромеханические машины Блетчли-Парка вместе взятые, современный исследователь может попытаться применить лобовую атаку. Экспертный эксперимент показал, что даже без знания исходного текста статистические методы позволяют эффективно обходить колоссальное число комбинаций немецкого шифратора, открывая удивительные параллели с современными криптографическими алгоритмами.

⚙️ Устройство «Энигмы» и сложность её комбинаторики 0:52

Шифровальная машина Enigma представляет собой выдающийся образец инженерной мысли своего времени, чья безопасность строилась на многоуровневом механическом изменении электрического сигнала. Технически процесс шифрования выглядит следующим образом: при нажатии клавиши с буквой электрический ток сначала проходит через коммутационную панель (plugboard), которая меняет местами определенные пары букв. Затем сигнал последовательно преодолевает три вращающихся ротора, каждый из которых осуществляет внутреннюю перекоммутацию по сложной схеме проводки. Достигнув рефлектора (отражателя), ток возвращается обратно через те же роторы и коммутационную панель в обратном направлении, зажигая лампочку с итоговой зашифрованной буквой.

Главная сложность для дешифровки заключается в том, что роторы динамически вращаются: при каждом нажатии клавиши первый ротор поворачивается на один шаг, периодически задействуя и продвигая следующие за ним диски. Это означает, что схема подстановки меняется с каждым новым символом сообщения. Если набрать подряд комбинацию одинаковых букв, машина выдаст набор абсолютно разных, случайных на вид символов. Единственной важной конструктивной особенностью и одновременно ключевой слабостью «Энигмы» является то, что буква никогда не может зашифроваться сама в себя.

Общее число возможных комбинаций настроек машины колоссально и включает в себя несколько параметров:

Такой объем ключевого пространства делает полный перебор всех настроек вручную или на обычном компьютере непрактичным, вынуждая искать обходные пути.

📊 Математика против шифра: индекс совпадений 5:00

Во время Второй мировой войны специалисты в Блетчли-Парк опирались на так называемую атаку на основе известного открытого текста. Они искали в перехваченных сообщениях предсказуемые повторяющиеся фразы, например, «прогноз погоды», и на основе этого исключали невозможные конфигурации роторов. Однако при отсутствии подсказок у криптоаналитиков прошлого не было вычислительной мощности для атаки методом «грубой силы». Сегодня, как отмечает автор видео, можно реализовать атаку исключительно на основе шифротекста (ciphertext-only attack), когда структура исходного сообщения абсолютно неизвестна.

Для решения этой задачи исследователи отказываются от тяжеловесных алгоритмов глубокого обучения в пользу простых и быстрых статистических свойств текста. Главным инструментом становится индекс совпадений (Index of Coincidence) — математический показатель, отражающий вероятность того, что две случайно выбранные из текста буквы окажутся одинаковыми.

Данный метод опирается на фундаментальные частотные характеристики языков:

Индекс совпадений измеряет степень неравномерности распределения символов. Поскольку в естественном языке одни буквы встречаются гораздо чаще других, появление одинаковых пар становится более вероятным. Главная уязвимость «Энигмы» заключается в том, что правильная настройка даже одного из элементов машины делает результирующий текст чуть менее случайным. Это позволяет двигаться к верному решению постепенно, измеряя качество получаемого текста на каждом шаге.

💻 Пошаговый взлом на современном ноутбуке 12:56

Для демонстрации уязвимости автор видео написал собственную программную реализацию «Энигмы» и протестировал алгоритмы оптимизации, отметив, что желающие также могут воспользоваться готовым визуальным инструментом CrypTool. В качестве экспериментального материала использовался реальный шифротекст, предоставленный собеседником и зашифрованный с использованием пяти пар штекеров на коммутационной панели.

Процесс дешифровки был разделен на три последовательных этапа:

  1. Перебор конфигураций и начальных положений роторов. Программа тестирует все возможные комбинации трех роторов из пяти и все их стартовые позиции. Это составляет около 17 000 комбинаций, что для ноутбука является тривиальной задачей и занимает около 10 секунд. Алгоритм фиксирует настройки с наивысшим индексом совпадений. В данном тесте лучшим результатом стала конфигурация роторов 2-5-3 со стартовыми позициями 21-3-25, выдавшая индекс 0,043, что уже существенно выше фонового шума случайного текста.
  2. Определение настроек колец роторов. После фиксации основных параметров роторов запускается подбор положений колец. Этот этап занимает доли секунды, так как требует проверки всего около 600 комбинаций. Лучшие настройки колец определяются по тому, как они влияют на момент поворота соседних дисков.
  3. Взлом коммутационной панели. Поскольку полный перебор сотен триллионов штекерных комбинаций невозможен, применяется последовательный жадный алгоритм. Программа поочередно тестирует первые 300 с лишним вариантов для одной пары контактов, фиксирует лучший результат, улучшающий индекс совпадений, и переходит к следующей паре.

В результате работы программы на выходе получается текст, который изначально кажется хаотичным, но постепенно обретает читаемую форму. В финале эксперимента на экране проявились узнаваемые очертания знаменитой научной работы Алана Тьюринга: фраза «I propose to consider the question... Can machines think». Из-за небольших погрешностей в определении моментов поворота колец отдельные буквы остались искаженными, однако текст стал полностью понятен для человека.

🔐 Границы уязвимости и уроки для современной криптографии 18:05

Несмотря на успешную демонстрацию, автор видео подчеркивает, что «Энигму» нельзя назвать абсолютно беззащитной, и ее надежность напрямую зависит от контекста использования. Главным фактором против статистического взлома выступает длина сообщения. На коротких текстах (например, из 50 символов) фитнес-функции вроде индекса совпадений не работают, превращаясь в чистый цифровой шум. Во время войны немецкое командование знало об этой особенности и стремилось жестко ограничивать длину радиограмм порогом в 200–250 символов. При использовании полноценных 10 пар штекеров на коммутационной панели для уверенной работы частотных алгоритмов сегодня потребовался бы перехваченный массив объемом от 1200 до 1500 символов.

Ситуация кардинально меняется, если атакующий может угадать хотя бы часть исходного сообщения. Подобные допущения лежат в основе современной криптографии: например, при отправке любого HTTP-запроса веб-серверу в начале пакета всегда идет стандартная и легко предсказуемая конструкция вроде «HTTP GET». Знание этих шаблонов мгновенно убирает статистический шум и позволяет взламывать исторические шифры практически мгновенно.

Основной вывод авторов канала заключается в демонстрации фундаментального разрыва между криптографией прошлого и настоящего. «Энигма» уязвима, поскольку позволяет осуществлять постепенное приближение к правильному ответу: угадав малую часть ключа, взломщик видит улучшение метрики. Современные симметричные алгоритмы (такие как AES с 128-битным ключом) полностью лишены этого изъяна. В них невозможно подобрать сначала первую половину ключа, а затем вторую. Изменение даже одного бита в ключе современного шифра приводит к полной и непредсказуемой замене всего выходного текста на новый хаотичный массив, делая методы постепенного подбора абсолютно бесполезными.

💬 Цитаты

«Если вы угадаете настройки одного ротора, результат дешифровки будет лучше, чем если бы все они были неверными.»

Ведущий канала Computerphile 04:33

«В современных шифрах невозможно подобрать сначала первую половину ключа, а затем вторую.»

Ведущий канала Computerphile 20:53
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Индекс совпадений
Статистический показатель, измеряющий вероятность совпадения двух случайных букв в тексте.
Атака на основе шифротекста
Метод криптоанализа, при котором исследователю известен только зашифрованный массив данных.
Рефлектор
Устройство в машине «Энигма», возвращающее электрический сигнал обратно через роторы.
📊 Цифры
⚖️ Другая сторона
Технологии и IT Enigma Computerphile индекс совпадений криптоанализ