Шрифт:
Интервал:
Закладка:
Во-первых, и это было обязательное условие (sine qua non), поляки сумели выяснить наличие проводов, соединенных с тремя роторами. Знать, что немцы используют машину «Энигма» — это одно, но узнать о наличии специальных проводов — это совсем другое дело. Сделать это в мирном 1932 году было настоящим подвигом. Это произошло благодаря усилиям французских спецслужб, чьи шпионы в сентябре и октябре 1932 г. добыли копию инструкций по применению машины. Инструкцию они передали полякам и затем — британцам. Разница заключалась в том, что в польском департаменте работали трое энергичных математиков, которые смогли использовать полученные документы, чтобы узнать о проводах.
Гениальные наблюдения, остроумные предположения и использование элементарной теории групп позволили понять, что в машине используются провода, и понять структуру рефлектора. Поняв все это, польские математики догадались, каким образом буквы на клавиатуре связаны с механизмом шифровки. Они могли быть соединены в полном беспорядке, чтобы внести дополнительную сложность в конструкцию машины. Однако поляки догадались и позднее убедились в том, что конструкция «Энигмы» не предусматривает эту потенциальную свободу. Буквы соединялись с ротором в алфавитном порядке. В результате поляки создали логическую, но не физическую копию машины и получили возможность использовать это обстоятельство.
Другими словами, они смогли сделать эти наблюдения, только поняв очень специфический способ использования машины. Применяя этот метод, они продвинулись в направлении регулярной расшифровки материалов, зашифрованных с помощью «Энигмы». Они не сломали машину; они победили систему.
Базовый принцип использования «Энигмы» заключался в том, что ее роторы, кольца и коммутационная панель устанавливались определенным образом, затем осуществлялась шифровка сообщения, и после того, как это было сделано, роторы автоматически поворачивались на шаг. Однако для того, чтобы такая система связи функционировала, получатель должен был знать первоначальное положение машины. В этом заключалась фундаментальная проблема любой системы шифрования. Недостаточно было иметь саму машину, должен был также существовать согласованный и постоянный метод ее использования. Согласно методу, который применяли немцы, первоначальное положение машины частично определялось во время ее использования шифровальщиком. При этом неизбежно применялись индикаторы, и именно с помощью системы индикаторов полякам удалось добиться успеха.
Чтобы добиться точности работы, порядок расположения роторов фиксировали в письменной инструкции, то же относилось к коммутационной панели и установке колец. Задачей шифровальщика было выбрать оставшийся элемент — изначальную установку трех роторов. Это сводилось к выбору некоей тройки букв, например, «W H J». Самая простая система индикаторов просто передала бы «W H J» и включила бы это сочетание в зашифрованное сообщение. Однако на самом деле все было намного сложнее. Сочетание «W H J» само зашифровывалось в машине. Для этого в инструкции на день закладывались так называемые базовые настройки (ground settings). Они, как и порядок расположения роторов, коммуникационная панель и установки колец, были общими для всех операторов в сети. Предположим, что базовая настройка была «R T Y». Затем шифровальщик устанавливает свою «Энигму» с учетом определенного положения роторов, коммутационной панели и колец. Он поворачивает роторы, который считывают «R T Y». После этого он зашифровывает в два приема установку ротора по своему выбору. Иными словами, он зашифровывает «W H J W H J», получая, допустим сочетание «E R I O N M». Он передает сочетание «E R I O N M», затем возвращает роторы на «W H J», зашифровывает сообщение и передает его. Преимущество заключалось в том, что каждое сообщение после первых шести букв зашифровывалось на другой настройке. Слабость системы состояла в том, что в течение одного дня все операторы в сети использовали одно и то же положение машины для первых шести букв своих сообщений. Еще хуже было то, что эти шесть букв всегда представляли шифровку повторяющихся сочетаний из трех букв. Повторение этого элемента и сумели использовать польские криптоаналитики.
Их метод заключался в том, чтобы с помощью радиоперехватов ежедневно составлять список этих первоначальных последовательностей из шести букв. Они знали, что в списке содержится некая модель или система. Например, если первой буквой была А, а четвертой R, то в любом другом сообщении, где первой буквой является А, то четвертой снова будет R. Накопив достаточно сообщений, они сумели составить полную таблицу, предположим:
Первая буква: А B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Четвертая буква: R G Z L Y Q M J D X A O W V H N F B P C K I T S E U
Затем появятся еще две таблицы, в которых связываются вторая и пятая и третья и шестая буквы. Существовал целый ряд способов использования этой информации для выяснения положения «Энигмы» на тот момент, когда были отправлены все эти сочетания из шести букв. Но особенно важным считался метод, который реагировал на механическую работу шифровальщика, включая механизированную форму анализа.
Поляки написали несколько таблиц сочетаний букв в форме циклов. Запись цикла широко применялась в элементарной теории групп. Чтобы преобразовать приведенное выше специфическое сочетание букв в «циклическую» форму, аналитик начинал с буквы А и отмечал, что А связана с буквой R. В свою очередь, буква R была связана с В, В — с G, G — c M, M — c W, W — c T, T — c C, C — c Z, Z — c U, U — c K, и К — с А, таким образов получался полный «цикл»: (A R B G M W T C Z U K). Полное сочетание можно записать как произведение четырех циклов:
(A R B G M W T C Z U K) (D L O H J X S P N V I) (EY) (FQ)
Причина такой записи состояла в следующем: аналитики обратили внимание на то, что длины этих циклов (в нашем примере 11, 11, 2, 2) не зависели от коммутационной панели. Они зависели только от положения роторов, коммутационная панель влияла на то, какие буквы появлялись в циклах, но не на их количество. Это наблюдение продемонстрировало, что положения роторов оставляют довольно четкие характерные признаки в зашифрованном тексте, когда поток сообщений рассматривается как единое целое. Фактически они оставили лишь три характерных признака — длины циклов каждой из трех таблиц сочетаний букв.
Из этого следовало, что если у аналитиков был полный набор признаков длин циклов, трех для каждого положения ротора, то все, что им нужно было сделать для того, чтобы определить, какое положение ротора использовалось для первых шести букв — это просто перебрать весь набор. Проблема заключалась в том, что в каталоге было 6 × 17576 позиций роторов. Но они сделали это. Для облегчения работы польские математики разработали небольшую электрическую машину, в которой были установлены роторы «Энигмы», и которая автоматически формировала требуемые комбинации букв. На всю работу у поляков ушел год, результаты ее были занесены в картотеку. Но после этого детективная работа была фактически механизирована. Для определения комбинации длин циклов, которые соответствовали обмену шифрованными сообщениями за день, требовалось всего 20 минут поиска в картотеке. В результате аналитики идентифицировали позиции роторов, в которых те находились во время шифровки шести букв индикаторов. Имея эту информацию, аналитики могли вычислить все остальное и прочитать дневную шифропереписку.