Написать программу «Шифр Цезаря»

Автор: Пользователь скрыл имя, 18 Ноября 2011 в 12:59, курсовая работа

Краткое описание

Программы, работающие на компьютере, можно разделить на три категории: Прикладные программы, непосредственно обеспечивающие выполнение необходимых пользователям работ: редактирование текстов, рисование, обработку информационных массивов и т.д. Основная цель данной курсовой работы – обучение. Студент учится формировать постановку задач, составлять алгоритмы их решения и формализовать эти алгоритмы в популярной среде программирования. В ходе написания программы студент осваивает язык C++ и особенности его трансляции в компиляторе Builder.

Оглавление

Основные данные о работе …………………………………………..……...…….1
Введение ……………………………………………………………..……...……...3
1. Разработка эскизного и технического проекта ………………………..………6
1.1 Анализ задачи ………………………………………………………………….6
1.2Описание алгоритма ……………………………………………………………7
2. Разработка рабочего проекта …………………………………………………...9
2.1 Выбор состава технических и программных средств ……………………….9
2.2 Описание программы ………………………………………………………….9
2.3 Текст программы ……………………………………………………………..10
Заключение ……………………………………………………………………….13
Глоссарий …………………………………………………………………………15
Список использованных источников …………………………………………....18
Приложения………..…………………

Файлы: 1 файл

Юренков.doc

— 189.50 Кб (Скачать)

     x:=3;           // значение ключа

     memo2.Lines.Clear;

      for i:=1 to length(st) do  // Алгоритм шифровки текста

     if (st[i]<>'')  then

     begin

      s:=chr((ord(st[i])+x));

     memo2.lines.Text:=memo2.lines.Text+s;

     end;

     memo1.Lines.Clear ;   // очистка текстового поля после окончания шифрования

     end;

     procedure TForm1.Button2Click(Sender: TObject);  // Дешифровка текста

     begin

     st:=memo2.lines.Text; // Присваивание переменной st значение  текстового поля

     memo1.Lines.Clear;

     for i:=1 to length(st) do // Алгоритм дешифровки текста

     if (st[i]<>'')  then

     begin

      s:=chr((ord(st[i])-x));

     memo1.lines.Text:=memo1.lines.Text+s;

     end;

     memo2.Lines.Clear ;   // очищение текстового поля после окончания дешифрования

      end;

     end.

     Заключение

 

     Целью данной работы было создание программы  с помощью среды разработки Delphi.

     В ходе работы реализованы следующие  задачи:

     - описан алгоритмы решения задачи

     - описана работа программы

     - реализована программу с помощью  Delphi 7.

     - описано руководство пользователя

     В дальнейшем программа может быть усовершенствована, например добавлено  использование памяти операций.

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

     Своё  название вид шифровки получил, благодаря римскому императору Гай Юлий Цезарь (Julius Caesar).Цезарь использовал шифровку для тайной переписки. Однако современный криптоанализ не рассматривает шифровку Цезаря как шифр приемлемой стойкости. Криптоаналитическая атака против системы одноалфавитной замены начинается с подсчета частот появления символов: определяется число появлений каждой буквы в шифртексте. Затем полученное распределение частот букв в шифр тексте сравнивается с распределением частот букв в алфавите исходных сообщений, например в английском. Буква с наивысшей частотой появления в шифр тексте заменяется на букву с наивысшей частотой появления в английском языке и т.д. Вероятность успешного вскрытия системы шифрования повышается с увеличением длины шифр текста. 

     Шифр  Цезаря подвержен частному анализу, так как является одно -алфавитным шифром подстановки, но это отнюдь не главная «слабость». Так, малое количество ключей - 33 для российского алфавита и 26 для английского – даёт возможность проведения атак. Открытый текст записывается для всех вероятных ключей, а один из вариантов и будет является раскрытым сообщением.

     Соотнося каждому символу порядковый номер, начиная с 9, шифровка и дешифровка выражается формулами:

     Если  соотнести каждому символу алфавита его порядковый номер (нумеруя с 0), то шифровка и дешифровку можно выразить формулами:

     Y=x + k (mod n) и X=y – k (mod n), где:

     X — символ открытого текста,

     Y — символ шифрованного текста,

     n — мощность алфавита,

     k — ключ.

     Отметим, что суперпозиция 2х шифровках на ключах K1 и K2 – просто шифровка на ключе K1+K2. В совокупности шифрующие преобразования шифра Цезаря образуют группу Zn.

     К примеру, оригинальный текст: «целый день он в гамаке дремлет с зонтиком в руке».

     Шифрованный текст: «щиоюмзирясрежгпгнизуипоихфксрхлнспеуцни»

     Используя ключ k = 3, буква Ц «сдвигается» на три буквы вперед и становится буквой «Щ»; буква Е, перемещённый на три буквы вперед, становится буквой «И», и так далее.

     В итоге по выполнению курсовой работы были изучены навыки составления алгоритма для поставленной задачи и воплощения этого алгоритма в текст программы, написанной на языке Delphi . А также было разработано программное средство, успешно решающее поставленную задачу, т.е. была написана программа, работающая в двух режимах, позволяющая шифровать и расшифровывать тексты «методом Цезаря».

     Возможно увеличить возможности данной программы путем добавления поддержки других языков, дешифровки текста при помощи оценивания редко и часто встречающихся сочетаний букв, а также возможности распечатки результатов работы программы. В результате выполнения курсовой работы были получены навыки составления алгоритма для поставленной задачи и воплощения этого алгоритма в текст программы, написанной на языке C++ в среде Builder. А также было разработано программное средство, успешно решающее поставленную задачу, т.е. была написана программа, работающая в двух режимах, позволяющая шифровать и расшифровывать тексты «методом Цезаря».

     Основных  методом, использованным при решении  задачи, был метод перебора, вследствие чего скорость работы программы при больших исходных данных может уменьшаться. 

     Глоссарий

