Разработка программы «Шифр Цезаря»
Рисунок 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.