Книга шифров. Тайная история шифров и их расшифровки
Шрифт:
Рис 42. Мариан Реевский
Для остальных букв алфавита Реевский создал похожие цепочки. Он выписал все цепочки и отметил в каждой из них количество связей:
До сих пор мы рассматривали только соответствия между 1-й и 4-й буквами шестибуквенного повторяющегося ключа. В действительности же Реевский проделал то же самое для соответствий между 2-й и 5-й буквами и между 3-й и 6-й буквами определяя в каждом конкретном случае цепочки и количество связей в каждой из них.
Реевский обратил внимание,
И именно в этот момент Реевского озарило. Хотя и установки на штепсельной коммутационной панели, и взаимное расположение, и ориентация шифраторов оказывали влияние на элементы цепочек, но их вклад можно было в какой-то степени разделить. В частности, у цепочек есть одно свойство, целиком зависящее от установок шифраторов и никак не связанное с установками на штепсельной коммутационной панели: количество связей в цепочках зависит исключительно от установок шифраторов. Возьмем, к примеру, вышеприведенный пример и предположим, что ключ текущего дня требует перестановки букв S и G на штепсельной коммутационной панели. Если мы изменим этот элемент ключа текущего дня, сняв кабель, с помощью которого осуществляется перестановка этих букв S и G, и используем его, чтобы выполнить перестановку, скажем, букв Т и К, то цепочки изменятся следующим образом:
Некоторые буквы в цепочках изменились, но, что важно, количество связей в каждой цепочке осталось тем же. Реевский нашел то свойство цепочек, которое зависело лишь от установок шифраторов.
Полное число установок шифраторов равно количеству взаимных расположений шифраторов (6), умноженному на количество ориентаций шифраторов (17 576), что составляет 105 456. Поэтому вместо того, чтобы беспокоиться о том, какой из 10 000 000 000 000 000 ключей текущего дня связан с конкретной группой цепочек, Реевский смог заняться гораздо более простой задачей: какая из 105 456 установок шифраторов связана с количеством связей в группе цепочек? Это число по-прежнему велико, но все же примерно в сотню миллиардов раз меньше общего числа возможных ключей текущего дня. Другими словами, задача стала в сотню миллиардов раз проще — уже в пределах человеческих возможностей.
Реевский поступил следующим образом. Благодаря шпионской деятельности Ханс-Тило Шмидта, он получил доступ к точным копиям шифровальных машин «Энигма». Его команда приступила к кропотливой проверке каждой из 105 456 установок шифраторов и каталогизации длин цепочек, которые образовывались при каждой установке. Потребовался целый год, чтобы завершить создание такого каталога, но, как только в Бюро были накоплены данные, Реевский смог, наконец, приступить к распутыванию шифра «Энигмы».
Ежедневно он просматривал зашифрованные разовые ключи — первые шесть букв перехваченных сообщений, и использовал данную информацию для подготовки своей таблицы соответствий. Это позволило ему выписать цепочки и установить количество связей для каждой из них. К примеру, анализируя 1-ю и 4-ю буквы, можно получить четыре цепочки с 3, 9, 7 и 7 связями. При анализе 2-й и 5-й букв также получаются четыре цепочки с 2 3, 9 и 12 связями. А анализ 3-й и 6-й букв дает в результате пять цепочек с 5, 5, 5, 3 и 8 связями.
У Реевского и сейчас не было никаких предположений о ключе текущего дня, но он знал, что в результате его применения получаются 3 группы цепочек; количество цепочек в группе и связей в каждой из них указаны ниже:
Реевский мог теперь воспользоваться своим каталогом, в котором были представлены все установки шифратора, проиндексированные в соответствии с тем, какой вид цепочек получается при каждой конкретной установке. Найдя запись в каталоге, содержащую требуемое количество цепочек с соответствующим количеством связей в каждой, он сразу же определял установки шифраторов для каждого конкретного ключа текущего дня. Цепочки оказались фактически «отпечатками пальцев», уликой, которая выдавала исходное взаимное расположение и ориентацию шифраторов. Реевский действовал словно детектив: он мог отыскать на месте преступления отпечаток пальца, а затем по базе данных выявить подозреваемого, которому этот отпечаток принадлежит.
Хотя Реевский и нашел ту часть в ключе текущего дня, которая определяется шифратором, но ему по-прежнему требовалось выяснить установки на штепсельной коммутационной панели. Несмотря на то что существует около сотни миллиардов возможностей для установок на штепсельной коммутационной панели, это было уже сравнительно несложной задачей. Реевский начал с того, что установил шифраторы на своей копии «Энигмы» в соответствии с вновь найденной частью ключа текущего дня, которая определяется шифратором. Затем он вытащил все кабели из штепсельной коммутационной панели, так что эта панель перестала оказывать какое-либо влияние. Далее он брал фрагмент перехваченного шифртекста и вводил его в «Энигму». По большей части это приводило к появлению совершенно бессмысленного текста, поскольку расположение кабелей на штепсельной коммутационной панели было неизвестно, и их у него на панели попросту не было. Однако время от времени появлялись смутно опознаваемые выражения, как, например, alliveinbelrin, которое, по всей видимости, должно означать «arrive in Berlin». Если предположение верно, то это значит, что буквы R и L должны быть соединены кабелем на штепсельной коммутационной панели, осуществляющим их перестановку, буквы же А, I, V, Е, В и N при этом кабелями не соединены. Анализируя другие фразы, можно найти другие пять пар букв, которые меняются местами друг с другом с помощью кабелей на этой панели.
Определив расположение кабелей на штепсельной коммутационной панели и используя уже найденные установки шифраторов, Реевский определил полный ключ текущего дня, и в результате он мог дешифровать любое сообщение, отправленное в этот день.
Реевский существенно упростил задачу нахождения ключа текущего дня, разделив задачу определения установок шифраторов и задачу определения установок на штепсельной коммутационной панели. Сами по себе обе эти задачи могут быть решены. По нашим первоначальным оценкам, чтобы проверить все возможные ключи «Энигмы», потребуется время, превышающее срок существования Вселенной. Однако Реевский потратил всего-навсего год, составляя свой каталог длин цепочек, после чего он мог определить ключ текущего дня еще до того, как день подойдет к концу. Имея ключ текущего дня, он владел той же информацией, что и получатель, которому она была направлена, и поэтому столь же легко был способен дешифровать сообщения.
В результате совершенного Реевским прорыва передаваемые немцами сообщения больше не представляли секрета. Польша не находилась в состоянии войны с Германией, но существовала угроза вторжениями то, что «Энигма» была покорена, стало для нее огромным облегчением. Если поляки смогут выяснить, что замышляют в отношении них немецкие генералы, то это давало им возможность защитить себя. Судьба Польши зависела от Реевского, и он не подвел свою страну. Атака Реевского на «Энигму» является одним из по-истине величайших достижений криптоанализа. Я был вынужден ограничиться всего несколькими страницами, чтобы рассказать о его работе, и поэтому опустил многие технические подробности и вообще не упоминал о путях, которые вели в тупики. «Энигма» — это сложная шифровальная машина, и взлом ее потребовал огромных интеллектуальных усилий. Мои упрощения не должны вводить вас в заблуждение, и из-за них не стоит недооценивать исключительный успех Реевского.
Успех поляков во взломе шифра «Энигмы» может быть объяснен тремя факторами: страх, математика и шпионаж. Если бы не было опасности вторжения, полякам помешала бы кажущаяся неуязвимость шифра «Энигмы». Без математики Реевский бы не смог проанализировать цепочки. А без Шмидта, которому был присвоен псевдоним Аше, и его документов не удалось бы получить представление о внутренней проводке шифраторов и невозможно было бы даже приступить к проведению криптоанализа. Реевский не стеснялся высказывать, насколько он обязан Шмидту: «Документы Аше были словно манна с небес, и все двери сразу же открылись».