№ п/п Понятие      Определение
1 стеганография      (латино-греческое  сочетание слов, означающих в  совокупности "тайнопись"
2 Криптография      Греческое слово и в переводе означает "тайнопись"
3 Алфавит      Окончательное множество используемых для кодирования информации знаков.
4 Текст      упорядоченный набор из элементов алфавита.
5 Шифрование      преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.
6 Дешифрование      Обратный  шифрованию процесс. На основе ключа  шифрованный текст преобразуется  в исходный.
7 Ключ      информация, необходимая для беспрепятственного шифрования и дешифрования текстов.
8 Криптостойкость      характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа(т.е. криптоанализу). Имеется несколько показателей криптостойкости, среди которых:

     -количество всех возможных ключей;

-среднее  время, необходимое для криптоанализа

9 криптоанализ      исследование возможности расшифровывания информации без знания ключей.
    10
     База данных
     совокупность  данных, числовых значений показателей, используемых при анализе и расчетах. При применении ЭВМ — файл (файлы) данных, для обращения к которому используют средства системы управления Б.Д
   11
     Диалоговая  программа
     программа, рассчитанная на удобное взаимодействие пользователя и ЭВМ
   12
     Кодирование
     перевод алгоритмической  структуры на язык программирования
    13
     Команды
     сообщения, посредством которых осуществляется управление ходом диалога
    14
     Меню
     способ проведения диалога, когда на экран выводится  информация в виде списка альтернатив, а пользователь выбирает нужный пункт.
    15
     Ошибка
     сообщение о  том, что работа программного комплекса  прервана, так как введенные пользователем  входные данные не могут быть обработанны
   16
     Процедура
     понятие, определяющее аппарат подпрограмм; часть программы предназначенная для решения определённой задачи или подзадачи
   17
     Справка
     сообщение в  виде справочной информации, что следует  делать дальше и почему это надо делать при затруднениях, возникающих  в процессе работы пользователя с  программным комплексом.
   18
     Тестирование
     действия  по контролю правильности функционирования программы
    19
     Форма
     окно приложения на этапе разработки
    20
     Файл проекта
     автоматически создаваемый файл, связывающий вместе все файлы приложения и содержащий код инициализации

     Список  использованных источников

 
1 Флеиов М. Е. Профаммирование в Delphi глазами хакера. - СПб.: БХВ-Петербург, 2003.
2 Бакнелл Джулиан  М. Фундаментальные алгоритмы и  структуры данных в Delphi: Пер. с англ. / Джулиан М. Бакнелл. - СПб: ООО "ДиаСофтЮП", 2003.
3 ШУМАКОВ Базы данных в среде Delphi 7
4 Парижский С. М. Delphi. Учимся на примерах/Под ред. Ю. А. Шпака - К.: "МК-Пресс", 2005.
5 Когаловский, М. Р. Энциклопедия технологий баз данных [Текст] / М. Р. Когаловский. – М. : Финансы  и статистика, 2005.
6 Кормен. Алгоритмы. Построения и анализ. - М. 2002
7 Кузин, А. В. Базы данных [Текст] / А. В. Кузин, С. В. Левонисова. – М. : Академия, 2005.
8 Дж. Макконнелл Основы современных алгоритмов. 2-е  дополненное издание. - М: Техносфера, 2004.
9 Мамаев, Е. В. Microsoft SQL Server 2000 [Текст] / Е. В. Мамаев. – СПб. : БХВ-Петербург, 2005.
     10 Марков, А. С. Базы данных: Введение в теорию и методологию [Текст] / А. С. Марков,  К. Ю. Лисовский. – М. : Финансы и статистика, 2006.
11 Н.Культин «Delphi в задачах и примерах» -СПб.:   Издательство«БХВ-  Петербург» 2003
      12 А.Я. Архангельский  Программирование в Delphi 7, -М.: Издательство «Бином» 2003      
    13 С.И. Бобровский Delphi 7^ Учебный курс, -СПб.: Издательство «Питер» 2004      
     14 А.Г.Федоров  «Delphi 3 для всех», 1998 BHV - Санкт - Петербург
     15 Н. Культин - Программирование в Turbo Pascal 7.0 и Delphi
     16      Е.Марков «Программирование в Delphi 4», -СПб, «БХВ-Петербург», 1999      
     17      М.Фленов «Программирование в Delphi глазами хакера» -СПб.: Издательство «БХВ-Петербург» 2004      
     18      С.И. Бобровский Delphi 7^ Учебный курс, -СПб.: Издательство «Питер» 2004      
     19      «Турбо  Паскаль 7.0.» Киев, 1996      
     20      Д.Осипов «Delphi. Профессиональное программирование»      

     Приложения

1

Информация о работе Написать программу «Шифр Цезаря»