Текстовый редактор "Блокнот" с функцией шифрования - дешифрования классическими криптографическими методами
33 Министерство образования и науки Республики Казахстан Карагандинский государственный технический университет Кафедра КУРСОВАЯ РАБОТА на тему: Текстовый редактор "Блокнот" с функцией шифрования - дешифрования классическими криптографическими методами Выполнил: Проверил: Караганда 2009 г. Содержание - Введение
- Теоретическая часть
- Шифры простой замены
- Гаммирование
- Шифры перестановки
- Двойная перестановка столбцов и строк
- Метод шифрования с использованием таблицы Виженера
- Практическая часть
- Вывод
- Листинг программы
ВведениеЦель работы:Изучение принципа программной реализации классических криптографических методов:метод Цезаря;метод Гронсфельда;метод гаммирования;метод двойных перестановок;метод замены с использованием таблицы Виженера.Задание:1. Необходимо создать текстовый редактор "Блокнот", который содержал следующие объекты:окно ввода исходного текста;окно вывода зашифрованного текста;кнопки "Шифровать", "Дешифровать", "Выбор метода шифрования";строка меню, содержащая меню для работы с файлами, меню для работы с текстом (вырезать, вставить, отменить, повторить, поиск и т.д.), меню для выбора методов шифрования, меню "о программе" и "о разработчике".Составить вербальный алгоритм для каждого метода шифрования.Составить программу для шифрования заданными методами.Составить программу для дешифрования заданными методами.Оценить результативность реализованных методов.Теоретическая частьШифры простой заменыСистема шифрования Цезаря - частный случай шифра простой замены. Метод основан на замене каждой буквы сообщения на другую букву того же алфавита, путем смещения от исходной буквы на K букв.Шифры сложной заменыШифр Гронсфельда состоит в модификации шифра Цезаря числовым ключом. Для этого под буквами сообщения записывают цифры числового ключа. Если ключ короче сообщения, то его запись циклически повторяют. Шифротекст получают примерно также как в шифре Цезаря, но отсчитывают не третью букву по алфавиту (как в шифре Цезаря), а ту, которая смещена по алфавиту на соответствующую цифру ключа.Пусть в качестве ключа используется группа из трех цифр - 314, тогдаСообщение СОВЕРШЕННО СЕКРЕТНОКлюч 3143143143143143143Шифровка ФПИСЬИОССАХИЛФИУССВ шифрах многоалфавитной замены для шифрования каждого символа исходного сообщения применяется свой шифр простой замены (свой алфавит). |
| АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_ | | А | АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_ | | Б | _АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ | | В | Я_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮ | | Г | ЮЯ_АБВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭ | | . | ………… | | Я | ВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_АБ | | _ | БВГДЕЁЖЗИКЛМНОПРСТУФХЧШЩЪЫЬЭЮЯ_А | | |
Каждая строка в этой таблице соответствует одному шифру замены аналогично шифру Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифротекст получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Например, используя ключ АГАВА, из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем следующую шифровку: |
Сообщение | ПРИЕЗЖАЮ_ШЕСТОГО | | Ключ | АГАВААГАВААГАВАА | | Шифровка | ПНИГЗЖЮЮЮАЕОТМГО | | |
В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по модулю 256. ГаммированиеПроцесс шифрования заключается в генерации гаммы шифра и наложении этой гаммы на исходный открытый текст. Перед шифрованием открытые данные разбиваются на блоки Т (0) i одинаковой длины (по 64 бита). Гамма шифра вырабатывается в виде последовательности блоков Г (ш) i аналогичной длины (Т (ш) i=Г (ш) i+Т (0) i, где + - побитовое сложение, i =1-m).Процесс дешифрования сводится к повторной генерации шифра текста и наложение этой гаммы на зашифрованные данные T (0) i=Г (ш) i+Т (ш) i.Шифры перестановкиАлгоритмы двойных перестановок. Сначала в таблицу записывается текст сообщения, а потом поочередно переставляются столбцы, а затем строки. При расшифровке порядок перестановок был обратный. Пример данного метода шифрования показан в следующих таблицах:|
| 2 | 4 | 1 | 3 | | | 1 | 2 | 3 | 4 | | | 1 | 2 | 3 | 4 | | 4 | П | Р | И | Е | | 4 | И | П | Е | Р | | 1 | А | З | Ю | Ж | | 1 | З | Ж | А | Ю | | 1 | А | 3 | Ю | Ж | | 2 | Е | _ | С | Ш | | 2 | _ | Ш | Е | С | | 2 | Е. | _ | С | Ш | | 3 | Г | Т | О | О | | 3 | Т | О | Г | О | | 3 | Г | Т | О | О | | 4 | И | П | Е | Р | | | Двойная перестановка столбцов и строкВ результате перестановки получена шифровка АЗЮЖЕ_СШГТООИПЕР. Ключом к шифру служат номера столбцов 2413 и номера строк 4123 исходной таблицы.Число вариантов двойной перестановки достаточно быстро возрастает с увеличением размера таблицы: для таблицы 3 х 3 их 36, для 4 х 4 их 576, а для 5*5 их 14400.Метод шифрования с использованием таблицы ВиженераЭтот шифр можно описать таблицей шифрования, называемой таблицей Виженера, по имени Блеза Виженера, дипломата XVI века, который развивал и совершенствовал криптографические системы:|
| АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ | | А | АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ | | Б | _АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ | | В | Я_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮ | | Г | ЮЯ_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭ | | | ... ... | | Я | ВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_АБ | | _ | БВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_А | | |
Каждая строка в этой таблице соответствует одному шифру замены вроде шифра Юлия Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифровку получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Этот очень распространенный вид шифра сохранился до наших дней. Например, используя ключ АГАВА, из сообщения ПРИЕЗЖАЮ ШЕСТОГО получаем следующую шифровку: |
сообщение: | ПРИЕЗЖАЮ ШЕСТОГО | | ключ: | АГАВААГАВААГАВАА | | шифровка: | ПНИГЗЖЮЮЮАЕОТМГО | | |
В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять почаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Практическая частьВнешний вид текстового редактора "Блокнот" с функцией шифрования-дешифрования классическими криптографическими методами представлен на рисунке 1.Рисунок 1 - Главная форма текстового редактораВ текстовом редакторе имеются меню "Файл" (рисунок 2), "Правка" (рисунок 3), "Метод" (рисунок 4), "Справка" (рисунок 5).Рисунок 2 - Меню "Файл" текстового редактора.Рисунок 3 - Меню "Правка" текстового редактораРисунок 4 - Меню "Метод" текстового редактораРисунок 5 - Меню "Справка" текстового редактораПользователь также может выбрать метод шифрования при нажатии кнопки "Метод шифрования", при этом появится окно "Метод шифрования", показанный на рисунке 6.Рисунок 6 - Окно "Метод шифрования" текстового редактораВыводВ результате выполнения данной курсовой работы, я ознакомилась с классическими методами шифрования. А также изучила принцип программной реализации классических криптографических методов: метода Цезаря; метода Гронсфельда; метода гаммирования; метода двойных перестановок; метода замены с использованием таблицы Виженера. Я смогла, применяя свои знания в области программирования, реализовать их программно.Листинг программыprocedure TForm1. N23Click (Sender: TObject);beginform2. SHOWMODAL;end;procedure TForm1. N24Click (Sender: TObject);beginForm3. SHOWMODAL;end;procedure TForm1. N5Click (Sender: TObject);var i: integer;beginfor i: =0 to m2. Lines. Count-1 dom2. Lines [i]: ='';for i: =0 to m1. Lines. Count-1 dom1. Lines [i]: =''; // очистка memo1m1. SetFocus;end;procedure TForm1. N6Click (Sender: TObject);vari: integer;beginOpenDialog1. Filter: = 'Текстовые файлы| *. txt';if OpenDialog1. Execute thenbeginEdFile: =OpenDialog1. FileName; {в переменную присваиваемимя и полный путь к файлу}m1. Lines. LoadFromFile (EdFile);end;end;procedure TForm1. N7Click (Sender: TObject);beginsaveDialog1. Filter: = 'Текстовые файлы| *. txt';if saveDialog1. Execute thenbeginEdFile: =SaveDialog1. FileName; // сохранение файлаm2. Lines. SaveToFile (EdFile);end;end;procedure TForm1. N8Click (Sender: TObject);beginif saveDialog1. Execute thenbeginEdFile: =SaveDialog1. FileName; // сохранение файлаm2. Lines. SaveToFile (EdFile);
Страницы: 1, 2
|