Специальный выпуск - шифр Виженера. Часть первая.
CHe_Love_VekЭтот легендарный шифр нельзя обойти стороной. Его уникальность в том, что он полиалфавитный, т.е является совокупностью шифров простой замены ( разобран в цикле о симметричных шифрах ). Создание столь необычного алгоритма было вызвано утратой криптостойкости моноалфавитных шифров и сопровождалось кропотливой деятельностью многих учёных на протяжении нескольких веков ( о чём и будет вторая часть ).
Шифрование
Было создано немало вариаций шифра Виженера, но мы остановимся на самой простой - шифровании с помощью алфавитного квадрата :
Работает это так : нам необходимо зашифровать какой - либо текст, пусть им будет "ALASKA". Придумываем к нему ключевое слово, например "SEA". Сопоставляем их так, чтобы длина ключа соответствовала длине открытого текста. Если, как в этом случае, длины ключа не хватает, записываем его несколько раз:
ALASKA
SEASEA
Подготовительная часть закончилась. Теперь приступаем к шифрованию и обращаем внимание на верхнюю строку и левую колонку квадрата ( выделены цветом ). Чтобы получить шифротекст, находим первую букву открытого текста в верхнем столбце, первую букву ключа в левой колонке и смотрим на букву в их пересечении. Это и будет зашифрованный символ. В нашем случае, на пересечении букв "A" и "S" будет буква "S". Вторым зашифрованным символом, находящимся на пересечении "L" и "E", будет "P". И так далее. В результате получаем слово "SPAKOA".
Дешифрование
Дешифрование производится в обратном порядке. Необходимо, взяв в левом столбце букву ключа, найти в этой же строке соответствующую ему букву шифротекста. После этого, от найденной буквы шифротекста ведём взглядом до самой верхней строки. Находящаяся там буква и будет символом открытого текста.
Мы имеем слово "SPAKOA", которое нужно расшифровать. И знаем ключ - "SEA".
Сопоставляем :
SPAKOA
SEASEA
Берём первую букву ключа - "S". В этой строке находим первую букву шифротекста - "S", после чего проводим от неё вверх до последней строки и находим "A". Таким образом, с помощью нехитрых манипуляций, снова получаем слово "ALASKA".
============
============