Назад
Печать

Шифр Виженера

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

Таблица для расшифровки (мультиязычная):

Таблица Виженера для расшифровки

Как пользоваться таблицей:

  1. Найдите строку, соответствующую букве ключа
  2. Найдите столбец, соответствующий букве шифротекста
  3. На пересечении найдете букву исходного текста
  4. Для цифр и символов используйте прямое соответствие

В шифре Цезаря каждая буква алфавита сдвигается на несколько позиций; например в шифре Цезаря при сдвиге +3, A стало бы D, B стало бы E и так далее.

Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или квадрат (таблица) Виженера.

Применительно к латинскому алфавиту таблица Виженера составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций.

Таким образом, в таблице получается 26 различных шифров Цезаря. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова. Например, предположим, что исходный текст имеет такой вид:

ATTACKATDAWN

Человек, посылающий сообщение, записывает ключевое слово («LEMON») циклически до тех пор, пока его длина не будет соответствовать длине исходного текста:

LEMONLEMONLE

Первый символ исходного текста A зашифрован последовательностью L, которая является первым символом ключа. Первый символ L шифрованного текста находится на пересечении строки L и столбца A в таблице Виженера.

Точно так же для второго символа исходного текста используется второй символ ключа; то есть второй символ шифрованного текста X получается на пересечении строки E и столбца T. Остальная часть исходного текста шифруется подобным способом.

Исходный текст:       ATTACKATDAWN
Ключ:               LEMONLEMONLE
Зашифрованный текст:  LXFOPVEFRNHR

Расшифровка шифра Виженера

Расшифровывание производится следующим образом: находим в таблице Виженера строку, соответствующую первому символу ключевого слова; в данной строке находим первый символ зашифрованного текста. Столбец, в котором находится данный символ, соответствует первому символу исходного текста.

Следующие символы зашифрованного текста расшифровываются подобным образом.

Если {\displaystyle n}n - количество букв в алфавите, {\displaystyle m_{j}}{\displaystyle m_{j}} - буквы открытого текста, {\displaystyle k_{j}}{\displaystyle k_{j}} - буквы ключа, то шифрование Виженера можно записать следующим образом:

{\displaystyle c_{j}=m_{j}+k_{j}{\pmod {n}}}{\displaystyle c_{j}=m_{j}+k_{j}{\pmod {n}}}

И расшифровывание:

{\displaystyle m_{j}=c_{j}-k_{j}{\pmod {n}}}{\displaystyle m_{j}=c_{j}-k_{j}{\pmod {n}}}

В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять чаще, например, от слова к слову.

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

Для  ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание.

Шифр Виженера

Результат:

Инструкция:

1. Выберите язык текста

2. Выберите режим (шифрование/дешифрование)

3. Введите ключевое слово (только буквы)

4. Введите текст для обработки

5. Нажмите "Выполнить"

Оглавление