Cabinet Noir>Навчання / Шифр ADFGVX

Не знаєте, який це шифр? Розпізнайте його
Німецький польовий шифр Першої світової: кожна літера розпадалася на дві з шести літер ADFGVX, а результат перемішувався — поки Жорж Пенвен не зламав його.
Типшифр дроблення та перестановки
Зламскладно зламати вручну
Епоха1918 (Перша світова війна)
НазваФріц Небель, зв’язок німецької армії
Режимишифрування · розшифрування · криптоаналіз

Навчання

Шифр ADFGVX

Як працює шифр ADFGVX

Ідея однією фразою

ADFGVX перетворює кожну літеру (та цифру) Відкритий текст на пару координат із шести літер A D F G V X, а потім перемішує отриманий потік перестановкою колонок — кожна літера спочатку розпадається навпіл, і кожна половина подорожує окремо. Шифри, що розрізають літери на шматки, практикують Дроблення.

Рецепт

  1. Побудуйте Квадрат Полібія 6×6, заповнений перемішаним Алфавіт: спершу літери Ключ квадрата (дублікати вилучено), потім решта алфавіту, потім цифри 0–9. У кожній клітинці — один символ.

  2. Замініть кожен символ повідомлення двома координатами його клітинки — літерою рядка та літерою стовпця. Повідомлення з N літер стає потоком із 2N літер із набору A D F G V X.

  3. Запишіть дроблений потік у сітку шириною з ключ перестановки, рядок за рядком. Якщо останній рядок короткий, сітку доповнюють до повного прямокутника.

  4. Прочитайте сітку колонка за колонкою в алфавітному порядку літер ключа перестановки. Це і є Перестановка — остаточний шифртекст.

Розібраний приклад

Крок 1 із 12
Літера відкритого тексту
Координати квадрата
Дроблений текст (наростаюче)
A
AX
AX

Читайте перші рядки: A стоїть у клітинці рядок A, стовпець A квадрата, тому стає AA; T потрапляє на рядок A, стовпець G і стає AG. Третій стовпець показує, як росте дроблений потік — саме його пізніше перемішає перестановка.

Розшифрування йде у зворотному порядку

Маючи ключі, розшифрування механічне:

  1. Розріжте шифртекст назад на колонки (рівні частини — сітка була повним прямокутником) та розкладіть їх у сітці в порядку літер ключа.

  2. Прочитайте сітку рядок за рядком — дроблений потік повернувся.

  3. Беріть координати попарно та шукайте кожну пару в квадраті: клітинка і є символом відкритого тексту.

Інструмент робить усі три кроки, коли ви тиснете «Розшифрувати» з обома заповненими ключами.

Два варіанти, одна ідея

Німецька армія спершу взяла на озброєння версію 5×5 ADFGX (лише літери, I та J ділять клітинку), а за кілька тижнів додала шостий рядок для цифр — ADFGVX. Інструмент підтримує обидва: перемкніть варіант над полями ключів, і квадрат, дроблений алфавіт та допустимі символи зміняться разом з ним.

Спробувати в інструменті

ADFGVX крок за кроком

Перед стартом

Відкрийте інструмент на шифрі ADFGVX. Поруч із селектором варіанта — два поля ключів: Ключ квадрата та ключ перестановки. Цей гайд проводить повне шифрування з ключами прикладу за замовчуванням — NIGHT для квадрата і GERMAN для перестановки.

Крок 1 — подивіться, як працює квадрат

Введіть коротке повідомлення, наприклад ATTACK AT 9 AM, і подивіться на вихід: у ньому лише літери A D F G V X — вдвічі більше символів, ніж у повідомленні. Кожен символ відкритого тексту замінено на його рядок і стовпець у Квадрат Полібія. Змініть одну літеру ключа квадрата — змінюються всі координати: квадрат — це «підстановка» шифру.

Крок 2 — подивіться, як працює перемішування

Тепер змініть лише ключ перестановки. Вихід зберігає довжини, але літери стрибають — дроблений потік розрізано на колонки й прочитано в порядку ключа. Це шар перестановки. Зверніть увагу, чого не дає жоден шар окремо: підстановка сама нічого не згладжує, а перестановка не несе власної статистики літер — сила народжується з їхньої комбінації.

Крок 3 — розшифруйте інструментом

