Шрифт:
Интервал:
Закладка:
Удача улыбнулась Уильяму Татту, присоединившемуся к проекту в октябре 1941 г. До поступления в Блетчли-парк Татт изучал химию, а затем математику в кембриджском Тринити-колледже. В программу обучения входил так называемый метод Касиски — метод криптоанализа полиалфавитных шифров, таких как шифр Виженера, изобретённый независимо Фридрихом Касиски и Чарльзом Бэббиджем. При использовании этого метода зашифрованное сообщение разбивают на фрагменты одинаковой длины, а затем записывают их в столбик друг под другом. Увеличение частоты появления некоторых символов в столбцах полученной матрицы свидетельствует о том, что её ширина равна длине использовавшегося при шифровании ключа. Это происходит потому, что в естественном языке существуют часто встречающиеся символы, например пробелы, и при совмещении их с одними и теми же символами ключа в соответствующих столбцах будут чаще встречаться повторяющиеся символы. Татт решил применить данный метод к найденной последовательности символов ключа немецкой машины. Однако, разумно предположив, что часть может быть проще, чем целое, он использовал не сами символы ключа, а лишь первые импульсы (биты) кодов символов (каждый символ при передаче кодировался пятью последовательными импульсами, каждый из которых мог быть одного из двух типов, обозначавшихся при письме обычно крестиками и точками; таким образом получался двоичный код длиной пять битов). К тому времени Татт уже знал, что набор символов, встречавшихся в каждой 12-й позиции ключа, содержал лишь 23 буквы, в то время как в остальных позициях были представлены 25 букв (отсутствовала только J). Предположив, что длина ключа может быть кратна 23 или 25 буквам, Татт решил попробовать ширину матрицы, равную 25 × 23 = 575. В столбцах полученной матрицы не было большого числа повторений, но Татт заметил, что повторения присутствовали в диагоналях. При замене ширины матрицы на 574 появились явно заметные повторения в столбцах. Понимая, что вряд ли колесо машины содержало такое большое число позиций, Татт разложил число 574 на простые множители, получив 41, 7 и 2. Попробовав период 41, он получил прямоугольник из точек и крестиков, который был переполнен повторениями[412]. Таким образом удалось понять, что одно из колёс немецкой шифровальной машины имеет 41 позицию.
Рис. 47. Найденный Уильямом Таттом при расшифровке сообщений «Энигмы»
прямоугольник из точек и крестиков со множеством повторений
В течение двух следующих месяцев Татт с коллегами установили число позиций в каждом колесе (которых всего оказалось 12) и воссоздали полную логическую структуру шифровальной машины. В начале 1942 г. Фрэнк Моррелл, сотрудник исследовательской лаборатории почтового ведомства (Post Office Research Station) в Доллис-Хилл (Dollis Hill), воплотил эту логику «в железе» в виде стойки шаговых искателей (электромеханических коммутаторов) и реле. Устройство назвали «Тунец» (Tunny), поскольку оно было аналогом называемой ими так же немецкой машины. Теперь криптоаналитикам нужно было подобрать настройки конкретного сообщения, ввести эти параметры в Tunny — и устройство выполняло расшифровку сообщения (выдавая при верных настройках исходный текст на немецком языке). Однако оказалось, что подбор правильных настроек занимает около месяца. В условиях идущей войны это означало, что взлом Tunny данным путём не принесёт пользы: к моменту расшифровки сообщений они наверняка уже будут неактуальны. Криптоаналитикам срочно потребовалась более совершенная машина.
Макс Ньюман придумал, как можно частично автоматизировать задачу поиска настроек при помощи электронных устройств. Он разработал спецификацию машины, которая затем была построена инженерами из Доллис-Хилл. Логика была реализована на базе реле, но счётчики были электронными. Машина получила название «Хит Робинсон» (Heath Robinson) в честь карикатуриста, изображавшего фантастические хитроумные машины для выполнения простых задач[413].
Рис. 48. Карикатура Хита Робинсона. Подпись к изображению гласит:
«Бородавочный стул. Простое устройство для удаления бородавок с макушки»
В основу логики машины был положен метод «2+1», предложенный Таттом. Машина считывала последовательности символов с двух перфолент. Первая лента содержала перехваченное сообщение, вторая — последовательности из двух первых импульсов кодовых символов, соответствующих каждому из возможных сочетаний положений двух первых колёс немецкой шифровальной машины. Первое колесо, как мы уже упоминали, имело 41 возможную позицию, а второе — 31. Таким образом, длина второй ленты составляла 41 × 31 = 1271 символ. Машина просматривала все возможные наложения символов кодовой ленты на символы закодированного сообщения и оценивала каждое из этих наложений при помощи специального метода, основанного на анализе разностей импульсов, в итоге определялись наиболее вероятные позиции двух первых колёс машины. В результате этого получались сообщения с раскодированными первыми двумя импульсами каждого символа, которые передавались затем людям, занимающимся ручной дешифровкой, — эта финальная операция (восстановление пяти импульсов по двум первым) обычно была не сложнее обычной словесной головоломки[414].
Машина работала достаточно хорошо для того, чтобы показать правильность концепции Ньюмана, однако в процессе её использования обнаружился ряд технических проблем. Устройства для чтения перфолент выдавали ошибки, если на лентах возникали длинные участки последовательных отверстий или, напротив, длинные участки без отверстий. Серьёзной проблемой была синхронизация двух лент при скорости протяжки более 1000 символов в секунду — даже небольшое смещение делало весь процесс бесполезным.
В Доллис-Хилл Ньюман познакомился с Томасом Флауэрсом. Флауэрс был блестящим инженером-электронщиком; он и взялся за постройку новой машины, получившей название «Колосс» (Colossus). Флауэрс уже давал советы относительно конструкции «Хита Робинсона». Основной его вклад состоял в том, что он предложил генерировать положения колёс электронным способом в кольцевых прово́дках, устраняя таким образом одну из перфолент и избавляясь от проблемы синхронизации. Для этого требовалось огромное количество электронных ламп; однако Флауэрс был уверен, что всю эту конструкцию можно заставить работать. «Моё предложение, сделанное в феврале 1943 года, было встречено со значительным скептицизмом, — писал позже Флауэрс. — Первая реакция состояла в том, что машина с требуемым количеством ламп будет слишком ненадёжна, чтобы приносить реальную пользу. К счастью, эта критика была побеждена ссылкой на опыт почты, использующей тысячи ламп в своей сети связи. Эти лампы не подлежали перемещению или обслуживанию, а их питание никогда не отключалось. В этих условиях отказы ламп были крайне редкими».
Разработка новой машины (позже названной Colossus Mark I) началась в марте 1943 г. «Колосс» использовал современные для 1943-го вакуумные лампы (термоэлектронные клапаны), тиратроны и фотоумножители для оптического чтения перфоленты. Машина была введена в эксплуатацию в январе 1944 г. и успешно прошла первый тест на ленте с реальным зашифрованным сообщением. «Колосс» мог обрабатывать данные со скоростью до 5000 символов в секунду благодаря тому, что лента проходила по нему