Шифр автоключа — це те, чим «шифр Віженера» був насправді 1586 року:
шифр віженерівського типу, чий ключ виростає з самого повідомлення.
Він стартує з короткої затравки — скажімо, QUEEN — а після цих п'яти
літер потік ключа продовжує вже написаний відкритий текст. Ключ
годується сам собою; звідси «авто» в автоключі.
Напишіть повідомлення і залиште лише літери.
Оберіть затравку — коротке ключове слово, зазвичай значно коротше за повідомлення.
Побудуйте Потік ключа: спершу затравка, потім власний відкритий текст, дописаний після неї.
Додавайте, як у Віженера: кожна літера відкритого тексту плюс літера потоку ключа над нею (із загортанням по абетці) дає шифртекст.
Дивіться на стовпець потоку ключа: QUEENLY скінчується після шести
літер, а далі кожна літера ключа — це просто літера повідомлення з
однієї довжини затравки раніше. Інструмент показує це наживо: рядок
потоку ключа під введенням росте разом з вашим текстом, частина
затравки виділена.
Нумеруючи A=0 … Z=25, з потоком K, побудованим із затравки і самого відкритого тексту:
шифр = (відкритий текст + ключ) mod 26
ключ[i] = затравка[i] для i < довжини затравки
ключ[i] = відкритий текст[i − довжина] даліРозшифрування йде тим самим потоком: відновлюйте відкритий текст літера за літерою, і кожна відновлена літера стає матеріалом ключа на одну довжину затравки пізніше. Саме тому затравка — весь секрет: все інше відроджується саме.
Оскільки потік ключа не повторює жодного періоду, періодичні відбитки Віженера (повторні послідовності, прирости індексу збігів по зрізах) зникають. Шифр витримує класичну атаку XIX століття.
Ціна — крихкість. Будь-яка помилка в шифртексті поширюється на всі наступні літери ключа, а вся схема спирається на один короткий секрет: якщо зловмисник вгадає відкритий текст («перетягування» ймовірного слова), вгадані літери і є матеріалом ключа і розкручують решту повідомлення — саме це робить керований зломщик інструменту, разом з вами.
Введіть повідомлення у поле повідомлення.
Оберіть коротку затравку і введіть її у поле «Ключ» — чотири-шість літер типово.
Перевірте режим: кнопка обміну кнопку обміну перемикає між шифруванням і розшифруванням. Заголовок показує поточний режим.
Прочитайте зашифрований результат у поле результату. Шифруються лише літери; пробіли та розділові знаки викидаються.
Гляньте на рядок потоку ключа під панеллю: виділені літери — ваша затравка, а кожна наступна — це ваше власне повідомлення, що повертається як ключ.
Вставте криптограму у поле повідомлення.
Введіть у поле «Ключ» затравку відправника — потрібна точно та сама, якою шифрували.
Натисніть кнопку кнопку обміну, щоб перейти в режим розшифрування.
Прочитайте оригінал у поле результату. Рядок потоку ключа відростає сам із відновленого відкритого тексту.
Відкрийте вкладку Криптоаналіз. Керований зломщик працює перетягуванням ймовірного слова — вгадати слово і дати хитрощам ключа самого шифру розкрутити повідомлення.
Крок 1 — вгадайте слово, яке, найімовірніше, є в тексті (введіть його у поле ключового слова; підказки завдання пропонують одне) і задайте довжину затравки у Задайте припущену довжину затравки.. Слово довжиною із затравку або довше відкриває все; коротше лишає вам кілька літер.
Крок 2 — протягуйте слово вздовж тексту у Ймовірне слово, просунуте вздовж шифртексту; клацніть позицію, щоб поставити його.. Кожна позиція підказує фрагмент ключа — в автоключі це давніший відкритий текст, тож читабельні позиції і є правильними.
Крок 3 — розстановка розкручується: ланцюги відкритого тексту поширюються в обидва боки у Відкритий текст, розкручений з розташування слова., і затравка випливає на початку. Решту літер введіть у Введіть літери затравки, яких слово не сягнуло..
Крок 4 — перевірте зібрану затравку, тоді натисніть кнопку «Використати цей ключ». Інструмент розшифрує повідомлення нею.
У шифру автоключа немає повторюваного Ключ, який можна знайти — тож віженерівська атака не ловить нічого. Але в нього є слабша шовчина: ключ і є відкритий текст. Ця сторінка пояснює атаку перетягування ймовірного слова; кожен крок має парний крок у керованому зломщику інструменту, тож читайте з інструментом у руках.
Спробувати в інструментіПеріодичність зникла. Оскільки потік ключа — «затравка, потім відкритий текст», дві однакові літери відкритого тексту майже ніколи не шифруються двічі однаково; повторні послідовності висихають, а зрізовий частотний аналіз не має зрізів, за які вчепитися. Екзамен Касіскі й індекс збігів обидва повертаються порожніми.
Кожна літера потоку ключа (після затравки) — це літера відкритого тексту з однієї довжини затравки раніше. Отже, вгадане слово відкритого тексту виконує подвійну роботу:
Протягніть слово. Поставте здогад у кожну позицію шифртексту. У позиції p здогад підказує літери ключа K = C − здогад — а в автоключі ці літери ключа і є відкритий текст на одну довжину затравки раніше. Хибна позиція дає абеткову юшку; правильна — читабельну англійську.
Розкрутіть. Щойно розстановка правильна, відомі літери поширюються самі: відновлена літера у позиції p стає ключем у p + L (відкриваючи відкритий текст там), а літера у p − L відкривається так само назад. Кілька проходів — і ланцюги покривають все, чого торкаються класи позицій здогаду.
Прочитайте затравку. Перші L літер потоку ключа — це затравка: K(i) = C(i) − P(i) для кожної. Де здогад ніколи не сягнула, літери затравки лишаються порожніми — останній крок майстра: ви вводите їх вручну, за тим, що схоже на англійську.
Статистика тут не потрібна зовсім. Одне вгадане слово, одне правило віднімання — і шифр сам дообвалює решту.
Здогад — уся гра. Якщо у відкритому тексті немає слова, яке можна вгадати, атака стає — жодна рейтингова машина не врятує хибне ймовірне слово.
Короткі затравки крихкі. Затравка з 1–3 літер — це майже шифр Цезаря з зайвими кроками; розкручені ланцюги покривають майже все одразу.
Довгі затравки поводяться як одноразовий блокнот. Затравка довжиною з повідомлення не повторює нічого — незламна, як будь-який ключ, ужитий один раз. Вада автоключа існує лише тому, що затравка коротка.