В
июне 1918 г. германские войска готовились напасть на столицу Франции.
Для союзников было крайне важно перехватить вражеские сообщения, чтобы
выяснить, где именно произойдет вторжение. Немецкие сообщения,
предназначенные для фронта, были зашифрованы шифром ADFGVX, который
немецкие военные считали неуязвимым. Наш
интерес к этому шифру связан с тем, что он сочетает в себе алгоритмы
подстановки и перестановочного шифрования. Это один из самых изощренных
методов классической криптографии. Немцы начали использовать его в марте
1918 г., и как только французы узнали о его существовании, они отчаянно
принялись за его взлом. К
счастью для них, в центральном шифровальном бюро работал талантливый
криптоаналитик Жорж Панвэн. Он посвятил себя этой задаче, работая
круглые сутки. Ночью
2 июня 1918 г. Панвэну удалось расшифровать первое сообщение, зловещим
содержанием которого был приказ фронту: «Ускорьте продвижение боевой
техники. Даже в дневное время, лишь бы незаметно». В начале шифровки
было указано, что она отправлена из местечка, расположенного между
Мондидье и Компьень, в 80 километрах к северу от Парижа. Результат
Панвэна позволил французам сорвать атаку и остановить продвижение
немцев. Как
уже упоминалось, шифр ADFGVX состоит из двух частей: шифра подстановки и
шифра перестановки. Первый шаг — подстановка — состоит в следующем: у
нас имеется таблица размером 7 х 7, в которой первая строка и первый
столбец содержат буквы ADFGVX (см. стр. 58). Остальные поля таблицы
случайным образом заполняются 36 символами: 26 букв алфавита и цифры от 0
до 9. Расположение символов представляет собой ключ к шифру, и
получателю, очевидно, нужна эта информация, чтобы понять содержание
сообщения. Мы будем использовать следующую таблицу: Шифр
сообщения состоит в замене каждого символа его координатами,
выраженными группой букв ADFGVX. Первой координатой будет буква,
соответствующая строке, а второй — соответствующая столбцу. Например,
если мы хотим зашифровать цифру 4, мы должны написать DV. Сообщение Target is Paris («Цель — Париж») будет зашифровано следующим образом: До сих пор мы использовали лишь простую подстановку, и частотного анализа было бы достаточно, чтобы расшифровать сообщение. Однако
этот шифр содержит второй шаг — перестановку. Она зависит от ключевого
слова, о котором договорились отправитель и получатель. Этот шаг
осуществляется следующим образом. Сначала мы построим таблицу с таким
числом столбцов, сколько букв в ключевом слове, и заполним поля таблицы
зашифрованным текстом. Буквы
ключевого слова пишут в верхнем ряду новой таблицы. В этом примере
ключевое слово будет BETA. Построим таблицу, в которой первая строка
состоит из букв ключевого слова и следующие строки содержат буквы,
полученные после кодирования сообщения на этапе подстановки. Любые
пустые ячейки заполняются цифрой ноль, которая, как видно из первой
таблицы, имеет код AG. Чтобы применить второй шаг к нашему сообщению «Цель — Париж», напомним сначала, что после подстановки оно выглядело так: Используя ключевое слово BETA, мы получим следующую таблицу. Применяя
перестановочный шифр, изменим порядок столбцов, чтобы буквы ключевого
слова были расположены в алфавитном порядке. Это даст нам следующую
таблицу. Зашифрованное послание получается, если брать буквы этой таблицы по столбцам. В нашем примере это будет: AAXFAXGGFGVAFVXWXDVFFDGVFVA Как
мы видим, теперь сообщение состоит из вроде бы случайного набора букв
A, D, F, G, V и X. Немцы выбрали эти шесть букв, потому что по звучанию в
азбуке Морзе они сильно отличаются друг от друга, и получатель легко
может отсеять возможные при передаче ошибки. Более того, поскольку
сообщения состоят из шести букв, посылать такие телеграфные передачи
могли даже неопытные операторы. Если мы обратимся к таблице кодов Морзе в начале главы, то увидим следующие коды для каждой из букв шифра ADFGVX: Чтобы расшифровать сообщение, получателю необходимо знать распределение букв и цифр в базисной таблице и ключевое слово.
|