Полиалфавитное шифрование с ключевым словом
Коротко об инструменте
В отличие от сдвига на одно фиксированное число, здесь величину сдвига для каждой буквы диктует ключевое слово, которое повторяется по кругу вдоль всего сообщения. Одна и та же буква исходного текста в разных местах превращается в разные символы, и частотный анализ по одной букве перестаёт работать. Инструмент нужен для лабораторных по криптографии, для квестов посложнее и для разбора исторических шифровок. Расчёт идёт в браузере. Смотрите также: шифр Цезаря со сдвигом на одну букву, быстрая замена ROT13 без ключа, спрятать результат в Base64 перед отправкой.
Чем длиннее, тем лучше: короткий ключ из трёх букв повторяется вдоль сообщения десятки раз, и метод Касиски находит период по совпадающим фрагментам шифротекста. Ключ, сопоставимый по длине с самим сообщением и не являющийся словарным словом, делает вскрытие вручную практически невозможным. Для учебных задач хватает пяти-восьми букв.
Каждая буква ключа задаёт числовой сдвиг по латинскому алфавиту: A означает нулевой сдвиг, B — единичный и так далее. Для цифры или пробела такого сдвига не определено, поэтому поле «Ключ (только буквы)» ограничено буквами. Если ключевая фраза состоит из нескольких слов, просто уберите из неё пробелы.
Вы получите такую же длинную строку из букв, но абсолютно нечитаемую — ошибки не будет, потому что математически операция корректна при любом ключе. Именно поэтому ключ надо запоминать или хранить отдельно: восстановить сообщение без него можно только криптоанализом. Проверьте регистр и опечатки, ключ должен совпадать посимвольно.
Нет, преобразуются только латинские буквы, а русские символы, цифры и знаки препинания проходят насквозь без изменений. Для задания на русском алфавите транслитерируйте текст в латиницу перед шифрованием, иначе значительная часть сообщения останется открытой.
У Цезаря всего двадцать пять вариантов ключа, и перебор занимает минуту. У Виженера пространство ключей растёт экспоненциально с длиной ключевого слова, а одна и та же буква в разных позициях шифруется по-разному, из-за чего частотный анализ по одиночным буквам не даёт результата. По современным меркам это всё равно слабый шифр, но взломать его вручную заметно труднее.
Не стоит. Виженер вскрывается известными с девятнадцатого века методами Касиски и Фридмана, а при коротком ключе — за минуты автоматическими средствами. Это исторический и учебный шифр. Для реальной защиты данных используйте современные алгоритмы и проверенные мессенджеры со сквозным шифрованием.
До: Ключ KEY, текст: ATTACKATDAWN
После: KXRKGIKXBKAL
До: Ключ KEY, текст: AAAA
После: KEYK — повторяющаяся A превращается в разные буквы
Оценка и фидбек помогают понять, что улучшать дальше.