Система Вижинера впервые была опубликована в 1586 г. и является одной из старейших и наиболее известных многоалфавитных систем. Свое название она получила по имени французского дипломата XVI века Блеза Вижинера, который развивал и совершенствовал криптографические системы. Она подобна такой системе шифрования Цезаря, у которой ключ подстановки меняется от буквы к букве. Автор шифра предложил для шифрования таблицу, которую называют таблицей (или квадратом) Вижинера. Её размер равен длине алфавита. Верхняя (нулевая) строка заполняется символами алфавита, левый столбец – цифрами.
Сама таблица заполняется по следующему правилу. Первая строка имеет цифровой ключ «0» и заполняется всеми символами по алфавиту, вторая имеет цифровой ключ «1» и заполняется теми же символами, сдвинутыми вправо на один символ по кругу, и далее, k ‑я имеет цифровой ключ «к-1» и заполняется теми же символами, сдвинутыми вправо на (к-1) символ по кругу.
Приведем фрагмент таблицы Вижинера для русского алфавита.
|
|
а | б | в | г | д | е | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | |
0 | а | б | в | г | д | е | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь |
1 | б | в | г | д | е | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы |
2 | в | г | д | е | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы | ъ |
3 | г | д | е | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы | ъ | э |
4 | д | е | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы | ъ | э | ю |
5 | е | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы | ъ | э | ю | я |
6 | ж | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы | ъ | э | ю | я | а |
7 | з | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы | ъ | э | ю | я | а | б |
8 | и | й | к | л | м | н | о | п | р | с | т | у | ф | х | ц | ч | ш | щ | ь | ы | ъ | э | ю | я | а | б | в |
При шифровании верхняя строка подчеркнутых символов, используется для поиска очередной буквы открытого текста. Крайний левый столбец используется для поиска соответствующего этой букве элемента ключа. Очередная буква шифртекста находится на пересечении столбца, определяемого шифруемой буквой, и строки, определяемой числовым значением ключа.
Лучше, если ключевая последовательность выбирается как набор случайных чисел. Иногда, чтобы ключ легче было запомнить, используют слово или фразу, а затем заменяют буквы в ней их номерами в алфавите. Если ключ оказался короче сообщения, то его циклически повторяют.
Рассмотрим пример получения шифртекста с помощью таблицы Вижинера. Пусть выбрано ключевое слово АМБРОЗИЯ. Необходимо зашифровать сообщение ПРИЛЕТАЮ СЕДЬМОГО. Выпишем исходное сообщение в строку и запишем под ним ключевое слово с повторением. В третью строку выпишем шифртекст.
|
|
Сообщение П Р И Л Е Т А Ю С Е Д Ь М О Г О
Ключ А М Б Р О З И Я А М Б Р О З И Я
Шифртекст П Ъ Й Ы УЩИ Э С С Е К Ь Х Л Н
Шифры Вижинера с коротким периодическим ключом используются и в наши дни в системах шифрования, от которых не требуется высокая криптостойкость.
С развитием математики необходимость в таблицах шифрования отпала. Если заменить буквы на числа, то операции шифрования и дешифрования легко выражаются простыми математическими формулами. Так, в шифре Вижинера используются операции циклического, или модульного сложения (см. 3.7.3).
Математический анализ шифров
Алфавит криптосистемы
Как открытый текст, так и шифртекст образуются из букв, входящих в конечное множество символов, называемых алфавитом.
Источник информации генерирует сообщения (открытый текст) из некоторого конечного алфавита X: { х1,х2,...xm } с основанием алфавита m. Шифрованный текст или шифрограмма образуются в общем случае из алфавита Y:{ y1,y2,...,yn }, который может не совпадать с алфавитом X.
При выполнении криптографических преобразований удобно заменить буквы алфавита целыми числами. Замена букв традиционного алфавита числами позволяет математически четко сформулировать основные концепции и приемы криптографических преобразований и упростить выполнение необходимых алгебраических манипуляций. В то же время в качестве иллюстраций будем продолжать использовать алфавит естественного языка.
Итак, в криптографии используется алфавит, содержащий m букв естественного или технического языка в виде чисел. Он обозначается
Zm ={0,1,2.3,.... m -1}.
В качестве примеров алфавитов, используемых в современных ИС, можно привести следующие:
- алфавит Z 32 – 32 буквы русского алфавита;
- алфавит Z 26 – 26 букв английского алфавита;
- алфавит Z 256 – символы, входящие в стандартные коды ASCII и КОИ-8;
- бинарный алфавит – Z 2 = {0,1};
- восьмеричный алфавит или шестнадцатеричный алфавит;
Объединение n букв из алфавита Z называют n – граммой (слово естественного языка или блок символов после кодировки). Объединяя по n букв из алфавита Zm, получаем алфавит Zm , n , содержащий множество n – грамм из Zm. Например, английский алфавит Z 26 = {ABCDEFGH... WXYZ} объемом m =26 букв позволяет сгенерировать алфавит из 262 = 676 биграмм, алфавит из 263= 17576 триграмм.
Криптографическое преобразование Е представляет собой совокупность отображений
Е = {Е( n ): 1 <. n < ∞}, где Е( n ): Zm , n → Zm , n.
Преобразование Е( n ) определяет, как каждая n -грамма открытого текста х заменяется n -граммой шифртекста у, т.е.
у = Е( n ) (х), причем х,у Î Zm , n;
при этом обязательным является требование взаимной однозначности преобразования Е( n ) на множестве Zm , n.
Криптографическая система может трактоваться как множество криптографических преобразований Е={Е k: k Î К }, помеченных параметром k, называемым ключом. Множество значений ключа образует ключевое пространство К.