Содержание
Оглавление
Введение3
1 Разработка эскизного и технического проектов программы4
1.1Задание4
1.2Назначение и область применения4
1.3Технические характеристики4
1.3.1 Постановка задачи4
1.3.2 Описание алгоритма5
1.3.3 Организация входных и выходных данных6
1.3.4 Выбор состава технических и программных средств6
2Разработка рабочего проекта7
2.1 Разработка программы7
2.2 Спецификация программы17
2.3 Текст программы18
2.4 Описание программы25
2.4.1 Общие сведения25
2.4.2 Функциональное назначение25
2.4.3 Используемые технические средства26
2.4.4 Вызов и загрузка26
2.4.5 Входные и выходные данные26
2.5 Тестирование программы26
3ВНЕДРЕНИЕ28
4ЗАКЛЮЧЕНИЕ29
Список использованных источников31
Выдержка из текста работы
Криптография (от др.-греч. ксхрфьт — скрытый и гсЬцщ — пишу) — наука о методах обеспечения конфиденциальности (невозможности прочтения информации посторонним) и аутентичности (целостности и подлинности авторства, а также невозможности отказа от авторства) информации.
Изначально криптография изучала методы шифрования информации — обратимого преобразования открытого (исходного) текста на основе секретного алгоритма и/или ключа в шифрованный текст (шифротекст). Традиционная криптография образует раздел симметричных криптосистем, в которых зашифрование и расшифрование проводится с использованием одного и того же секретного ключа. Помимо этого раздела современная криптография включает в себя асимметричные криптосистемы, системы электронной цифровой подписи (ЭЦП), хеш-функции, управление ключами, получение скрытой информации, квантовую криптографию.
Криптография — одна из старейших наук. История криптографии насчитывает около 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./
Рисунок 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;
Form1: TForm1;
implementation
{$R *.dfm}
// Процедура шифрования и расшифровки файлов
procedure en_de_crypt(e_d : char);
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]);
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;
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.
Размещено на