Разработка программы 'Шифр Цезаря'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    179,99 Кб
  • Опубликовано:
    2012-07-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы 'Шифр Цезаря'

Содержание

Введение

. Разработка эскизного и технического проектов программы

.1 Задание

.2 Назначение и область применения

.3 Технические характеристики

.4 Описание алгоритма

.5 Организация входных и выходных данных

.6 Выбор состава технических и программных средств

. Разработка рабочего проекта

.1 Разработка программы

.2 Текст программы

.3 Тестирование программы

.4 Внедрение

Заключение

Глоссарий

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

Приложения

Введение

Криптография (от др.-греч. κρυπτός - скрытый и γράφω - пишу) - наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.

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

Криптография - одна из старейших наук. История криптографии насчитывает около 4 тысяч лет. В качестве основного критерия периодизации криптографии возможно использовать технологические характеристики используемых методов шифрования.

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

Второй период (хронологические рамки - с IX века на Ближнем Востоке (Ал-Кинди) и с XV века в Европе (Леон Баттиста Альберти) - до начала XX века) ознаменовался введением в обиход полиалфавитных шифров.

Третий период (с начала и до середины XX века) характеризуется внедрением электромеханических устройств в работу шифровальщиков. При этом продолжалось использование полиалфавитных шифров.

Четвертый период - с середины до 70-х годов XX века - период перехода к математической криптографии. В работе Шеннона появляются строгие математические определения количества информации, передачи данных, энтропии, функций шифрования. Обязательным этапом создания шифра считается изучение его уязвимости к различным известным атакам - линейному и дифференциальному криптоанализам. Однако, до 1975 года криптография оставалась «классической», или же, более корректно, криптографией с секретным ключом.

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

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

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

Для решения задачи использована среда разработки Delphi.

Основная часть

1. Глава основной части


Разработка эскизного и технического проектов программы

.1 Задание

Тема: Разработка приложения для Windows, представляющего собой программу шифрования и дешифрования текстовых файлов.

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

.2 Назначение и область применения

Необходимо разработать программу, которая будет зашифровывать и расшифровывать текстовые файлы. Область применения: досуг пользователя. Поскольку ставится задача разработать приложение для Windows, то использоваться программа может только на компьютерах под управлением ОС Windows.

1.3 Технические характеристики

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

.4 Описание алгоритма

В программе определена строковая константа, состоящая из заглавных и строчных букв русского алфавита. Для шифрования и дешифрования открытого файла используется вызов процедуры с параметром. От параметра зависит выполняемое над файлом действие.

В процедуре осуществляется последовательное чтение исходного файла по одному символу, затем поиск этого символа в строке алфавита. Если символ найден, то он заменяется на третий после него и записывается в файл назначения. Если не найден, то символ записывается в файл назначения как есть, без изменений.








Рисунок 1 - Обобщенная схема алгоритма

Входные данные: исходный текстовый файл на русском языке, открываемый пользователем.

Выходные данные: переименованный текстовый файл, сохраненный автоматически в папку исходного файла.

Таблица 1 - Переменные, используемые в программе:

Переменная

Тип

Описание

f_src

textfile

Файловая переменная для исходного файла

f_dest

textfile

Файловая переменная для файла назначения

ch

char

Переменная для считывания символа

i

byte

Переменная для цикла for

find

boolean

Переменная для результата поиска (найдено или нет)

new_file_name

string

Переменная для формирования имени файла назначения

шифр программа алгоритм внедрение

Рисунок 2 - Схема работы процедуры шифрования


Таблица 2 - Константы, используемые в программе:

Переменная

Тип

Описание

s

string[66]

Константа, содержащая буквы русского алфавита 'АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЫыЪъЭэЮюЯя'


.6 Выбор состава технических и программных средств

Для реализации поставленной задачи выбрана среда разработки Delphi, так как позволяет с помощью готовых объектов быстро создать интерфейс пользователя для работы в Windows.

Системные требования для Delphi 7:

