Предисловие

Энигма была самым продвинутым шифровальным устройством своего времени и казалась неуязвимой.

Она использовалась по всей военной системе Третьего рейха — от подводных лодок до штаба СС. Её взлом потребовал терпения, математики и человеческого фактора.

В этой статье — как появилась Энигма, кто первым раскрыл её слабости и какую роль в этом сыграл Алан Тьюринг.

Дисклеймер

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

Буду благодарен исправлениям и комментариям.

Как все начиналось

Мало кто знает, но машина, ставшая символом нацистской секретности, появилась вовсе не в годы войны и даже не по заказу армии.

В 1918 году немецкий инженер и предприниматель Артур Шербиус запатентовал устройство под названием Enigma. Его цель была мирной: сделать защищённую корпоративную переписку такой же лёгкой, как набор текста на печатной машинке, но с гарантией, что никто посторонний не прочитает её.

Артур Шербиус
Артур Шербиус

Машина выглядела как миниатюрная пишущая машинка с лампочками и клавишами. Когда была нажата, скажем, A, загоралась J, потом F, потом Z, и так далее. Внутри стояли вращающиеся роторы, которые каждый раз меняли схему замены. За одной буквой скрывался целый каскад преобразований, который практически никогда не повторялся дважды.

В мирное время коммерческий успех не пришёл. Шербиус предлагал Энигму банкам, корпорациям и министерствам, но большинство из них посчитали это ненужной экзотикой. Машины пылились на складах, а реклама не работала.

А вот военные заинтересовались.

В 1926 году германский флот первым начал использовать Энигму для шифровки приказов. За ним подтянулись армия и Люфтваффе. И началас�� кастомизация: добавляли новые роторы, штекеры, меняли внутреннюю проводку, улучшали систему индикации. К 1935 году у Германии уже была своя секретная версия Энигмы, недоступная гражданским, и с каждым годом она становилась всё сложнее.

Устройство Энигмы

Суть Энигмы заключалась в одном гениальном механизме - роторах. Каждый из них представлял собой диск с 26 контактами по окружности, соединёнными внутри случайным образом. Когда оператор нажимал клавишу, сигнал проходил через несколько таких роторов, каждый из которых сдвигался после нажатия. В результате одна и та же буква каждый раз шифровалась по-разному.

Cхема устройства Энигмы
Cхема устройства Энигмы

Добавим сюда ещё отражатель (рефлектор), который направлял ток обратно — и всё, у нас шифр, где ни одна буква не может быть закодирована сама собой (например, A никогда не станет A). А если к этому подключить ещё и штекерную панель (plugboard), которая вносила дополнительные перестановки между буквами, то общее число возможных комбинаций приближалось к 10²³

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

Революционность Энигмы была в том, что она механизировала шифрование — каждый солдат мог нажать пару клавиш и получить надёжно зашифрованное послание. Раньше для этого нужны были таблицы и ручной труд.

Немцы были в восторге: на фоне провалов с кодовыми книжками в Первую мировую, Энигма казалась непрошибаемой. И её внедрили повсюду — от флота до СС.

На Хабре есть отличная статья, посвященная устройству и криптоанализу машины.

Собственной персоной
Собственной персоной

Роль Польши

В 1932 году поляк Мариан Реевский применил математику, логику и статистику и обнаружил закономерности в сообщениях: привычки операторов, повторяющиеся шаблоны, даже то, что многие использовали «ААА» как индикатор ключа (qwerty своего времени)

Мариан Реевский
Мариан Реевский

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

Схематичное изображение польской "Бомбы"
Схематичное изображение польской «Бомбы»

Всего построили шесть экземпляров(по числу возможных перестановок ��рёх роторов Энигмы). Работали они по принципу автоматизированного перебора ключей, основанного на уязвимости с повторяющимся индикатором (вроде «ABCABC»).

Машина была электромеханической, с вращающимися роторами и цепью логики, и позволяла за пару часов найти ключ на день.

Но у нас нет её фотографий.

Все шесть бомб были уничтожены при эвакуации — сначала из Варшавы, затем из Франции. Никаких фото, чертежей или схем не сохранилось, только описания в воспоминаниях Мариана Рейевского и архивных записях. Поэтому в интернете мы можем найти лишь британскую Bombe, а польская осталась в истории как невидимая, но реальная предтеча всего дальнейшего криптоанализа.

Художественное изображение польской "Бомбы"
Художественное изображение польской «Бомбы»

В 1938 году немцы добавили ещё два ротора, а также увеличили количество соединений с 5–8 до 7–10, а вскоре отказались и от концепции двойного ключа. Из‑за этого «Бомбы» перестали справляться и работа застопорилась.

Небольшое пояснение про роторы

Если раньше роторы выбирались из трёх фиксированных, и было всего 6 возможных комбинаций (3!), то теперь из пяти роторов нужно было выбрать любые три и расставить их и это уже 60 комбинаций: Первый ротор нужно было выбрать из 5, второй из оставшихся 4, третий — из 3. Итого: 60 разных вариантов (5 * 4 * 3 = 60). Чтобы охватить все варианты, потребовалось бы в 10 раз больше машин, которых у поляков просто не было. Это сделало старую систему взлома практически неприменимой и польская криптология упёрлась в потолок ресурсов.

И тогда, в 1939 году, поляки передали все свои наработки британцам.

Более подробно про этот этап можно почитать в соответствующей статье на Хабре.

Тьюринг входит в игру

Когда в сентябре 1939 года Алан Тьюринг прибыл в Блетчли-Парк, всё, что у англичан было по Энигме, это тревожные догадки и польские наработки. Война только начиналась, а немцы уже начали каждый день менять ключи, усложнили процедуру шифрования и добавили новые роторы. Всё это делало ручную расшифровку невозможной.

