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

Разработка эскизного и технического проектов программы "Шифр Цезаря": назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка, тест и внедрение программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 15.07.2012
Размер файла 563,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Содержание

Введение

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

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

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 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 Разработка программы

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 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

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

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

2

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

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

3

Ключ

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

4

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

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

5

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

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

6

Шифрование

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

7

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

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

8

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

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

9

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

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

10

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

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

11

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

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

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

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-00403-2. -1088 с.

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

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

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

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

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

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

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [159,8 K], добавлен 26.01.2010

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

    курсовая работа [700,6 K], добавлен 26.01.2010

  • Разработка эскизного и технического проектов программы, ее назначение и область применения, технические характеристики. Организация входных и выходных данных, выбор состава технических и программных средств. Текст программы, ее описание и тестирование.

    курсовая работа [1,3 M], добавлен 15.11.2009

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

    курсовая работа [61,9 K], добавлен 12.05.2015

  • Разработка эскизного и технического проектов программы, моделирующей игру "Кости". Постановка задачи, описание алгоритма; написание программы, организация входных и выходных данных; выбор программных средств; спецификация, текст, условия выполнения.

    курсовая работа [93,8 K], добавлен 11.02.2012

  • Разработка эскизного и технического проектов компьютерной игры "Скачки". Назначение и область применения программы. Выбор состава технических и программных средств. Составление текста программы, ее спецификация, тестирование и условия выполнения.

    курсовая работа [681,4 K], добавлен 18.10.2014

  • Разработка программы "Шифр Цезаря", позволяющая зашифровывать тексты методом Юлия Цезаря и дешифровать тексты, закодированные данным способом. Имеет возможность автоматического нахождения или выбора ключа и самостоятельного ввода ключа пользователем.

    курсовая работа [710,9 K], добавлен 23.12.2010

  • Разработка эскизного и технического проектов программы, приложения "Телефонный справочник". Организация входных и выходных данных. Выбор состава технических средств. Интегрированная среда разработки Delphi 7. Разработка рабочего проекта, внедрение.

    курсовая работа [427,4 K], добавлен 21.07.2012

  • Разработка Windows-приложения, представляющего собой компьютерную игру "Кости". Организация входных и выходных данных. Минимальные требования. Выбор состава технических и программных средств. Спецификация программы, ее описание и внедрение, тестирование.

    курсовая работа [475,8 K], добавлен 18.07.2012

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

    курсовая работа [975,5 K], добавлен 11.06.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.