История неразгаданных шифров

Немецкий портал научных блогов Scienceblogs.de ведёт довольно известный список из 50 нерешённых шифров, включающий криптограммы, опубликованные серийными убийцами, и знаменитый манускрипт Войнича.

Среди них есть набор немецких радиосообщений Первой мировой войны, закодированных методом ADFGVX.

Как работает метод ADFGVX

Способ кодирования лучше всего объяснить на примере с ключевым словом «HOUSE»:

    A D F G V X
A   H O U S E A
D   B C D F G I
F   J K L M N P
G   Q R T V W X
V   Y Z 0 1 2 3
X   4 5 6 7 8 9

Буквы ADFGVX используются одновременно по горизонтали и вертикали для кодирования каждой ячейки таблицы. Например, буква H кодируется как «AA», O — как «AD», B — как «DA». Слово «PRINZ» в таком случае превратится в:

FX GD DX FV VD

Использование другого ключевого слова полностью изменит всю таблицу.

Известны ключи, использованные немцами для кодирования этих радиосообщений. Сотни из них уже успешно декодированы, включая работы криптографа George Lasry. Однако более дюжины остаются неразгаданными. Одно из них было передано 27 ноября 1918 года (страница 217 архива):

Зашифрованное немецкое радиосообщение

Решение от GPT-6 Astra

GPT-6 Astra решила этот шифр. Модель предположила, что исходное сообщение выглядело следующим образом:

EIN ENGLISCHER KREUZER EINLIEG X SEWASTOPOL X S4STEN X EIN GESCHWADER DER X ALLIIERTEN FOLGT 26STEN X

В переводе на английский:

AN ENGLISH CRUISER ARRIVED AT SEVASTOPOL ON THE 24TH AN ALLIED SQUADRON FOLLOWS ON THE 26TH

Модель использовала слово «TRUPPENVERSCHIEBUNG» (перемещение войск) как ключ кодирования, о чём сказано на страницах 214–215 в работе J. Rives Childs «The History and Principles of German Military Ciphers, 1914–1918». Это слово создаёт следующую таблицу:

Таблица ADFGVX с ключом TRUPPENVERSCHIEBUNG

Процесс декодирования

Перед использованием таблицы ключевое слово «TRUPPENVERSCHIEBUNG» переставляют так, чтобы его буквы располагались в алфавитном порядке (например, T — 16-я буква, R — 13-я):

Алфавитная перестановка ключевого слова

Затем то же слово «TRUPPENVERSCHIEBUNG» записывается горизонтально, а под ним построчно располагаются буквы зашифрованного сообщения. Сообщение разбивается на 19 символов в строке (8 полных строк из 19 символов плюс 1 строка из 18 символов, всего 170 символов). Это означает 18 колонок с 9 символами каждая и 1 колонка с 8 символами (колонка «G»).

Поскольку T — 16-я колонка, перед ней располагается 14 колонок из 9 символов и 1 колонка из 8 символов: 9×14 + 1×8 = 134. Значит, T соответствует 135-му символу в сообщении, который является A. Аналогично R соответствует V (13-я буква алфавитно имеет 11×9 + 1×8 = 107 символов перед собой; 108-й символ в сообщении — V).

В таблице выше AV соответствует E, первой букве в слове «EIN». Этот процесс повторяется до полного декодирования всего сообщения.

(Впечатляюще.)

Astra выдвинула гипотезу, почему это конкретное сообщение оставалось нерешённым: ключ «TRUPPENVERSCHIEBUNG» начал использоваться только 9 декабря 1918 года, тогда как данное сообщение было передано ранее, 27 ноября 1918 года. Причина такого расхождения остаётся неясной.

Проверка результатов

Модель проверила свою работу и обнаружила, что английский крейсер HMS Canterbury действительно прибыл в Севастополь 24 ноября 1918 года, согласно его боевым журналам:

Боевые журналы HMS Canterbury

Также союзная эскадра действительно прибыла 26 ноября (см. строку 11 ниже, в которой указано прибытие союзной эскадры):

Продолжение боевых журналов с записью о союзной эскадре

Это первое известное декодирование данного конкретного сообщения — результат, демонстрирующий возможности современных моделей ИИ в решении исторических криптографических задач.