Реализация алгоритма книжного шифра

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

лнение открытого текста хаотическим набором знаков и т.д. Для реализации своего способа шифрования Шиллинг предложил механическое устройство - наборно-разборную таблицу, наклеенную на коленкор. Срок действия шифра был определен в 6 лет (позднее снижен до 3 лет). С современных позиций этот шифр нельзя признать стойким.

В XIX веке в связи с развитием внешних и внутренних связей России существенно увеличился объем шифрованной переписки. Это повлекло за собой необходимость увеличения числа вводимых в действие шифров и кодов. Поэтому во второй половине XIX века криптографическая служба России была вновь реорганизована. Она была создана еще в двух ведомствах (кроме МИД) - военном и внутренних дел (в департаменте полиции). Сфера использования криптографии существенно расширилась. Стали прибегать к шифрованию переписки жандармерия и гражданские ведомства (Министерство финансов и др.). Разрабатывались специальные агентурные шифры. Шифровались и несекретные документы (на так называемых ключах "специального назначения") с целью недопущения утечки информации к "третьим лицам" (журналистам и пр.). Особые шифры разрабатывались для разведчиков и агентов.

Появилось разделение шифров по степени секретности защищаемой информации. Соответственно менялись и требования к ним. Шифры стали делиться и по языковому принципу: русские, французские, английские, немецкие и т.д. Таким образом, разработка шифров опиралась на язык, на котором велась переписка.

Потребность в шифрах постоянно возрастала. Достаточно напомнить, что только количество посольств и консульств за рубежом приближалось к 150.

 

2.2 Алгоритм реализации

 

Широко применялись и книжные шифры, обеспечивающие достаточную стойкость, но обладающие существенным недостатком: корреспондентам сети необходимо всегда иметь при себе книгу-ключ. Это нередко представляло неудобство, и, кроме того, при "провале" сети связи противник мог определить ключевую книгу (по наличию ее у всех корреспондентов). Поэтому часто вместо книги использовались легко запоминаемые слова или фразы, по которым воспроизводилась гипотетическая страница книги. Приведем примеры.

В "шифре по слову" ключом является заранее оговоренное слово, словосочетание или фраза. По нему строится таблица замены. Пусть, например, этим словом является слово "ПРЕКРАСНАЯ". Строится таблица такого вида (применительно к современному редуцированному русскому алфавиту): слово-лозунг выписывается по вертикали. Эти вертикали обозначаются числами от 1 до 0 (в слове 10 букв). Каждая буква построчно разворачивается в последовательность букв русского алфавита (циклически). В результате получается прямоугольник 10?10, который и является гипотетической страницей книги-ключа:

 

 

12345678901ПРСТУФХЦЧШ2РСТУФХЦШЬЭ3ЕЖЗИКЛМНОП4КЛМНОПРСТУ5РСТУФХЦЧШЬ6АБВГДЕЖЗИК7СТУФХЦШЬЭЮ8НОПРСТУФХЦ9АБВГДЕЖЗИК0ЯАБВГДЕЖЗИ

В соответствии с этим квадратом производилась замена букв открытого текста на их координаты (первая цифра - номер строки, вторая - номер столбца). Например, буква П получала обозначения: 11, 30, или 46 и т.д. Таким образом, слово "агент" может иметь разные шифробозначения : "61, 94, 07, 44, 53" или "02, 64, 66, 38, 49" и т.д. Этот шифр обладает уже неплохой криптографической стойкостью.

Дальнейшее усложнение шифра многозначной замены связано с введением "пустышек" - фиктивных знаков в шифрованный текст. Приведем пример. Пусть действует ранее описанный шифр по слову. Заранее оговорено, что столбцы и строки с номерами 2 и 9 являются "пустыми", то есть вычеркиваются. Таким образом, появляется возможность вставлять в шифрованный текст "пустые" комбинации, содержащие указанные цифры. 27, 95, 92, 29 и т.д.

Следующее усложнение заключается в одновременном использовании нескольких квадратов, полученных по разным ключам-лозунгам. При шифровании квадраты таблицы используются циклически один за другим. Иногда переход к следующему квадрату отмечался определенными комбинациями знаков, например, трехкратным повторением одной и той же буквы в открытом тексте. Шифр стал более стойким, но менее удобным в применении.

В стихотворном шифре ключом является заранее оговоренное стихотворение, которое записывается в прямоугольник согласованного размера, например, 10?20. Этот прямоугольник является ключевой страницей книжного шифра.

 

 

3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ

 

Данная программа содержит несколько реализаций, это Подключаемая DLL библиотека, реализующая само шифрование, Программа с Графическим интерфейсом ее использующая, и также консольная реализация программы без использования ресурсов библиотеки.

 

3.1 Описание структуры программы

 

.1.1 Библиотека DLL

В динамически подключаемой библиотеке (файл bookc.dll) реализованы классы crypt, key, и keymanager.

Класс crypt реализует сам алгоритм шифрования.

Кеу - в этом классе описан ключ для реализации его в классе keymanager- класс для управлиния ключами от разных корреспондентов по определенным правилам. В библиотеке экспортирована функция Process(char* crypt_file,char* encrypt_file,char mode_value,char* key_value), которая служит для шифрования в формате С, для возможности использования библиотеки с разными языками программирования.

 

3.1.2 Графическая оболочка

В графической оболочке (файл book.exe) реализован интерфейс пользователя с использованием библиотек виджетов GTK+. GTK+ был выбран потому, что эти библиотеки являются популярными, крос