Наш интерес к этому шифру связан с тем, что он сочетает в себе алгоритмы подстановки и перестановочного шифрования. Это один из самых изощренных методов классической криптографии. Немцы начали использовать его в марте 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:
Чтобы расшифровать сообщение, получателю необходимо знать распределение букв и цифр в базисной таблице и ключевое слово.
Читать дальше