ADFGVX перетворює кожну літеру (та цифру) Відкритий текст на пару координат із шести літер A D F G V X, а потім перемішує отриманий потік перестановкою колонок — кожна літера спочатку розпадається навпіл, і кожна половина подорожує окремо. Шифри, що розрізають літери на шматки, практикують Дроблення.
Побудуйте Квадрат Полібія 6×6, заповнений перемішаним Алфавіт: спершу літери Ключ квадрата (дублікати вилучено), потім решта алфавіту, потім цифри 0–9. У кожній клітинці — один символ.
Замініть кожен символ повідомлення двома координатами його клітинки — літерою рядка та літерою стовпця. Повідомлення з N літер стає потоком із 2N літер із набору A D F G V X.
Запишіть дроблений потік у сітку шириною з ключ перестановки, рядок за рядком. Якщо останній рядок короткий, сітку доповнюють до повного прямокутника.
Прочитайте сітку колонка за колонкою в алфавітному порядку літер ключа перестановки. Це і є Перестановка — остаточний шифртекст.
Читайте перші рядки: A стоїть у клітинці рядок A, стовпець
A квадрата, тому стає AA; T потрапляє на рядок A,
стовпець G і стає AG. Третій стовпець показує, як росте
дроблений потік — саме його пізніше перемішає перестановка.
Маючи ключі, розшифрування механічне:
Розріжте шифртекст назад на колонки (рівні частини — сітка була повним прямокутником) та розкладіть їх у сітці в порядку літер ключа.
Прочитайте сітку рядок за рядком — дроблений потік повернувся.
Беріть координати попарно та шукайте кожну пару в квадраті: клітинка і є символом відкритого тексту.
Інструмент робить усі три кроки, коли ви тиснете «Розшифрувати» з обома заповненими ключами.
Німецька армія спершу взяла на озброєння версію 5×5 ADFGX (лише літери, I та J ділять клітинку), а за кілька тижнів додала шостий рядок для цифр — ADFGVX. Інструмент підтримує обидва: перемкніть варіант над полями ключів, і квадрат, дроблений алфавіт та допустимі символи зміняться разом з ним.
Спробувати в інструментіВідкрийте інструмент на шифрі ADFGVX. Поруч із селектором варіанта —
два поля ключів: Ключ квадрата та ключ перестановки. Цей
гайд проводить повне шифрування з ключами прикладу за замовчуванням —
NIGHT для квадрата і GERMAN для перестановки.
Введіть коротке повідомлення, наприклад ATTACK AT 9 AM, і подивіться
на вихід: у ньому лише літери A D F G V X — вдвічі більше
символів, ніж у повідомленні. Кожен символ відкритого тексту замінено
на його рядок і стовпець у Квадрат Полібія. Змініть одну
літеру ключа квадрата — змінюються всі координати: квадрат — це
«підстановка» шифру.
Тепер змініть лише ключ перестановки. Вихід зберігає довжини, але літери стрибають — дроблений потік розрізано на колонки й прочитано в порядку ключа. Це шар перестановки. Зверніть увагу, чого не дає жоден шар окремо: підстановка сама нічого не згладжує, а перестановка не несе власної статистики літер — сила народжується з їхньої комбінації.
Перемкніться на «Розшифрувати», вставте шифртекст і залиште ті самі ключі. Інструмент відбудує сітку, прочитає її рядками та знайде пари координат у квадраті. Символи доповнення (заповнення прямокутника) можуть додати пару зайвих літер наприкінці коротких повідомлень — це прямокутник добудовується, а не баг.
Перемкніть варіант на ADFGX: квадрат втрачає шостий рядок (без цифр, J зливається з I), а не-літери зникають із виходу. Решта процесу ідентична.
Повний шифртекст, обидва ключі, варіант — все, що було потрібно одержувачу 1918 року. Спробуйте практики, щоб побачити, на що здатний зловмисник без ключів.
ADFGVX створювали, щоб витримати саме ті дві атаки, що вбили попередні польові шифри: Частотний аналіз (її вбило Дроблення) та атаки за шаблонами (її вбила Перестановка). І все одно він упав — під одним із найвражаючих криптоаналізів Першої світової. Демо-випробування відкриває керований зломщик інструменту на справжньому шифртексті.
З одним дробленням літери A D F G V X шифртексту не мають корисних частот: кожна літера повідомлення розмазана по двох із них. З одною перестановкою літери шифртексту — справжні дроблені координати, але перемішані — їхні частоти теж рівні. Захист у насуванні шарів, і атака має розбирати їх у правильному порядку: спершу зняти перемішування, потім розв'язати те, що лишилося.
Зняти Перестановка — значить дізнатися, які шматки шифртексту були сусідніми колонками сітки. Ознака: коли два шматки справді були сусідами, їхнє зчеплення ставить кожну координату рядка поруч із координатою стовпця тієї ж літери — отримані «символи» з двох літер є справжніми літерами зі скошеними, мовними частотами. Хі-квадрат тест незалежності на парах координат міряє саме цей зв'язок; інструмент використовує його і для ранжування кандидатів довжини ключа, і для пропозиції сусідства колонок. Сприймайте пропозиції як підказки: на коротких повідомленнях хибна розкладка може виглядати переконливо, а справжня перевірка — чи дає наступний етап читабельний текст.
Коли колонки на своїх місцях, пари координат — це літери звичайної моноалфавітної Підстановка над 25 або 36 символами. Стара механіка працює: найчастіші символи — найчастіші літери, Ключове слово підтверджують здогадки, і кожен підтверджений символ закріплює клітинку квадрата та обмежує її сусідів по рядку і стовпцю. Керований зломщик проходить цей етап із графіком частот, підказками літер і живим попереднім переглядом.
Прорив Жоржа Пенвена навесні 1918 прийшов через кількість: десятки повідомлень за день на одному ключі дня, порівнювані колонка за колонкою, довжина з довжиною. Довгі однакові повідомлення на одному ключі вишикувалися і видали порядок колонок. Коротке поодиноке повідомлення не давало майже нічого — саме тому німецька радіо- дисципліна (або її брак) вирішила битву більше, ніж сам шифр.
Розшифрований трафік допоміг зупинити німецький весняний наступ 1918 року. Сам шифр був добрий для свого часу; процедури довкола — ні. ADFGVX лишається хрестоматійним прикладом дроблення плюс перестановки — і прикладом того, як повторне використання ключів топить навіть добрі шифри.