Шифр Виженера онлайн: шифрование и расшифровка текста по ключу

Онлайн шифратор и дешифратор Виженера
Шифрование по ключевому слову для русского (33 буквы, включая Ё) и латинского алфавитов.
Скопировано в буфер!
Знаки препинания, пробелы, цифры и спецсимволы не изменяются и не сдвигают порядок применения букв ключа. Регистр символов сохраняется.

Как устроен алгоритм Виженера

Шифр Виженера меняет шаг смещения для каждого отдельного символа на основе кодового слова. В отличие от простых подстановок, здесь одна и та же буква открытого текста при повторении превращается в разные символы шифротекста.

Отличие от шифра Цезаря

В нашем калькуляторе шифра Цезаря смещение задается одной фиксированной цифрой: весь текст двигается по алфавиту вперед на одинаковое расстояние. Из-за этого Цезарь взламывается за пару секунд простым перебором 33 вариантов сдвига.

Виженер берет буквы секретного слова и превращает их в цепочку разных сдвигов.

Разберем пример: шифруем слово «ТЕКСТ» ключом «КОД».

  1. Букву «Т» сдвигаем на порядковый номер буквы «К».
  2. Букву «Е» сдвигаем на номер буквы «О».
  3. Букву «К» сдвигаем на номер буквы «Д».
  4. Слово «КОД» закончилось, поэтому возвращаемся в начало: букву «С» сдвигаем на шаг буквы «К».
  5. Букву «Т» сдвигаем на шаг буквы «О».

Первая буква «Т» и последняя буква «Т» в итоге станут разными символами шифра, потому что попали на разные буквы пароля.

Формула расчета

Программа вычисляет индекс каждого символа через деление с остатком:

Шифрование: C = (P + K) mod N
Расшифровка: P = (C — K + N) mod N

Параметры вычислений:

  • P: номер буквы открытого текста в алфавите (отсчет идет с нуля).
  • K: номер соответствующей буквы пароля.
  • C: номер полученного зашифрованного символа.
  • N: размер алфавита. Для русского языка это 33 символа, для английского: 26.

При расшифровке скрипт вычитает индекс ключа из шифротекста. Если число уходит в минус, к результату добавляется длина алфавита N.

Как скрипт на 24calc обрабатывает текст

В онлайн калькуляторе заложены три технических правила:

  • Буква «Ё» включена в русский алфавит. Буква стоит на седьмой позиции, как положено по правилам языка. Скрипт рассчитывает модуль ровно на 33 буквы, поэтому исходные слова не искажаются.
  • Знаки и пробелы остаются на местах. Запятые, точки, пробелы, цифры и переносы строк не кодируются и не тратят шаг пароля. Ключ расходуется строго на буквы.
  • Русский и английский текст разделены. Русские фразы шифруются кириллическими символами ключа, латиница: английскими.

Другие инструменты для работы с кодом

Если вам нужно не текстовое шифрование, а преобразование байтов и машинных данных, используйте смежные сервисы:

Как взламывают шифр Виженера

Долгое время алгоритм считался не поддающимся взлому. В 1863 году майор прусской армии Фридрих Касиски опубликовал методику его дешифровки без знания пароля.

Принцип теста Касиски: в длинном шифротексте ищут одинаковые группы из 3-4 букв. Из-за циклического повторения пароля частые сочетания вроде «про», «сто» или «под» периодически шифруются одними и теми же буквами ключа. Взломщик считает расстояние между этими повторами и находит наибольший общий делитель. Полученное число указывает на точную длину секретного слова.

Как только длина пароля известна (допустим, 5 букв), задача распадается на 5 отдельных шифров Цезаря. Дальше текст вскрывается базовым подсчетом частоты гласных букв.

Частые вопросы

Сколько букв в русском алфавите считает калькулятор?

Ровно 33 буквы. Буква «Ё» находится на штатном седьмом месте, что исключает сдвиги при расшифровке.

Тратят ли пробелы и точки буквы ключа?

Нет. Все спецсимволы, знаки препинания и пробелы просто переносятся в итоговое поле. Буква ключа переходит только к следующей букве текста.

Что происходит, когда пароль короче текста?

Скрипт автоматически начинает читать пароль заново с первой буквы и повторяет этот цикл до конца текста.

Сохраняется ли регистр символов?

Да. Заглавные буквы шифруются в заглавные, строчные остаются строчными.



Было ли это полезно?

3 / 0