Любой
ключ кода «Энигмы» сначала указывал конфигурацию коммутационной панели,
а именно возможные соединения шести пар букв, например, B/Z, F/Y, R/C,
Т/Н, Е/О и L/J, что означало, что первый кабель менял местами буквы В и
Z, итак далее. Во-вторых, ключ определял порядок роторов (например,
2–3—1). Наконец, ключ описывал исходную ориентацию роторов (например,
буквы R, V, В показывали, какая буква находится в начальном положении,
или начальные позиции). Эти
параметры были собраны в шифровальных книгах, которые тоже передавались
в зашифрованном виде и могли меняться в установленные дни или при
особых обстоятельствах. Например, некоторые ключи были зарезервированы
для определенных типов сообщений. Чтобы
не повторять один и тот же шифр в течение одного дня, во время которого
могли быть посланы тысячи сообщений, операторы «Энигмы» использовали
гениальные трюки для выбора новых шифров в особых случаях, но без замены
всей шифровальной книги. Так, оператор отправлял сообщение из шести
букв, зашифрованное в соответствии с действующим в этот день кодом,
представляющее собой новый набор начальных позиций для роторов,
например, T-Y-J. (Для большей безопасности оператор шифровал эти три
буквы два раза, поэтому и получалось шесть букв). Затем он шифровал
настоящее сообщение в соответствии с этим новым ключом. Другой оператор
получал сообщение, которое он не мог расшифровать с ключом этого дня, но
он знал, что первые шесть букв на самом деле являлись инструкцией
переставить роторы в другую позицию. Получатель делал это, оставляя
коммутационную панель и порядок роторов без изменения, и затем мог
правильно расшифровать сообщение. Союзники
получили первые ценные сведения относительно «Энигмы» в 1931 г. от
немецкого шпиона Ганса-Тило Шмидта. Это были различные инструкции для
работы с машиной. Контакт со Шмидтом установили французские спецслужбы,
которые впоследствии поделились информацией с польскими коллегами.
Польский криптоаналитический отдел, Biuro Szyfrow (шифровальное бюро), начал работу с документами Шмидта, а также добыл несколько машин «Энигма», украденных у немцев. Не
совсем обычный штрих для того времени: в польском отделе работало
большое количество математиков. Среди них был талантливый 23-летний
застенчивый молодой человек по имени Мариан Реевский. Он сразу же
сосредоточил усилия на шести буквенных кодах в начале многих ежедневных
сообщений, которыми обменивались немцы. Реевский предположил, что
последние три буквы кода были новым шифром для первых трех, и поэтому
понял, что четвертая, пятая и шестая буквы могли дать ключ для начальных
позиций роторов. На
этой, казалось бы, незначительной гипотезе Реевский построил
незаурядную систему умозаключений, которая привела к расшифровке кода
«Энигмы». Подробности
этого процесса достаточно сложны, и мы не будем здесь их излагать, но
после нескольких месяцев Реевский смог сократить количество возможных
шифров с десяти тысяч триллионов до всего лишь 105 456, что
соответствовало различным комбинациям расположения роторов и их
начальных позиций. Для этого Реевский создал устройство, известное как Bombe
(«Бомба»), которое работало так же, как «Энигма», и могло имитировать
любую из возможных позиций трех роторов для поиска ежедневного кода. Уже
в 1934 г. сотрудники польского шифровального бюро взломали код «Энигмы»
и могли расшифровать любое сообщение в течение 24 часов. Хотя
немцы не знали, что польские криптоаналитики расшифровали код «Энигмы»,
они продолжали совершенствовать систему, которая уже успешно работала
на протяжении более чем десятилетия. В 1938 г. операторы «Энигмы»
получили дополнительные два ротора к трем стандартным, и вскоре после
этого были выпущены новые модели машин с десятью коммутационными
кабелями. Тогда
число возможных шифров возросло до почти 159 квинтиллионов. Лишь
добавление еще двух роторов увеличивало возможные комбинации их
расположения с шести до 60: пять возможностей поместить любой из пяти
роторов на первом месте, умноженные на четыре возможности поставить
любой из четырех оставшихся роторов на второе место, умноженные на три
возможности поставить любой из трех оставшихся роторов на третье место.
Итого 5 x 4 x 3 = 60. Даже сумев расшифровать код, сотрудники польского
бюро не имели средств, необходимых для анализа такого количества
расположений роторов. Некоторые версии машины «Энигма» |