Книжный шифр
Шифр Виженера
Состоит из нескольких (точнее для латинского алфавита – 26) шифров Цезаря с различными значениями сдвига. Для шифрования может использоваться tabula recta или квадрат Виженера.
Выбирается ключевое слово и исходный текст. Ключевое слово записывается циклически, пока не заполнит всю длину исходного текста. Далее по таблице буквы ключа и исходного текста пересекаются в таблице и образуют зашифрованный текст.
Пример:
Зашифруем фразу mindgames.
Ключевое слово let.
Записываем ключевое слово циклически, пока его длина не будет соответствовать длине исходного текста.
Letletlet.
Символы шифрованного текста будут находится на пересечении столбцов mindgames и строк letletlet.
То есть, первый символ получится таким образом: берем столбец M и строку L, на их пересечении буква X. Значит первой буквой в нашем шифре будет X. И так далее до конца текста.
В результате зашифрованный текст у нас получится такой: xmgoktxil.
В этом шифре элементы исходного текста заменяются номерами страниц, строк или столбцов в какой-либо книге, журнале, может быть просто в тексте (тогда может использоваться указатель на номер слова в строке, или даже на определенные буквы). То есть существует какой-то текст-ключ.
Для верной реализации и у отправителя, и у получателя, должны содержаться идентичные тексты-ключи.
Пример:
Возьмем стихотворение А.С.Пушкина «К Чаадаеву»
Любви, надежды, тихой славы
Недолго нежил нас обман,
Исчезли юные забавы,
Как сон, как утренний туман;
Но в нас горит еще желанье;
Под гнетом власти роковой
Нетерпеливою душой
Отчизны внемлем призыванье.
Мы ждем с томленьем упованья
Минуты вольности святой,
Как ждет любовник молодой
Минуты верного свиданья.
Пока свободою горим,
Пока сердца для чести живы,
Мой друг, отчизне посвятим
Души прекрасные порывы!
Товарищ, верь: взойдет она,
Звезда пленительного счастья,
Россия вспрянет ото сна,
И на обломках самовластья
Напишут наши имена!
Как я уже говорил, можно сделать указатель либо на отдельную букву, либо на слово.
Сделаем указатели на буквы. Зашифруем слово «книга».
Зашифрованный текст: 4/1, 1/6, 1/5, 2/6, 1/7.
Числитель дроби – номер строки (начиная отсчет сверху), знаменатель – номер буквы в строке (слева направо).