Процессор Intel Pentium 233 МГц и выше.Операционная система Microsoft Windows XP, Windows 2000, Windows 98. Оперативная память 64 Мбайт (рекомендуется 128 Мбайт). Пространство на жестком диске 124-520 Мбайт. Монитор SVGA или выше.

Системные требования для программы, полученной в результате решения поставленной задачи:

Полученный в результате программный продукт должен работать на любом компьютере под управлением операционной системы Windows 98 и выше.

 


Глава 2. Основной части

 

Разработка рабочего проекта


.1 Разработка программы

Рисунок 3 - Главное окно программы

На главной форме программы располагаются: главное меню, поле ввода для ввода имени открываемого файла, кнопка «Открыть» для выбора открываемого файла через диалог открытия файлов, кнопки «Зашифровать» и «Расшифровать» для вызова процедуры шифрования (дешифрования) открытого файла, два поля TMemo для вывода исходного (открываемого) файла и файла назначения (файла полученного в результате работы процедуры шифрования). В главном меню продублированы все основные действия, вызываемые кнопками на форме, и добавлен пункт вызова окна «О программе». Так же на форме располагаются: стандартный диалог открытия файлов и компонент XP Manifest.

Рисунок 4 - Вторая форма проекта «О программе»

Вторая форма программы «About Box» скопирована со стандартных форм среды разработки. В ней расположена панель TPanel, на которой имеются элементы типа TLabel с текстом и TImage с рисунком логотипа программы. На форме так же имеется кнопка «OK», в событие «ButtonClick» которой добавлен обработчик закрытия окна «О программе». Данное окно показывается модально, то есть его необходимо закрыть для продолжения работы в главной форме программы.

Исполняемый файл программы называется Cesar.exe и для своей работы не требует никаких дополнительных файлов. Файлы проекта расположениы в приложении Б.

.2 Текст программы

Модуль main.pas:

unit main;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls, Menus, About;= class(TForm)_open_file: TButton;: TOpenDialog;: TEdit;_Encript: TButton;_src: TMemo;_Decrypt: TButton;_dest: TMemo;: TStatusBar;: TLabel;: TLabel;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;Bt_open_fileClick(Sender: TObject);Bt_EncriptClick(Sender: TObject);Bt_DecryptClick(Sender: TObject);N2Click(Sender: TObject);N5Click(Sender: TObject);N6Click(Sender: TObject);N3Click(Sender: TObject);N8Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;

{$R *.dfm}

// Процедура шифрования и расшифровки файловen_de_crypt(e_d : char);_src, f_dest : textfile;: char;: byte;: boolean;_file_name : string;s : string[66] = 'АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЫыЪъЭэЮюЯя';not fileexists(form1.Edit1.Text) then

ShowMessage('Файл не выбран или не существует')

else(f_src, form1.Edit1.Text);e_d = 'e' then new_file_name := 'Encrypted_' + ExtractFileName(form1.Edit1.Text);e_d = 'd' then new_file_name := 'Decrypted_' + ExtractFileName(form1.Edit1.Text);(f_dest, new_file_name);(f_src);(f_dest);not EOF(f_src) do(f_src, ch);:= false;:= pos(ch, s);i > 0 thene_d = 'e' then(i+6) <= 66 then write(f_dest, s[i+6])write(f_dest, s[i-60]);e_d = 'd' then(i-6) >= 1 then write(f_dest, s[i-6])write(f_dest, s[i+60]);write(f_dest, ch);;(f_src);(f_dest);.StatusBar1.Panels.Items[0].Text := 'Файл сохранен под именем: ' + new_file_name;.Memo_dest.Lines.LoadFromFile(new_file_name);

end;;

// Вызов диалога открытия файлов по кнопке

procedure TForm1.Bt_open_fileClick(Sender: TObject);opendialog1.Execute and fileexists(opendialog1.FileName) then.Text:=opendialog1.FileName;.Memo_src.Lines.LoadFromFile(form1.Edit1.Text);