Тьюринг взял польскую идею «бомбы» и усовершенствовал её, добавив метод поиска ключей на основе предположений о содержании сообщения. Он понял, что можно использовать «cribs» — предположения о содержании сообщения (например, фраза «Heil Hitler» в конце), чтобы сузить круг перебора.

Bombe из Блетчли-Парка
Bombe из Блетчли-Парка

Что такое «cribs» и зачем они нужны

Crib это предположение о фрагменте исходного текста зашифрованного сообщения. Например, если перехвачено сообщение от немецкого флота, можно догадаться, что в конце будет фраза Heil Hitler, или в начале Wetterbericht (прогноз погоды).Эти предсказуемые куски текста становятся зацепками: если известно (или хотя бы подозревается), что где‑то в шифре закодировано, скажем, слово WETTER, можно перебрать все возможные ключи и посмотреть при каких настройках «Энигма» действительно превращает W в Q, E в F и так далее.

Давайте посмотрим на примере:

Допустим, мы перехватили зашифрованное сообщение: XYQZLG и мы подозреваем, что в этом месте должно быть слово WETTER. Это и есть наш crib — догадка о фрагменте исходного текста.

Далее наша «бомба» перебирает возможные настройки и проверяет: может ли при этих настройках Enigma слово «WETTER» действительно зашифроваться в «XYQZLG»?

Если мы получаем:

W → X  

E → Y  

T → Q  

T → Z  

E → L  

R → G

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

С такими друзьями...

Самым надёжным союзником Блетчли-Парка оказался немецкий оператор.

Каждый день немцы получали:

  1. Дневной ключ (общая конфигурация: порядок роторов, штекеры, кольца)

  2. Ключ сообщения - оператор сам выбирал 3 буквы, чтобы зашифровать начало

Эти три буквы должны были быть абсолютно случайными.

Но, несмотря на строжайшие инструкции, люди часто нарушали протоколы:

  • Выбирали предсказуемые стартовые буквы вроде «AAA» или «QWE».

  • Использовали имена — например, «Cillie» (имя девушки), что дало название целому классу ошибок — Cillies.

  • Иногда вставляли нешифрованные слова внутрь текста: «ein», «Hitler», «bomben». От безысходности или спешки(например, находясь под обстрелом).

Эти мелкие ляпы стали теми «трещинами», через которые и пролезли британские аналитики. Каждый фрагмент позволял уточнить настройку, понять как настроены роторы или отфильтровать ложные гипотезы.

Иногда одной человеческой ошибки хватало, чтобы сразу получить дневной ключ.

Итог

Алан Тьюринг вошёл в историю как человек, сыгравший ключевую роль во взломе Энигмы. Его разработки стали основой британской Bombe — машины, позволившей регулярно вскрывать немецкие шифры и получать стратегически важную информацию. Это значительно сократило войну и, по некоторым оценкам, спасло сотни тысяч жизней.

Но его вклад не ограничивается криптоанализом.

В 1936 году, ещё до войны, Тьюринг опубликовал работу «On Computable Numbers», где описал концепцию универсальной машины — абстрактного устройства, способного моделировать любую другую вычислительную систему. Именно эта модель легла в основу теории вычислений и всех современных компьютеров.

После войны он участвовал в разработке одного из первых британских компьютеров — ACE (Automatic Computing Engine). В 1950 году он опубликовал статью «Computing Machinery and Intelligence», в которой предложил метод проверки «мышления» у машины. То, что позже назовут «Тест Тьюринга».

Ссылки на обе работы приведены в конце статьи.

Его научные труды оказались настолько фундаментальны, что до сих пор лежат в основе информатики, искусственного интеллекта и теории алгоритмов.

В мирной жизни Тьюрингу не дали ни уважения, ни безопасности. Его осудили за «неправильную любовь», заставили принимать гормоны, сломали здоровье, а в итоге и судьбу. Он умер в 1954 году, предположительно покончив с собой, возможно, укусив яблоко с цианидом — хотя точных доказательств нет.

Подробнее про Алана можно прочитать, например, в статье на Хабре, а также в книге «Alan Turing: The Enigma»

Alan Turing: The Enigma - биография Алана Тьюринга
Alan Turing: The Enigma - биография Алана Тьюринга

Сегодня, когда мы строим ИИ и передаём машинам всё больше задач, которые раньше считались «человеческими», стоит вспомнить, с чего всё началось:

А может ли машина мыслить?

Скульптура Алана Тьюринга в Блетчли-Парке
Скульптура Алана Тьюринга в Блетчли-Парке

Полезные ссылки

Помимо уже упомянутых в статье хочется сказать про:

“Computing Machinery and Intelligence” (1950)

Знаменитая статья, в которой Тьюринг впервые формулирует идею теста Тьюринга и рассуждает о мышлении машины.

Читать PDF (англ.)

“On Computable Numbers, with an Application to the Entscheidungsproblem” (1936)

Работа, с которой всё началось. Именно здесь он описывает универсальную машину — математическую абстракцию, ставшую основой всех компьютеров.

Читать PDF (англ.)

Национальные архивы США: «Turing and the Breaking of Enigma»

Документ, на котором основан этот пост — подробный исторический разбор со схемами, источниками и фотографиями.

Читать PDF (англ.)

Проникая в мысли противника: легендарный Блетчли‑Парк

Историческая статья‑экскурсия, посвященная Блетчли‑Парку.

Читать на Habr (рус.)

Мой телеграм канал — здесь разборы научных статей, рекомендации книг, обзоры новостей индустрии и не только