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

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

Таблица для расшифровки русская:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF
1 а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я
2 а а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я
3 б б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а
4 в в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б
5 г г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в
6 д д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г
7 е е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д
8 ё ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е
9 ж ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё
10 з з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж
11 и и й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з
12 й й к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и
13 к к л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й
14 л л м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к
15 м м н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л
16 н н о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м
17 о о п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н
18 п п р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о
19 р р с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п
20 с с т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р
21 т т у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р с
22 у у ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р с т
23 ф ф х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р с т у
24 х х ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р с т у ф
25 ц ц ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р с т у ф х
26 ч ч ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р с т у ф х ц
27 ъ ъ ы ь э ю я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч
28 ы ы ь э ю я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ
29 ь ь э ю я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы
30 э э ю я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь
31 ю ю я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э
32 я я а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ъ ы ь э ю

В шифре Цезаря каждая буква алфавита сдвигается на несколько позиций; например в шифре Цезаря при сдвиге +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 символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять чаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ.  Для  ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание.

 

поиск по сборнику решалок