Утилиты · Классические шифры
Шифр Виженера: шифратор и взлом
Шифр Виженера и Бофора: шифрование по ключу и автоматический взлом без ключа — длина ключа по индексу совпадений.
Считается в вашем браузере. Текст никуда не отправляется.
Как пользоваться
Введите ключ — одно или несколько слов — и текст. Результат появляется сразу. Под ним лента: над каждой буквой текста стоит буква ключа, которая на неё пришлась, а внизу — то, что получилось. Ключ сдвигается только на буквах: пробелы, цифры и знаки препинания остаются на месте и букву ключа не тратят. Регистр сохраняется. Кнопка «⇅» меняет поля местами и переключает режим.
Алфавит определяется по тексту: русский (33 буквы, с ё) или латинский (26). Ключ должен быть в том же алфавите, что и текст.
Виженер, Бофор и обратный вариант
В классическом шифре Виженера номер буквы ключа прибавляется к номеру буквы текста (А = 0, Б = 1…): шифр = текст + ключ. У шифра Бофора наоборот: шифр = ключ − текст. Поэтому Бофор сам себе обратный — повторное шифрование тем же ключом возвращает исходный текст. «Обратный» вариант вычитает ключ из текста: шифр = текст − ключ. Им удобно расшифровывать чужие Виженеры, а вот стойкость у всех трёх одинаковая.
Как работает взлом
Если ключ неизвестен, блок «Взлом без ключа» делает то же, что в XIX веке делали Бэббидж и Касиски, только за миллисекунды. Для каждой возможной длины ключа L текст делится на L столбцов (буквы 1, L+1, 2L+1… — первый столбец, и так далее) и считается индекс совпадений — вероятность, что две случайно взятые буквы столбца одинаковы. У обычного русского текста он около 0,055, у английского около 0,067, у случайной каши букв — 0,030 и 0,038. Когда L угадана, каждый столбец зашифрован одной буквой ключа, и индекс подскакивает до уровня языка. Кратные длины (2L, 3L) тоже дают высокий столбик — выбирается первая подходящая.
Проверка Касиски ищет в шифровке повторы из трёх и более букв. Часто это одно и то же слово, на которое ключ лёг одинаково, и расстояние между повторами кратно длине ключа.
Каждый столбец — обычный шифр Цезаря. Программа перебирает все сдвиги и выбирает тот, при котором частоты букв ближе всего к языку (по χ²). Если какая-то буква ключа выбралась неверно, поправьте её стрелками ▲▼ — расшифровка обновится сразу. Кнопка «Взять ключ» подставит найденный ключ и переключит режим на расшифровку.
Взлом надёжен, когда букв в шифровке хотя бы в 30–40 раз больше, чем в ключе. Короткую записку статистика не возьмёт: тут нужен сам ключ или догадка.
Квадрат Виженера
Внизу — tabula recta, таблица всех сдвигов алфавита. Нажмите букву на ленте, и в квадрате загорятся строка буквы ключа, столбец буквы текста и их пересечение. Для Бофора и обратного варианта подсказка объясняет, как читать квадрат по-другому.
Частые вопросы
Как расшифровать шифр Виженера, если ключ известен?
Выберите «Расшифровать», вставьте шифровку и введите ключ. Если ключ — слово, которое вы откуда-то знаете, регистр и пробелы в нём не важны.
Можно ли взломать Виженера без ключа?
Да, если текст достаточно длинный, а ключ повторяется. Почему так — в уроке о шифре Виженера.
Безопасно ли вводить сюда текст?
Да. Всё считается в вашем браузере, на сервер ничего не отправляется.