end;;

// Вызов процедуры шифрования нажатием кнопки "Зашифровать"

procedure TForm1.Bt_EncriptClick(Sender: TObject);_de_crypt('e');

end;

// Вызов процедуры дешифрования нажатием кнопки "Расшифровать"

procedure TForm1.Bt_DecryptClick(Sender: TObject);_de_crypt('d');

end;

// Вызов диалога открытия файла из главного меню

procedure TForm1.N2Click(Sender: TObject);.Bt_open_file.Click;

end;

// Вызов процедуры шифрования из главного меню

procedure TForm1.N5Click(Sender: TObject);_de_crypt('e');

end;

// Вызов процедуры дешифрования из главного меню

procedure TForm1.N6Click(Sender: TObject);_de_crypt('d');;

// Выход из программыTForm1.N3Click(Sender: TObject);.Close;;

// Вызов окна "О программе"TForm1.N8Click(Sender: TObject);.ShowModal;;.

Модуль about.pasAbout;Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,, ExtCtrls;= class(TForm): TPanel;: TImage;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;OKButtonClick(Sender: TObject);

{ Private declarations }

{ Public declarations };: TAboutBox;

{$R *.dfm}TAboutBox.OKButtonClick(Sender: TObject);.Close;;.

2.3 Тестирование программы

Программа тестировалась в ОС Windows XP и Windows 7(Seven). При тестировании программы были использованы текстовые файлы с различными наборами символов.

.4 Внедрение

Для запуска программы нужно запустить файл Cesar.exe. Откроется окно пользовательского интерфейса (рис. 5). Все действия можно выполнить как из главного меню, так и кнопками на главной форме. При открытии файла на форму в поле memo выводится текст, содержащийся в файле (Рис. 6). При шифровании или дешифровании в строке статуса выводится имя сохраненного файла назначения, преобразованный текст файла выводится во второе поле memo (Рис. 7).

Рисунок 5 - Главное окно программы

Рисунок 6 - Открытие файла с исходным текстом

Рисунок 7 - Шифрование текста

Заключение

В Российской Федерации коммерческая деятельность, связанная с использованием криптографических средств, подлежит обязательному лицензированию. С 22 января 2008 года действует Постановление Правительства РФ от 29 декабря 2007 N 957 «Об утверждении положений о лицензировании отдельных видов деятельности, связанных с шифровальными (криптографическими) средствами», которым приняты Положения о лицензировании деятельности по:

* распространению шифровальных (криптографических) средств;

* техническому обслуживанию шифровальных (криптографических) средств;

* предоставлению услуг в области шифрования информации;

Следует отметить, что приложения к данному Постановлению содержат жёсткие требования к лицу-соискателю лицензии, включая его образование, квалификацию, стаж, требования к помещению, охране, информационной и эксплуатационной безопасности при разработке и реализации средств. К примеру, требуется «наличие в штате у соискателя следующего квалифицированного персонала: руководитель и (или) лицо, уполномоченное руководить работами по лицензируемой деятельности, имеющие высшее профессиональное образование и (или) профессиональную подготовку в области информационной безопасности, а также стаж работы в этой области не менее 5 лет; инженерно-технические работники, имеющие высшее профессиональное образование или прошедшие переподготовку в области информационной безопасности с получением специализации, необходимой для работы с шифровальными (криптографическими) средствами».

В настоящее время действует также Приказ ФСБ России от 9 февраля 2005 г. N 66 «Об утверждении положения о разработке, производстве, реализации и эксплуатации шифровальных (криптографических) средств защиты информации (положение пкз-2005)», который определяет порядок разработки и эксплуатации криптографических средств.

В частности, согласно приказу, средства криптографии реализуются «юридическим лицом или индивидуальным предпринимателем, имеющим право на осуществление данного вида деятельности, связанного с шифровальными (криптографическими) средствами вместе с правилами пользования ими, согласованными с ФСБ России».