Перемкніться на «Розшифрувати», вставте шифртекст і залиште ті самі ключі. Інструмент відбудує сітку, прочитає її рядками та знайде пари координат у квадраті. Символи доповнення (заповнення прямокутника) можуть додати пару зайвих літер наприкінці коротких повідомлень — це прямокутник добудовується, а не баг.

Крок 4 — спробуйте варіант ADFGX

Перемкніть варіант на ADFGX: квадрат втрачає шостий рядок (без цифр, J зливається з I), а не-літери зникають із виходу. Решта процесу ідентична.

Крок 5 — передайте ключі другові

Повний шифртекст, обидва ключі, варіант — все, що було потрібно одержувачу 1918 року. Спробуйте практики, щоб побачити, на що здатний зловмисник без ключів.

Злам шифру ADFGVX

ADFGVX створювали, щоб витримати саме ті дві атаки, що вбили попередні польові шифри: Частотний аналіз (її вбило Дроблення) та атаки за шаблонами (її вбила Перестановка). І все одно він упав — під одним із найвражаючих криптоаналізів Першої світової. Демо-випробування відкриває керований зломщик інструменту на справжньому шифртексті.

Чому однієї атаки замало

З одним дробленням літери A D F G V X шифртексту не мають корисних частот: кожна літера повідомлення розмазана по двох із них. З одною перестановкою літери шифртексту — справжні дроблені координати, але перемішані — їхні частоти теж рівні. Захист у насуванні шарів, і атака має розбирати їх у правильному порядку: спершу зняти перемішування, потім розв'язати те, що лишилося.

Атака 1 — зібрати колонки назад

Зняти Перестановка — значить дізнатися, які шматки шифртексту були сусідніми колонками сітки. Ознака: коли два шматки справді були сусідами, їхнє зчеплення ставить кожну координату рядка поруч із координатою стовпця тієї ж літери — отримані «символи» з двох літер є справжніми літерами зі скошеними, мовними частотами. Хі-квадрат тест незалежності на парах координат міряє саме цей зв'язок; інструмент використовує його і для ранжування кандидатів довжини ключа, і для пропозиції сусідства колонок. Сприймайте пропозиції як підказки: на коротких повідомленнях хибна розкладка може виглядати переконливо, а справжня перевірка — чи дає наступний етап читабельний текст.

Атака 2 — квадрат як головоломка підстановки

Коли колонки на своїх місцях, пари координат — це літери звичайної моноалфавітної Підстановка над 25 або 36 символами. Стара механіка працює: найчастіші символи — найчастіші літери, Ключове слово підтверджують здогадки, і кожен підтверджений символ закріплює клітинку квадрата та обмежує її сусідів по рядку і стовпцю. Керований зломщик проходить цей етап із графіком частот, підказками літер і живим попереднім переглядом.

Історичний лайфхак: обсяг трафіку

Прорив Жоржа Пенвена навесні 1918 прийшов через кількість: десятки повідомлень за день на одному ключі дня, порівнювані колонка за колонкою, довжина з довжиною. Довгі однакові повідомлення на одному ключі вишикувалися і видали порядок колонок. Коротке поодиноке повідомлення не давало майже нічого — саме тому німецька радіо- дисципліна (або її брак) вирішила битву більше, ніж сам шифр.

Вирок історії

Розшифрований трафік допоміг зупинити німецький весняний наступ 1918 року. Сам шифр був добрий для свого часу; процедури довкола — ні. ADFGVX лишається хрестоматійним прикладом дроблення плюс перестановки — і прикладом того, як повторне використання ключів топить навіть добрі шифри.

Глосарій

Відкритий текст — Початкове читабельне повідомлення до шифрування.
Шифротекст — Перемішане повідомлення, отримане після шифрування.
Ключ — Секрет, що визначає, як саме змішується текст.
Алфавіт — Набір літер, з якими працює шифр.
Квадрат Полібія — Сітка, що перетворює кожен символ на дві координати: рядок і стовпець його клітинки.
Дроблення — Розщеплення кожної літери відкритого тексту на дрібніші одиниці (тут: дві координати) перед наступним шаром шифру.
Перестановка — Зміна порядку символів без зміни самих символів.
Частотний аналіз — Вивчення частоти літер; порівняння з мовою відкриває відкритий текст.
Ключове слово — Слово, яке ви припускаєте у відкритому тексті; порівняння з шифротекстом розкриває літери ключа.