Шифратор и дешифратор Виженера
Зашифруйте или расшифруйте сообщение шифром Виженера, введя ключевое слово. Каждая буква сдвигается на соответствующую букву ключа, регистр сохраняется, а всё, что не является буквой, проходит без изменений. Включите таблицу работы, чтобы увидеть букву ключа и сдвиг для каждой из первых 20 букв. Бесплатно, без регистрации, ничего не загружается.
Режим
Как пользоваться инструментом шифра Виженера
- 1. Выберите «Зашифровать» или «Расшифровать». Шифрование превращает открытый текст в зашифрованный; расшифровка обращает его тем же ключевым словом.
- 2. Введите ключевое слово. Только буквы A–Z, без пробелов и цифр. Ключевое слово повторяется вдоль сообщения. Ключевое слово
aдаёт сдвиг ноль и ничего не меняет. - 3. Введите или вставьте сообщение. Результат обновляется по мере ввода. Регистр сохраняется, а цифры, пробелы и знаки препинания проходят без расхода буквы ключа.
- 4. Включите «Показать работу» — появится таблица: открытая буква, буква ключа, сдвиг и результат для первых 20 букв.
Как работает шифр Виженера
Пронумеруйте буквы: A = 0, Z = 25. Запишите ключевое слово несколько раз под сообщением, по одной букве ключа на каждую букву сообщения. Для шифрования прибавьте номер буквы ключа к номеру буквы сообщения, переходя через Z: C = (P + K) mod 26. Для расшифровки вычтите: P = (C − K) mod 26. Каждая буква ключа выбирает свой сдвиг Цезаря — A даёт 0, B — 1, до Z — 25, поэтому шифр называется полиалфавитным: одна и та же буква сообщения может стать разными буквами шифра. Записывать суммы вручную помогает традиционный квадрат (таблица) Виженера.
Пример: ключевое слово LEMON
Шифруем Attack at dawn ключевым словом lemon: получается Lxfopv ef rnhr. Первые шесть букв, как их показывает таблица работы:
| Открытая буква | Буква ключа | Сдвиг | Результат |
|---|---|---|---|
| A | l | +11 | L |
| t | e | +4 | x |
| t | m | +12 | f |
| a | o | +14 | o |
| c | n | +13 | p |
| k | l | +11 | v |
Обратите внимание на повторы. Две t в «Attack» превращаются в x и f, потому что стоят под разными буквами ключа, а две a — в o и e. Простой сдвиг Цезаря превратил бы каждую пару в одинаковые буквы, а именно такой шаблон и использует частотный анализ. Расшифровка идёт по той же таблице в обратном порядке: режим «Расшифровать» с lemon возвращает Lxfopv ef rnhr в Attack at dawn. Буквы ключа продолжаются через пробел; сам пробел ключа не использует.
Краткая история
Джованни Баттиста Беллазо описал этот шифр в 1553 году. Название происходит от Блеза де Виженера, который в 1586 году опубликовал родственный, но более стойкий автоключевой шифр; в XIX веке шифр ошибочно приписали ему. Его назвали le chiffre indéchiffrable, «неразгадываемый шифр», и он сопротивлялся взлому до тех пор, пока Фридрих Касиски не опубликовал общий метод в 1863 году. Чарльз Бэббидж взломал его уже в 1854 году, но не опубликовал результат.
Как взламывают шифр Виженера
Всё зависит от длины ключевого слова. Если один и тот же фрагмент открытого текста дважды совпадает с одной и той же частью ключа, он даёт дважды один и тот же шифротекст. Метод Касиски измеряет расстояния между такими повторами; длина ключа, вероятно, — общий делитель этих расстояний. Когда вы знаете длину n, каждая n-я буква сдвинута одной и той же буквой ключа, поэтому каждый из n столбцов — обычный шифр Цезаря, который можно решить частотным анализом. Длинное, непредсказуемое ключевое слово этому сопротивляется, а случайный ключ той же длины, что и сообщение, использованный один раз, — это одноразовый блокнот, который взломать нельзя. Этот инструмент шифрует и расшифровывает ключевым словом, которое вы задаёте; он не ищет ключ.
Ограничения этого инструмента
- Шифруются только A–Z и a–z. Буквы других письменностей и буквы с диакритикой, например é, остаются без изменений, а инструмент сообщает, сколько букв он пропустил.
- Ключевое слово — только буквы. Пробел, цифра или буква с диакритикой в ключевом слове отклоняются.
- Таблица работы показывает 20 строк, какой бы длинной ни была строка сообщения.
- Небезопасно. Используйте для головоломок, уроков и игр, а не для чего-либо личного.
Какой инструмент вам нужен?
| Шифр | Как работает ключ |
|---|---|
| Шифр Цезаря | Один сдвиг для всего сообщения |
| Виженер (эта страница) | Повторяющееся ключевое слово; каждая буква ключа — один сдвиг |
| Шифр Бофорта | Как Виженер, но буква ключа минус буква сообщения, поэтому одна и та же операция и шифрует, и расшифровывает |
| Автоключевой шифр | Короткая затравка, затем само сообщение становится ключом |
| Шифр Порты | Ключевое слово выбирает один из 13 взаимных алфавитов |
Если вы не уверены, какой шифр перед вами, запланированный Определитель шифров поможет сузить выбор.
Часто задаваемые вопросы
- Что такое шифр Виженера?
- Полиалфавитный шифр подстановки, который сдвигает каждую букву на величину, заданную повторяющимся ключевым словом. Первая буква сообщения использует первую букву ключа, вторая — вторую и так далее, поэтому одна открытая буква может стать многими буквами шифра.
- Чем шифр Виженера отличается от шифра Цезаря?
- Шифр Цезаря использует один фиксированный сдвиг. Шифр Виженера использует ключевое слово, давая каждой букве свой сдвиг Цезаря; по сути это несколько шифров Цезаря, переплетённых между собой — по одному на каждую букву ключа.
- Что происходит с пробелами, цифрами и знаками препинания?
- Они проходят без изменений и не расходуют букву ключа, поэтому ключевое слово продвигается только по буквам A–Z и a–z.
- Как расшифровать шифр Виженера?
- Если вы знаете ключевое слово, выберите «Расшифровать», введите его и вставьте шифротекст. Каждая буква сдвигается назад на свою букву ключа. Без ключевого слова нужен криптоанализ: метод Касиски, чтобы найти длину ключа, затем частотный анализ каждого столбца.
- Почему мой результат совпадает с исходным текстом?
- Ключевое слово, состоящее только из буквы A (или одной
a), сдвигает каждую букву на ноль. Выберите ключевое слово с другими буквами. - Стойкий ли шифр Виженера?
- Нет. Около трёх веков он казался невзламываемым, но Касиски опубликовал общую атаку в 1863 году, а компьютеры решают его за считанные мгновения. Он по-прежнему хорош для изучения полиалфавитных шифров.
- Работает ли он с неанглийскими алфавитами?
- Как шифр — нет. Квадрат Виженера построен на 26-буквенном латинском алфавите, поэтому другие письменности проходят без шифрования, а инструмент сообщает, сколько букв он оставил без изменений.