Автоключ шифр - Autokey cipher
Autokey шифр (также известный как автоклавный шифр ) является шифром , который включает в себя сообщения ( открытый текст ) в ключ . Ключ генерируется из сообщения некоторым автоматическим способом, иногда путем выбора определенных букв из текста или, что более часто, путем добавления короткого ключа-праймера в начало сообщения.
Существует две формы шифрования с автоключом: шифр с автоключом и текст с автоключом . Шифр с автоматическим ключом использует предыдущие элементы ключевого потока для определения следующего элемента в ключевом потоке. Текстовый автоключ использует текст предыдущего сообщения для определения следующего элемента в ключевом потоке.
В современной криптографии самосинхронизирующиеся потоковые шифры являются шифрами с автоключом.
История
Этот шифр был изобретен в 1586 году Блезом де Виженером с обратной таблицей из десяти алфавитов. Версия Виженера использовала согласованную букву алфавита в качестве праймера, создавая ключ, записывая эту букву, а затем остальную часть сообщения.
Более популярные автоключи используют прямоугольную таблицу , квадрат с 26 копиями алфавита, первая строка начинается с «A», следующая строка начинается с «B» и т. Д. Вместо одной буквы используется короткое согласованное ключевое слово. , а ключ генерируется путем записи праймера, а затем остальной части сообщения, как в версии Виженера. Для шифрования открытого текста располагаются строка с первой буквой сообщения и столбец с первой буквой ключа. Буква, в которой пересекаются строка и столбец, является буквой зашифрованного текста.
Метод
Шифр с автоключом, используемый членами Американской ассоциации криптограмм , начинается с относительно короткого ключевого слова, праймера , и добавляет к нему сообщение. Если, например, ключевое слово QUEENLY
и сообщение есть attack at dawn
, ключ будет QUEENLYATTACKATDAWN
.
Plaintext: attackatdawn... Key: QUEENLYATTACKATDAWN.... Ciphertext: QNXEPVYTWTWP...
Таким образом, сообщение с зашифрованным текстом будет «QNXEPVYTWTWP».
Чтобы расшифровать сообщение, получатель должен начать с записи согласованного ключевого слова.
QNXEPVYTWTWP QUEENLY
Затем будет взята первая буква клавиши Q, и эта строка будет найдена в прямоугольной таблице. Этот столбец для первой буквы зашифрованного текста будет просматриваться поперек, также Q в этом случае, и будет извлечена буква вверху, A. Теперь эта буква будет добавлена в конец ключа:
QNXEPVYTWTWP QUEENLYA a
Затем, поскольку следующая буква в ключе - U, а следующая буква в зашифрованном тексте - N, просматривается строка U, чтобы найти N, чтобы получить T:
QNXEPVYTWTWP QUEENLYAT at
Это продолжается до тех пор, пока не будет восстановлен весь ключ, после чего праймер можно будет удалить с самого начала.
С автоключевым шифром Виженера единственная ошибка в шифровании делает остальную часть сообщения непонятной.
Криптоанализ
Шифры с автоключом несколько более безопасны, чем полиалфавитные шифры, в которых используются фиксированные ключи, поскольку ключ не повторяется в одном сообщении. Следовательно, такие методы, как проверка Касиски или анализ индекса совпадений , не будут работать с зашифрованным текстом, в отличие от аналогичных шифров, в которых используется один повторяющийся ключ.
Однако серьезным недостатком системы является то, что открытый текст является частью ключа. Это означает, что ключ, скорее всего, будет содержать общие слова в разных местах. Ключ можно атаковать, используя словарь общих слов, биграмм , триграмм и т. Д., А также пытаясь расшифровать сообщение, перемещая это слово через ключ до тех пор, пока не появится потенциально читаемый текст.
Рассмотрим пример сообщения, meet at the fountain
зашифрованного с помощью ключевого слова primer KILT
: для начала автоключ будет создан путем размещения праймера в начале сообщения:
plaintext: meetatthefountain primer: KILT autokey: KILTMEETATTHEFOUN
Затем сообщение шифруется с использованием ключа и алфавита подстановки, здесь прямоугольная таблица:
plaintext: meetatthefountain key: KILTMEETATTHEFOUN ciphertext: WMPMMXXAEYHBRYOCA
Злоумышленник получает только зашифрованный текст и может атаковать текст, выбрав слово, которое может появиться в открытом тексте. В этом примере злоумышленник выбирает слово the
как потенциальную часть исходного сообщения, а затем пытается его декодировать, помещая THE
во все возможные места в ключе:
ciphertext: WMP MMX XAE YHB RYO CA key: THE THE THE THE THE .. plaintext: dfl tft eta fax yrk .. ciphertext: W MPM MXX AEY HBR YOC A key: . THE THE THE THE THE . plaintext: . tii tqt hxu oun fhy . ciphertext: WM PMM XXA EYH BRY OCA key: .. THE THE THE THE THE plaintext: .. wfi eqw lrd iku vvw
В каждом случае результирующий открытый текст выглядит почти случайным, потому что ключ не выровнен для большей части зашифрованного текста. Тем не менее, изучение результатов может предложить правильное расположение ключа. В таких случаях полученный расшифрованный текст потенциально является частью слова. В этом примере очень маловероятно, что dfl
это начало исходного открытого текста, и поэтому маловероятно, что таковыми являются первые три буквы ключа THE
. Изучая результаты, можно увидеть ряд фрагментов, которые, возможно, являются словами, а другие можно удалить. Затем фрагменты открытого текста можно отсортировать в порядке вероятности:
unlikely ←——————————————————→ promising eqw dfl tqt ... ... ... ... eta oun fax
Правильный фрагмент открытого текста также должен появиться в ключе, сдвинутом вправо на длину ключевого слова. Точно так же угаданный ключевой фрагмент ( THE
) также появляется в открытом тексте, сдвинутом влево. Таким образом, угадывая длину ключевых слов (вероятно, от 3 до 12), можно выявить больше открытого текста и ключа.
Попытка сделать это oun
, возможно, потратив некоторое время на другие, приводит к следующему:
shift by 4: ciphertext: WMPMMXXAEYHBRYOCA key: ......ETA.THE.OUN plaintext: ......the.oun.ain
shift by 5: ciphertext: WMPMMXXAEYHBRYOCA key: .....EQW..THE..OU plaintext: .....the..oun..og
shift by 6: ciphertext: WMPMMXXAEYHBRYOCA key: ....TQT...THE...O plaintext: ....the...oun...m
Видно, что сдвиг на 4 выглядит хорошо (оба других имеют маловероятные Q), и поэтому раскрытое ETA
может быть сдвинуто назад на 4 в открытый текст:
ciphertext: WMPMMXXAEYHBRYOCA key: ..LTM.ETA.THE.OUN plaintext: ..eta.the.oun.ain
Сейчас можно со многим работать. Ключевое слово, вероятно, имеет длину 4 символа ( ..LT
), и часть сообщения видна:
m.eta.the.oun.ain
Поскольку предположения в виде открытого текста влияют на ключевые 4 символа слева, дается обратная связь о правильных и неправильных предположениях. Пробелы можно быстро заполнить:
meetatthefountain
Легкость криптоанализа обусловлена обратной связью между открытым текстом и ключом. При угадывании трех символов выявляются еще шесть символов (по три с каждой стороны), которые затем открывают другие символы, создавая каскадный эффект. Это позволяет быстро исключить неверные догадки.
Смотрите также
Примечания
использованная литература
- Белласо, Джован Баттиста, Il vero modo di scrivere in cifra con fascésà, prestezza, et securezza di Misser Джован Баттиста Белласо, gentil'huomo bresciano , Iacobo Britannico, Bressa 1564.
- Vigenère, Blaise de, Traicté des chiffres ou secrètes manières d'escrire , Abel l'Angelier, Paris 1586. ff. 46р-49в.
- LABRONICUS (Buonafalce, A), Ранние формы таблицы Porta , «Криптограмма», т. LX n. 2, Wilbraham 1994.
- Буонафальсе, Аугусто, Взаимные шифры Белласо, «Cryptologia» 30 (1): 39-51, 2006.
- LABRONICUS (Buonafalce, A), Vigenère и Autokey. Обновление , «Криптограмма», т. LXXIV n. 3, Плано 2008.
внешние ссылки
- Взломщик секретного кода - AutoKey Cipher Decoder и Encoder
- Реализация шифра Autokey на Javascript