Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Рисунок 3 — Главное окно программы На главной форме программы располагаются: главное меню, поле ввода для ввода имени открываемого файла, кнопка «Открыть» для выбора открываемого файла через диалог открытия файлов, кнопки «Зашифровать» и «Расшифровать» для вызова процедуры шифрования (дешифрования) открытого файла, два поля TMemo для вывода исходного (открываемого) файла и файла назначения (файла… Читать ещё >

Разработка программы «Шифр Цезаря» (реферат, курсовая, диплом, контрольная)

Содержание Введение

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

1.1 Задание

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

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

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

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

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

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

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

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

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

2.4 Внедрение Заключение Глоссарий Список использованных источников Приложения

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Переменная

Тип

Описание

f_src

textfile

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

f_dest

textfile

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

ch

char

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

i

byte

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

find

boolean

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

new_file_name

string

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

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

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

1.5 Организация входных и выходных данных Таблица 2 — Константы, используемые в программе:

Переменная

Тип

Описание

s

string[66]

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 Текст программы Модуль main. pas:

unit main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls, Menus, About;

type

TForm1 = class (TForm)

Bt_open_file: TButton;

OpenDialog1: TOpenDialog;

Edit1: TEdit;

Bt_Encript: TButton;

Memo_src: TMemo;

Bt_Decrypt: TButton;

Memo_dest: TMemo;

StatusBar1: TStatusBar;

Label1: TLabel;

Label2: TLabel;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

procedure Bt_open_fileClick (Sender: TObject);

procedure Bt_EncriptClick (Sender: TObject);

procedure Bt_DecryptClick (Sender: TObject);

procedure N2Click (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N3Click (Sender: TObject);

procedure N8Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

// Процедура шифрования и расшифровки файлов

procedure en_de_crypt (e_d: char);

var

f_src, f_dest: textfile;

ch: char;

i: byte;

find: boolean;

new_file_name: string;

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

begin

if not fileexists (form1.Edit1.Text) then

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

else

begin

assignfile (f_src, form1. Edit1.Text);

if e_d = 'e' then new_file_name := 'Encrypted_' + ExtractFileName (form1.Edit1.Text);

if e_d = 'd' then new_file_name := 'Decrypted_' + ExtractFileName (form1.Edit1.Text);

assignfile (f_dest, new_file_name);

reset (f_src);

rewrite (f_dest);

while not EOF (f_src) do

begin

read (f_src, ch);

find := false;

i := pos (ch, s);

if i > 0 then

begin

if e_d = 'e' then

if (i+6) <= 66 then write (f_dest, s[i+6])

else write (f_dest, s[i-60]);

if e_d = 'd' then

if (i-6) >= 1 then write (f_dest, s[i-6])

else write (f_dest, s[i+60]);

end

else write (f_dest, ch);

end;

CloseFile (f_src);

CloseFile (f_dest);

form1.StatusBar1.Panels.Items[0]. Text := 'Файл сохранен под именем: ' + new_file_name;

form1.Memo_dest.Lines.LoadFromFile (new_file_name);

end;

end;

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

procedure TForm1. Bt_open_fileClick (Sender: TObject);

begin

if opendialog1. Execute and fileexists (opendialog1.FileName) then

begin

edit1.Text:=opendialog1.FileName;

form1.Memo_src.Lines.LoadFromFile (form1.Edit1.Text);

end;

end;

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

procedure TForm1. Bt_EncriptClick (Sender: TObject);

begin

en_de_crypt ('e');

end;

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

procedure TForm1. Bt_DecryptClick (Sender: TObject);

begin

en_de_crypt ('d');

end;

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

procedure TForm1. N2Click (Sender: TObject);

begin

form1.Bt_open_file.Click;

end;

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

procedure TForm1. N5Click (Sender: TObject);

begin

en_de_crypt ('e');

end;

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

procedure TForm1. N6Click (Sender: TObject);

begin

en_de_crypt ('d');

end;

// Выход из программы

procedure TForm1. N3Click (Sender: TObject);

begin

form1.Close;

end;

// Вызов окна «О программе»

procedure TForm1. N8Click (Sender: TObject);

begin

AboutBox.ShowModal;

end;

end.

Модуль about. pas

unit About;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TAboutBox = class (TForm)

Panel1: TPanel;

ProgramIcon: TImage;

ProductName: TLabel;

Version: TLabel;

Copyright: TLabel;

Comments: TLabel;

OKButton: TButton;

procedure OKButtonClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

AboutBox: TAboutBox;

implementation

{$R *.dfm}

procedure TAboutBox. OKButtonClick (Sender: TObject);

begin

AboutBox.Close;

end;

end.

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

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

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

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

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

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

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

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

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

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

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

Показать весь текст
Заполнить форму текущей работой