Шифр Виженера и его варианты
4. Простой шифр Виженера. Буквы алфавита нумеруются от А = 0 до Z = N-1. В качестве ключа используется набор d букв (период шифра). Ключ подписывается с повторением под текстовой последовательностью вплоть до конца текста. Из этих двух последовательностей (текста и повторяющегося ключа) получается третья последовательность - криптограмма по правилу:
Ci = (Ti + Ki) mod N
где: N - объем алфавита, Ci - i-я буква криптограммы, Ti - i-я буква текста, Ki - i-я буква ключа.
Пример. Для английского алфавита N = 26. Последовательно нумеруем буквы:
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
0 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
Ключ: G A H
Текст:
N O W I S T H E (Now is the ...)
Получаем криптограмму побуквенным сложением по модулю 26:
N O W I S T H E ...
13 14 22 8 18 19 7 4
G A H G A H G A ...
6 0 7 6 0 7 6 0
_________________________________
19 14 3 14 18 0 13 4 ...
T O D O S A N E ...
Окончательно имеем криптограмму:
todosane...
Расшифровку шифрограммы по Виженеру можно выполнить по формуле:
Mi = Ci - Ki, если Сi > Кi,
Mi = 26 + (Ci - Ki) если Сi < Кi
Пример:
T O D O S A N E ...
19 14 3 14 18 0 13 4 ...
G A H G A H G A ...
6 0 7 6 0 7 6 0 ...
19 - 6 = 13 N
14 - 0 = 14 0
3 - 7 = -4, 26 + (-4) = 22 W
14 - 6 = 8 I
18 - 0 = 18 S
0 - 7 = -7, 26 + (-7) = 19 T
13 - 6 = 7 H
4 - 0 = 4 E
. . . . . .
. . . . . .
. . . . . .
5. Составной шифр Виженера образуется последовательным применением двух или более простых шифров Виженера с периодами d1, d2 ... dn. Как и в случае шифра составной перестановки, результирующий период
d = НОК(d1, d2 ... dn),
где НОК - наименьшее общее кратное периодов d1, d2 ... dn.
6. Шифр Виженера с перемешанным один раз алфавитом. “Прямой” вариант шифра представляет собой простую подстановку с последующим применением шифра Виженера. “Обратный” вариант - шифр Виженера с последующей простой подстановкой.
7. Шифр Вернама - это простой шифр Виженера с ключом неограниченной длины, в котором буквы ki выбираются случайно и независимо друг от друга.
Для генерации требуемой ключевой последовательности используют программный генератор псевдослучайных чисел (ПСЧ), вырабатывающий псевдослучайную последовательность по определенным образом выбранному т.н. порождающему числу.
8. Шифр бегущего ключа - это шифр Вернама, в котором в качестве ключа используется осмысленный текст.
Шифр Цезаря. (не для программной реализации - испробовать только "на бумаге") Частный случай шифра Виженера с периодом шифра = 1.
Каждая буква текста попросту циклически сдвигается на фиксированное число (n) мест вперед по алфавиту. Это число (от 0 до N, где N - объем алфавита) и является ключом.
Упражнение. Расшифруйте криптограмму (n = 2):
Y G B P G G F B O Q T G B U P Q Y B H Q T B D C V V G T B U M K K P I
Примечание.
1. Использован алфавит английского языка:
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
2. Знак пробела в тексте заменен другим знаком алфавита. (Определите, какой именно это знак).
N-граммные подстановки.
9. Вместо 1-й буквы текста подставляются 2, 3, ... или n букв.
При N-граммной подстановке ключ составляют на основе всевозможных перестановок (N)n n-грамм.
Практически ключ составляется на основе массива, в котором по первому измерению изменяется первая буква, по второму - вторая буква и т.д. n-граммы.
Пример. для диграммной подстановки и английском алфавите число перестановок = (26)2 = 676.
Для этого случая можно использовать таблицу, в которой по строкам изменяется первая буква, а по столбцам - вторая буква диграммы.
