Рис. 11 Блез де Виженер
Хотя и Альберти, и Тритемий, и Порта, каждый внесли значительный вклад в создание нового шифра, но этот шифр известен как шифр Виженера, в честь человека, который придал ему окончательный вид. Стойкость шифра Виженера состоит в том, что для зашифровывания сообщения в нем используется не один, а 26 различных шифралфавитов. Шифрование начинается с построения так называемого квадрата Виженера, показанного в таблице 3: алфавит открытого текста с последующими 26 шифралфавитами, каждый из которых сдвинут на одну букву относительно предыдущего алфавита.
Таблица 3 Квадрат Виженера.
Здесь ряд 1 представляет собой алфавит шифра Цезаря со сдвигом на 1 позицию, то есть этот шифралфавит может использоваться в качестве алфавита шифра Цезаря, в котором каждая буква открытого текста заменяется буквой, расположенной в алфавите на одну позицию дальше. Точно так же ряд 2 представляет собой алфавит шифра Цезаря со сдвигом на 2 позиции и так далее.
Верхний ряд квадрата, со строчными буквами, представляет буквы алфавита открытого текста. Вы можете зашифровать каждую букву открытого текста с помощью любого из 26 шифралфавитов. Например, если используется шифралфавит номер 2, то буква а зашифровывается как С, если же используется шифралфавит номер 12, тогда а преобразуется в М.
Если отправитель, чтобы зашифровать сообщение, пользуется только одним из шифралфавитов, то это фактически будет простым шифром Цезаря, который является исключительно нестойким видом шифрования, так что сообщение может быть без труда дешифровано противником, перехватившим его. В шифре же Виженера для зашифровывания различных букв сообщения применяются различные строки квадрата Виженера (различные шифралфавиты). Другими словами, отправитель может зашифровать первую букву с помощью ряда 5, вторую букву с помощью ряда 14, третью букву с помощью ряда 21 и так далее.
Получателю сообщения, чтобы расшифровать его, следует знать, какая из строк квадрата Виженера использовалась для зашифровывания каждой из букв, поэтому должна быть задана система переходов между строками. Это обеспечивается с помощью ключевого слова. Чтобы показать, как применяется ключевое слово с квадратом Виженера для зашифровывания короткого сообщения, зашифруем следующую фразу divert troops to east ridge с помощью ключевого слова WHITE. Прежде всего ключевое слово буква за буквой записывается над сообщением, и его повторяют до тех пор, пока каждой букве в сообщении не будет сопоставлена буква ключевого слова. Далее приступим к созданию шифртекста, что делается следующим образом. Чтобы зашифровать первую букву, d, определим вначале букву ключа над ней, W, которая, в свою очередь задает строку в квадрате Виженера. Именно строка, начинающаяся с буквы W, — двадцать вторая строка, — и является шифралфавитом, который будет использован для нахождения буквы, которой будет заменена буква d открытого текста. Посмотрим, где столбец с буквой d в первой строке пересекается со строкой, начинающейся с буквы W; это будет буква Z.
Следовательно, буква d в открытом тексте будет буквой Z в шифртексте.
Точно так же поступим, чтобы зашифровать вторую букву сообщения, i. Буквой ключа над i является Н, поэтому она зашифровывается по другой строке в квадрате Виженера, и новым шифралфавитом будет строка, начинающаяся с буквы Н, — седьмая строка. Чтобы зашифровать i, теперь посмотрим, где столбец с буквой i в первой строке пересекается со строкой, начинающейся с буквы Н; это будет буква Р.
Поэтому буква i в открытом тексте будет буквой Р в шифртексте. Каждая буква ключевого слова задает конкретный шифралфавит в квадрате Виженера, и, поскольку ключевое слово состоит из пяти букв, отправитель зашифровывает сообщение, циклически проходя пять строк квадрата Виженера. Пятая буква сообщения зашифровывается по пятой букве ключевого слова, Е, но, чтобы зашифровать шестую букву сообщения, мы должны вернуться к первой букве ключевого слова. При использовании более длинного ключевого слова или, к примеру, ключевой фразы в процесс зашифровывания будет вовлечено большее число строк и шифр усложнится. В таблице 4 приведен квадрат Виженера с выделенными пятью строками (т. е. пятью шифралфавитами), которые определяются ключевым словом WHITE.