Шрифт:
Интервал:
Закладка:
Это был элегантный метод, но его недостаток заключался в том, что он полностью зависел от конкретной системы индикаторов. И это не могло продолжаться долго. Сначала у поляков перестала получаться расшифровка сообщений, зашифрованных «Энигмой», применяемой в германском военно-морском флоте, и «… с конца апреля 1937 г., когда немцы изменили военно-морские индикаторы, они (поляки) смогли прочитать только военно-морскую переписку за период с 30 апреля по 8 мая 1937 г., и ту лишь в ретроспективе. Более того, этот небольшой успех не оставил им никаких сомнений в том, что новая система индикаторов сделала «Энигму» намного более безопасной…»
Затем, 15 сентября 1938 г., в тот день, когда Чемберлен прилетел в Мюнхен, произошла более серьезная катастрофа. Немцы изменили все остальные свои системы. Изменения были незначительны, но это означало, что в течение одной ночи все занесенные в каталог длины циклов стали совершенно бесполезны.
В новой системе базовая настройка (ground settings) больше не устанавливалась заранее. Теперь она выбиралась шифровальщиком, который таким образом должен был передать ее получателю. Это делалось простейшим способом — она передавалась, как есть. То есть, если шифровальщик выбирал буквы A G H, то устанавливал роторы так, что они считывали A G H. Затем он мог выбрать другую настройку, например, T U I. Он зашифровывает T U I T U I, получая, допустим, R Y N F Y P. Затем он передает A G H R Y N F Y P как буквы-индикаторы, после чего следует само сообщение, зашифрованное с помощью роторов с базовой настройкой T U I.
Безопасность этого метода базировалась на том, что установки колец менялись день ото дня. Однако первые три буквы (A G H в нашем примере) могли раскрыть всю переписку. Соответственно, перед аналитиками стояла задача определить установки колец, которые были общими для всего потока шифрованных сообщений сети. Удивительно, но польские аналитики смогли решить задачу поиска новых отличительных признаков, которые позволяли определить установку кольца или, что эквивалентно, определить физическое положение провода (core-position), которое соответствовало отрыто объявленной установке ротора, например A G H в нашем примере.
Так же как в случае с более старым методом, поиски характерных признаков зависели от оценки всего потока сообщений в целом и в использовании элемента повторений в последних шести из девяти букв-индикаторов. Если общая базовая настройка отсутствует, то отсутствует и четкая связь между первой и четвертой, второй и пятой, третьей и шестой буквами, которую можно проанализировать. Но «остаток» этой идеи уцелел, подобно улыбке Чеширского кота. Иногда случалось так, что первая и четвертая буквы фактически совпадали. Иногда совпадали вторая и пятая или третья и шестая буквы. Это явление было без всяких очевидных причин названо «мамой». Таким образом, если предположить, что сочетание T U I T U I было действительно зашифровано как R Y N F Y P, то повторяющаяся буква Y считалась «мамой». Этот факт дает небольшой кусочек информации о положении роторов, которое они занимали во время шифровки букв T U I T U I. Метод решения задачи зависел от поиска достаточного количества таких кусочков, сложив которые можно было бы разгадать всю головоломку.
Более точно можно было сказать, что core-position содержит букву-маму, если шифровка этой буквы оказывается одинаковой через те же самые три шага. Это было не очень редкое явление и имело место в среднем один раз в двадцати пяти. Некоторые core-position (около сорока процентов) имели свойство содержать как минимум одну букву-маму, а остальных их не было совсем. Свойство содержать или не содержать букву-маму не зависело от коммутационной панели, а ее идентификация, напротив, требовала ее учитывать.
Аналитики с легкостью определяли местоположение всех букв-мам в дневном потоке шифровок. Они не знали физическое положение проводов, которое приводило к их возникновению. Однако из открыто объявленных установок ротора, например, A G H, они узнавали относительное физическое положение проводов. Эта информация дала возможность определить систему появления букв-мам. Из-за того, что только около сорока процентов положений (core-positions) содержали буквы-мамы, существовала единственный способ, в котором система могла совпадать с их известным распределением. Таким образом, был определен новый характерный признак — система букв-мам.
Однако заранее составить каталог всех возможных систем, как поляки поступили применительно к длинам циклов, было невозможно. Поэтому нужно было найти другие, более сложные способы определения соответствия. Аналитики использовали листы с перфорациями. Это были простые таблицы всех физических положений проводов (core-positions), в которых вместо того, чтобы печатать «содержит букву-маму» или «не содержит букву-маму», пробивали или не пробивали отверстия. В принципе, поляки могли бы сначала изготовить одну огромную таблицу, и затем ежедневно изготавливать шаблон систем «букв-мам», отмеченных в потоке шифросообщений за данный день. Накладывая шаблон на таблицу, они, в конце концов, находили бы позицию, где отверстия совпадали. Однако такой метод был бы слишком неэффективен. Вместо этого они выбрали метод накладывания кусков таблицы физических положений один на другой, чередуя их в порядке, соответствующем найденным относительным положениям материнских букв. В итоге совпадение схем наблюдалось там, где свет проходил сквозь все листы. Преимущество метода чередования заключалось в одновременной проверке 676 вариантов. Это была по-прежнему длительная работа, требовавшая проведения 6 × 26 операций для полного исследования. Требовалось также изготовить перфорированные листы, регистрировавшие 6 × 17576 положений проводов. Но аналитики выполнили эту работу в течение нескольких месяцев.
И это был не единственный метод, который они разработали. Система перфорированного листа требовала знания местоположения десяти материнских букв в потоке сообщений. Вторая система требовала знания местоположения лишь трех материнских букв, но использовала не только факт существования такой буквы, но и конкретную букву, которая оказывалась материнской в зашифрованном тексте. Важной особенностью найденного метода было то, что эти конкретные буквы должны были быть среди тех букв, на которые не оказывала влияния коммутационная панель. С тех пор как в 1938 г. в коммутационной панели использовались только шесть или семь пар букв, это требование стало не слишком обязательным.
В принципе, метод заключался в сопоставлении обнаруженной системы трех конкретных материнских букв со свойствами положениями провода. Однако было невозможно каталогизировать заранее все материнские буквы в 6 × 17576 положениях, а затем провести поиск, даже с помощью чередующихся листов. В этом случае возникало слишком много возможных вариантов. Вместо этого польские математики пошли на радикально новый шаг. Они решили перебирать позиции роторов каждый раз заново, не делая каталоги заранее. Но это должен был делать не человек. Работа должна была выполняться машинами. К ноябрю 1938 г. они построили такие машины — фактически их было шесть, по одной на каждый возможный способ расположения роторов. Во время работы машины громко тикали, поэтому их назвали «Бомбами».
В «Бомбах» использовалась электрическая схема «Энигмы». В ней применялся электрический метод распознавания обнаруженных «совпадений». Сам факт того, что «Энигма» была машиной, позволял задуматься о механизации криптоанализа. Суть идеи заключалась в том, чтобы соединить между собой шесть копий «Энигмы» таким образом, чтобы электрическая цепь замыкалась при появлении трех конкретных «материнских» букв. Относительные основные позиции проводов шести «Энигм» фиксировались на известных относительных установках «материнских букв» — так же как в чередовании листов. Сохраняя эти относительные позиции, «Энигмы» проверяли каждую возможную позицию. Они могли проделать полный перебор позиций за два часа, т. е. каждую секунду проверялось несколько позиций. Это был «лобовой» метод, заключавшийся в том, что проверялись все возможные варианты один за другим. В нем не было математической изысканности. Однако он «втащил» криптоанализ в двадцатый век.