Автор работы: Пользователь скрыл имя, 20 Ноября 2011 в 15:04, курсовая работа
Историю криптографии можно считать равной по возрасту истории существования письменности, потому что именно с появлением письменности возникла потребность придумывать различные способы для хранения информации в виде, доступном только для определённого круга лиц. Люди, от которых информация утаивалась, искали всяческие способы расшифровать закодированные сообщения.
1.Введение ..……………………....…………………………………………..2
2.История метода..………..…….…………………….....................................3 3.Актуальность и Проблематика программы.. ………………….……..…..4
4.Математическая модель.………………….………………………………..5
5.Блок схема алгоритма работы программы.……………………………….6
6.Описание Интерфейса……………………………………………………..10
7.Описание работы программы……………………………………………..13
8.Вывод……………………………………………………………………….18
9.Список литературы…………………….……………
Для этой кнопки выставлен выделяющийся стиль Italic Bold, что подчёркивает её важность.
9- Объект «TBitBtn», кнопка при нажатии на которую, будет происходить выход из приложения. Для этой кнопки выставлен выделяющийся красный цвет и стиль Bold, что подчёркивает её важность а сам тип TBitBtn учитывает остдельное оформление кнопки, для этой выставлено оформление bkClose, что подчёркивает её важность.
10- Объект «MainMenu», объект главного меню, в котором выставлена кнопка «Помощь», при нажатии на которую на экран будет выводиться отдельная форма со справкой т.е указанием как пользоваться приложением, на форме справки в MainMenu1 выставлена кнопка «Выход», закрывающая форму.
11- Объект «OpenDialog», невидимый пользователю компонент, запускающий открытие используемого файла, запускающийся от процедуры нажатия кнопки.
12- Объект «SaveDialog», невидимый пользователю компонент, запускающий сохранение результирующего файла, запускающийся от процедуры нажатия кнопки.
13- Объект «TMemo»,
текстовое поле, предназначенное для вывода
справочной информации на форме «Справка».
В основном
всё действие программы
Это позволяет не использовать глобальные переменные, наличие которых можешь замедлить ход работы программы. Вторая форма же предназначена только как справочная.
Принцип работы программы такой:
7. Описание работы программы
Чтобы проверить работает программа или нет, произведём шифрование текстового файла, содержащего в себе произвольный текст.
- При запуске программы на экране появится главная форма(рис.6).
Рис.6 Форма Метода Гронсфельда.
- Для начала выберем исходный файл нажатием на кнопку открыть(рис.7).
Рис.7 Кнопка открытия исходного файла.
- В появившемся окне выберем файл который будем шифровать (Рис.8)
Рис. 8 Открытие Файла
- На главной форме появится путь исходного файла (Рис. 9)
Рис. 9 Форма с выбранным исходным файлом
- Нажмём на кнопку сохранить, чтобы выбрать результирующий файл (рис.10).
Рис.10 Кнопка
выбора результирующего файла.
- Выберем директорию и введём имя результирующего файла, расширение предлагается ввести пользователю (но для дешифровки ОБЯЗАТЕЛЬНО знать расширение исходного файла, что повышает сложность взлома информации).
- После выбора результирующего файла мы увидим его путь, т.е. куда он будет сохранён. (Рис. 11)
Рис. 11 Форма с выбранным
результирующим файлом
- Далее пишем ключ на основе которого будет идти шифровка, например слово «текст». (Рис. 12)
Рис. 12 Форма с Набранным ключом
- Если по каким то причинам не были введены: ключевое слово, исходный файл или результирующий файл то на экран выведется сообщение об ошибке и процесс шифрования и дешифровки будет не выполним.
Процесс Дешифрования зашифрованного текста проходит также за исключением того, что Исходным файлом будет шифрованный файл, а результирующим любой другой файл и ключом должно быть такое же ключевое слово, что использовалось при шифровке. (Рис. 13)
Рис. 13 Заполененная
форма процесса Дешифрования
Так же
для пользователей добавлен пункт
«Справка» который открывается
через кнопку «Помощь» в меню. (Рис.
14)
Рис. 14 Форма
окна справки
Покажем наглядно, как происходит процесс шифрования. Зашифруем фразу «Метод Гронсфельда», за ключевое слово возьмём «текст»:
8. Вывод
Следует отметить, что шифр Гронсфельда вскрывается относительно легко, если учесть, что в числовом ключе каждая цифра имеет только десять значений, а значит, имеется лишь десять вариантов прочтения каждой буквы шифртекста. С другой стороны, шифр Гронсфельда допускает дальнейшие модификации, улучшающие его стойкость, в например двойное шифрование разными числовыми ключами.
В нашем случае в качестве ключа используется алфавит, содержащий 256 символов, что делает данный метод шифрования достаточно криптостойким.
Простой
интерфейс программы позволит
пользоваться ею любому
Программа
позволяет шифровать файлы
Ключевое
слово может состоять из различных символов,
что упрощает работу с программой.
9.Список
используемой литературы
3. http://ru.wikipedia.org/wiki/%
10.Приложение
Текст
программы.
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Buttons, ComCtrls, Menus;
type
{ TForm1
}
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
LabeledEdit1: TLabeledEdit;
LabeledEdit2: TLabeledEdit;
LabeledEdit3: TLabeledEdit;
MainMenu1: TMainMenu;
MenuItem1: TMenuItem;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{ TForm1 }
procedure TForm1.Button1Click(Sender: TObject);
begin
if form1.OpenDialog1.Execute then
form1.LabeledEdit1.Text:=
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if form1.SaveDialog1.Execute then
form1.LabeledEdit2.Text:=
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i,j,size,q,k:integer;
stcol:byte;
f1,f2:file of byte;
b1,b2:array[0..4095] of byte;
st,x:string;
begin
if (form1.LabeledEdit3.Text='')or
(form1.LabeledEdit1.Text='')or (form1.LabeledEdit2.Text='')
begin
showmessage('Не выбранны используемые файлы или не введён ключ.Процесс не будет выполнен!');
exit;
end;
x:=form1.LabeledEdit1.Text;
st:=form1.LabeledEdit3.Text;
stcol:=length(st);
AssignFile(f1,form1.
AssignFile(f2,form1.
reset(f1);
rewrite(f2);
while not eof(f1) do
begin
if (fileSize(x)-filepos(f1))>4095 then
size:=4095