Предисловие
Энигма была самым продвинутым шифровальным устройством своего времени и казалась неуязвимой.
Она использовалась по всей военной системе Третьего рейха – от подводных лодок до штаба СС.
Её взлом потребовал терпения, математики и человеческого фактора.
В этой статье – как появилась Энигма, кто первым раскрыл её слабости и какую роль в этом сыграл Алан Тьюринг.
Дисклеймер
Это не академическое исследование и не глубокий технический разбор. Это просто попытка рассказать важный эпизод прошлого доступным языком. Пишу я не как историк, а как человек, которому было любопытно. Если я что-то перепутал, то поправьте. Если статья понравится, то я буду рад.
Буду благодарен исправлениям и комментариям.
Как все начиналось
Мало кто знает, но машина, ставшая символом нацистской секретности, появилась вовсе не в годы войны и даже не по заказу армии.
В 1918 году немецкий инженер и предприниматель Артур Шербиус запатентовал устройство под названием Enigma. Его цель была мирной: сделать защищённую корпоративную переписку такой же лёгкой, как набор текста на печатной машинке, но с гарантией, что никто посторонний не прочитает её.
Машина выглядела как миниатюрная пишущая машинка с лампочками и клавишами. Когда была нажата, скажем, A, загоралась J, потом F, потом Z, и так далее. Внутри стояли вращающиеся роторы, которые каждый раз меняли схему замены. За одной буквой скрывался целый каскад преобразований, который практически никогда не повторялся дважды.
В мирное время коммерческий успех не пришёл. Шербиус предлагал Энигму банкам, корпорациям и министерствам, но большинство из них посчитали это ненужной экзотикой. Машины пылились на складах, а реклама не работала.
А вот военные заинтересовались.
В 1926 году германский флот первым начал использовать Энигму для шифровки приказов. За ним подтянулись армия и Люфтваффе. И началась кастомизация: добавляли новые роторы, штекеры, меняли внутреннюю проводку, улучшали систему индикации. К 1935 году у Германии уже была своя секретная версия Энигмы, недоступная гражданским, и с каждым годом она становилась всё сложнее.
Устройство Энигмы
Суть Энигмы заключалась в одном гениальном механизме – роторах. Каждый из них представлял собой диск с 26 контактами по окружности, соединёнными внутри случайным образом. Когда оператор нажимал клавишу, сигнал проходил через несколько таких роторов, каждый из которых сдвигался после нажатия. В результате одна и та же буква каждый раз шифровалась по-разному.
Добавим сюда ещё отражатель (рефлектор), который направлял ток обратно – и всё, у нас шифр, где ни одна буква не может быть закодирована сама собой (например, 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” в конце), чтобы сузить круг перебора.
Что такое “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
Тогда мы можем использовать найденную настройку, чтобы попытаться расшифровать остальные части сообщения и, если всё сходится, – считать ключ подтверждённым.
С такими друзьями…
Самым надёжным союзником Блетчли-Парка оказался немецкий оператор.
Каждый день немцы получали:
-
Дневной ключ (общая конфигурация: порядок роторов, штекеры, кольца)
-
Ключ сообщения – оператор сам выбирал 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”
Сегодня, когда мы строим ИИ и передаём машинам всё больше задач, которые раньше считались “человеческими”, стоит вспомнить, с чего всё началось:
А может ли машина мыслить?
Полезные ссылки
Помимо уже упомянутых в статье хочется сказать про:
“Computing Machinery and Intelligence” (1950)
Знаменитая статья, в которой Тьюринг впервые формулирует идею теста Тьюринга и рассуждает о мышлении машины.
“On Computable Numbers, with an Application to the Entscheidungsproblem” (1936)
Работа, с которой всё началось. Именно здесь он описывает универсальную машину – математическую абстракцию, ставшую основой всех компьютеров.
Национальные архивы США: “Turing and the Breaking of Enigma”
Документ, на котором основан этот пост – подробный исторический разбор со схемами, источниками и фотографиями.
Проникая в мысли противника: легендарный Блетчли-Парк
Историческая статья-экскурсия, посвященная Блетчли-Парку.
Мой телеграм канал – здесь разборы научных статей, рекомендации книг, обзоры новостей индустрии и не только
Автор: akilayd