Ранее был издан Указ Президента РФ от 3 апреля 1995 N 334 «О мерах по соблюдению законности в области разработки, производства, реализации и эксплуатации шифровальных средств, а также предоставления услуг в области шифрования информации», постановивший «Запретить использование государственными организациями и предприятиями в информационно-телекоммуникационных системах шифровальных средств, включая криптографические средства обеспечения подлинности информации (электронная подпись), и защищенных технических средств хранения, обработки и передачи информации, не имеющих сертификата Федерального агентства правительственной связи и информации при Президенте Российской Федерации, а также размещение государственных заказов на предприятиях, в организациях, использующих указанные технические и шифровальные средства, не имеющие сертификата Федерального агентства правительственной связи и информации при Президенте Российской Федерации».

Относительно юридических лиц и предпринимателей, желающих разрабатывать либо реализовывать криптосистемы, существуют п. 5―11 ст. 17 Федерального Закона от 08.08.2001 N 128-ФЗ «О лицензировании отдельных видов деятельности».

Глоссарий


№ п/п

Понятие

Определение

1

Открытый (исходный) текст

Данные (не обязательно текстовые), передаваемые без использования криптографии.

2

Шифротекст, шифрованный (закрытый) текст

Данные, полученные после применения криптосистемы (обычно - с некоторым указанным ключом).

3

Ключ

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

4

Шифр, криптосистема

Семейство обратимых преобразований открытого текста в шифрованный.

5

Асимметричный шифр

Шифр, являющийся асимметричной криптографической системой.

6

Шифрование

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

7

Расшифровывание

Процесс нормального применения криптографического преобразования шифрованного текста в открытый.

8

Криптоанализ

Наука, изучающая математические методы нарушения конфиденциальности и целостности информации.

9

Криптоаналитик

Человек, создающий и применяющий методы криптоанализа.

10

Дешифрование (дешифровка)

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

11

Криптографическая стойкость

Способность криптографического алгоритма противостоять криптоанализу.

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

1           Архангельский, А.Я. Delphi 2006. Справочное пособие [Текст] / А.Я. Архангельский -М.: -Бином-Пресс, 2006. -ISBN 5-9518-0138-9. -1152 c.

             Галисеев, Г.В. Компоненты в Delphi 7. Профессиональная работа [Текст] / Г.В. Галисеев -М.: Диалетика, 2004. -ISBN 5-8459-0555-9. -624 c.

             Григорьев, А.Б. О чем не пишут в книгах по Delphi. [Текст] / А.Б Григорьев - СПб.: БХВ-Петербург, 2008. -ISBN 978-5-9775-0190-3. -576 с.

             Кэнту, М. Delphi 6 для профессионалов [Текст] / Марко Кэнту -СПб.: -Питер, 2002. -ISBN 5-318-00403-2. -1088 с.

             Марков, Е. Никифоров, В. Delphi 2005 [Текст] / Евгений Марков, Владимир Никифоров -СПб.: -БХВ-Петербург, 2005. -896 с. -ISBN 5-94157-701-Х.

             Молочков, В.П. От Delphi 7 к Delphi 2006 для начинающих [Текст] / В.П. Молочков -М.: Диалог-Мифи, 2006. -304 с -ISBN 5-86404-213-7..

             Сухарев, М.В. Основы Delphi [Текст] / М.В. Сухарев -М.: -Наука и техника, 2004. . -600 с.-ISBN 5-94387-129-2

             Фленов, М. Библия Delphi [Текст] / М. Фленов -СПб.: -Питер, 2007. -800 с. - ISBN 978-5-9775-01163

             Фленов, М. Delphi 2005. Секркты программирования [Текст] / М. Фленов -СПб.: -Питер, 2005. -272 с -ISBN 5-469-01164-Х..

             Шупрута, В.В. Delphi 2005 [Текст] / В.В. Шупрута -М.: -НТ Пресс, 2005, -352 с. -ISBN 5-477-00118-6.

Похожие работы на - Разработка программы 'Шифр Цезаря'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!