Автор работы: Пользователь скрыл имя, 13 Марта 2013 в 17:33, курсовая работа
Цель курсовой работы – осуществить шифровку текста с помощью средств Delphi.
Для достижения названной цели в исследовании необходимо решить следующие задачи:
- осуществить постановку задач;
- создать блок-схемы алгоритмов;
- осуществить описание объектов, свойств, методов;
- разработать формы и представить текст программы;
- привести результаты тестирования программного продукта.
ВВЕДЕНИЕ 6
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 8
1.1 Постановка задачи 8
1.2 Математическая модель 8
1.3 Алгоритм решения 9
1.4 Блок-схема 10
2. ПРАКТИЧЕСКАЯ ЧАСТЬ 12
2.1. Описание объектов, свойств и методов 12
2.2 Формы и основные модули текста программы в среде Delphi 13
2.3 Результат тестирования программного продукта 17
2.4 Анализ полученных результатов 20
ЗАКЛЮЧЕНИЕ 21
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 22
ПРИЛОЖЕНИЕ А 23
Р Е Ф Е Р А Т
Курсовая работа: 22 с., 12 иллюстраций, 7 источников.
ТЕКСТ, КРИПТОГРАФИЧЕСКАЯ СИСТЕМА, КЛЮЧ, ШИФРОВКА, ДЕШИФРОВКА.
Предмет исследования – возможности среды объектно-ориентированного программирования Delphi для осуществления шифровки текста.
Цель работы – написать программу, которая выполняет шифровку-дешифровку текста.
При выполнении работы
Практическая значимость этой работы
заключается в том, что пользователь
получит возможность
Автор подтверждает, что приведенный в работе расчетно-аналитический материал правильно и объективно отражает состояние исследуемого процесса, а все заимствованные из литературных и других источников теоретические, методологические и методические положения и концепции сопровождаются ссылками на их авторов.
________________________
(подпись студента)
СОДЕРЖАНИЕ
ВВЕДЕНИЕ 6
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ 8
1.1 Постановка задачи 8
1.2 Математическая модель 8
1.3 Алгоритм решения 9
1.4 Блок-схема 10
2. ПРАКТИЧЕСКАЯ ЧАСТЬ 12
2.1. Описание объектов, свойств и методов 12
2.2 Формы и основные модули текста программы в среде Delphi 13
2.3 Результат тестирования программного продукта 17
2.4 Анализ полученных результатов 20
ЗАКЛЮЧЕНИЕ 21
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 22
ПРИЛОЖЕНИЕ А 23
Проблема защиты информации путем ее преобразования, исключающего ее прочтение посторонним лицом, волновала человеческий ум с давних времен. С широким распространением письменности криптография стала формироваться как самостоятельная наука.
Криптография - это наука об обеспечении безопасности данных. Она занимается поисками решений четырех важных проблем безопасности - конфиденциальности, аутентификации, целостности и контроля участников взаимодействия. [6]
История криптографии - ровесница истории человеческого языка. Более того, первоначально письменность сама по себе была криптографической системой, так как в древних обществах ею владели только избранные. Священные книги Древнего Египта, Древней Индии тому примеры. [7]
Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже более менее систематический шифр, получивший его имя.
Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день появление вычислительных средств ускорило разработку и совершенствование криптографических методов.
Актуальность
этой науки не угасает с момента
основания человеческого языка.
Особенно в нашей эры компьютеров
требуется обеспечение
Цель курсовой работы – осуществить шифровку текста с помощью средств Delphi.
Для достижения названной цели в исследовании необходимо решить следующие задачи:
- осуществить постановку задач;
- создать блок-схемы алгоритмов;
- осуществить описание объектов, свойств, методов;
- разработать формы и представить текст программы;
- привести результаты тестирования программного продукта.
Для выполнения этих задач будем использовать среду объектно-ориентированного программирования Delphi.
Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.
Курсовая работа состоит из теоретической и практической части. Теоретическая часть состоит из: постановки задачи; математической модели; алгоритма решения задачи и блок. Практическая часть состоит из: описания объектов, свойств и методов; формы и основных модулей текста программы в среде Delphi; результата тестирования программного продукта; графического представления результатов; анализа полученных результатов.
К работе прилагается электронный носитель информации.
В данной курсовой работе требуется создать Windows-приложение на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое предназначена для шифрования текста следующим образом:
для шифрования текста используется метод, основанный на сложении текста и пароля: "мой текст" + "пароль" = ('м'+'п')('о'+'а')... То есть каждый символ получают путем сложения соответствующих символов текста и пароля. Под "сложением символов" подразумевается сложение номеров этих символов. Обычно пароль длиннее текста, поэтому его размножают: "парольпар". Чтобы расшифровать текст, нужно проделать обратную операцию, то есть из текста вычесть пароль.
В качестве информации, подлежащей шифрованию и дешифрованию, будут рассматриваться тексты, построенные на некотором алфавите. Под этими терминами понимается следующее.
Алфавит - конечное множество используемых для кодирования информации знаков.
Текст - упорядоченный набор из элементов алфавита.
В качестве примеров алфавитов, используемых в современных ИС можно привести следующие:
- алфавит Z33 - 32 буквы русского алфавита и пробел;
- алфавит Z256 - символы, входящие в стандартные коды ASCII и КОИ-8;
- бинарный алфавит - Z2 = {0,1};
- восьмеричный алфавит или шестнадцатеричный алфавит.
Шифрование - преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.
Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.
Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.
На рисунке 1.1 показана блок-схема процедуры шифрования файлов.
Рисунок 1.1 — Процедура шифрования файлов
Для шифровки текста используем цикл, в котором будут наращиваться два аргумента и происходить процесс вставки символов в исходный текст. Первый будет индексом символов исходного текста, а второй – индекс символа в ключе шифровки. То есть первой букве в тексте будет соответствовать первая буква в слове-ключе. Так как слово-пароль обычно меньше исходного текста, при достижении циклом конца слова он возвращается на его начало и продолжает процесс шифровки.
Для дешифровки текста проверим ключ путем извлечения строки, отвечающей за пароль, из текста и сравнения ее с размноженным до длины извлеченной строки предполагаемого пароля. При правильности условия программа вычтет эту строку из зашифрованного текста и тем самым расшифрует текст.
На рисунке 1.2 представлена блок-схема процесса шифровки, где t – это текст, который будет результатом шифровки, str – исходный текст, w – слово-пароль, а i и k – это индексы для строк str и w соответственно.
Рисунок 1.2
— Блок-схема алгоритма
На рисунке 1.3 представлена блок-схема процесса дешифровки, в процессе которого сначала проверяется введенный ключ, а затем идет сам процесс дешифровки, где t – это текст, который будет результатом дешифровки, str – зашифрованный текст, w – предполагаемое слово-пароль, w0 – строка размноженного пароля, извлеченная из зашифрованного текста, w1 - строка размноженного предполагаемого пароля, а i и k используются как индексы.
Рисунок 1.3 — Блок-схема алгоритма дешифровки текста
В ходе составления программы были использованы следующие объекты с их свойствами:
Label - текстовая метка (надпись) на форме. Используется для отображения любого текста в окне. Текст задаётся в свойстве Caption.
Edit - поле ввода. Используется для ввода любых данных (текста, числа и т.д.), представленных одной строкой. Текст хранится свойством Text. Свойство MaxLength позволяет задать максимальное число символов, которое может быть введено в поле. Значение 0 означает, что ограничение не установлено.
Memo - многострочный Edit. Используется для ввода больших объёмов текста. Свойство ReadOnly делает этот объект нередактируемым. Свойство ScrollBars позволяет указать полосы прокрутки, которые будут отображаться у поля при недостатке места для всего текста:
•ssNone - без полос прокрутки;
•ssHorizontal - горизонтальная полоса прокрутки;
•ssVertical - вертикальная;
•ssBoth - обе: и горизонтальная, и вертикальная.
Button – командная кнопка. Caption - текст на кнопке.
Компоненты OpenDialog — диалог «Открыть файл» и SaveDialog — диалог «Сохранить файл как...». Все свойства этих компонентов одинаковы, только их смысл несколько различен для открытия и закрытия файлов. Основное свойство, в котором возвращается в виде строки выбранный пользователем файл, — FileName. Типы искомых файлов, появляющиеся в диалоге в выпадающем списке "Тип файла", задаются свойством Filter.
При решении поставленной задачи будут использованы следующие объекты (рисунок 2.1)
Рисунок 2.1 – Объекты программы
Примечание – источник: собственная разработка
Button1..6 - командные кнопки;
Label1..3 – информационные метки;
Edit1 – поле ввода ключа шифра;
Memo1..2 – многострочные текстовые редакторы;
OpenDialog1 – диалог открытия файлов;
SaveDialog1 – диалог сохранения файлов.
Данные объекты размещены нами на форме пользовательского интерфейса, которая представлена на рисунке 2.2 и 2.3.
Рисунок 2.2 – Форма пользовательского интерфейса в режиме шифровки
Рисунок 2.3 – Форма пользовательского интерфейса в режиме дешифровки
Главной кнопке «Зашифровать»/«Дешифровать» назначим программный код:
procedure TForm1.Button1Click(Sender: TObject);
var w,w0,w1: string; i,k: integer;
begin
str:=Memo1.Text; memo2.Text:=''; w0:=''; w:=Edit1.Text;
if (w='') or (str='') then begin MessageDlg('Присутствуют пустые поля',mtInformation, [mbOK], 0);
exit; end;
if Button1.Caption='Зашифровать' then begin k:=1;
for i:=1 to Length(str) do begin
Memo2.Text:=Memo2.Text+str[i]+
k:=k+1;
if k>length(w) then k:=1;
end;
end
else begin
if op then for i:=1 to Length(str) do
if (str[i]=#$A) then Delete(str,i,1);
for i:=1 to Length(str) do
if not (odd(i)) then w0:=w0+str[i];
k:=1;
for i:=1 to length(w0) do begin
w1:=w1+w[k];
k:=k+1;
if k>length(w) then k:=1; end;
if w1=w0 then begin
for i:=1 to length(str) do begin
if (str[i]=#$D) and (op) then Memo2.Text:=Memo2.Text+#10;
if odd(i) then Memo2.Text:=Memo2.Text+str[i]; end; end
else MessageDlg('Неправильный ключ', mtWarning, [mbcancel],0); exit; end;
op:=false;
end;
Кнопка «<-->» отвечает за переключение между режимами программы. Ей назначим код:
procedure TForm1.Button2Click(Sender: TObject);
begin
if Label1.Caption='Исходный текст' then begin
Label1.Caption:='Зашифрованный текст';
Label2.Caption:='Исходный текcт';
Button1.Caption:='Дешифровать'
end
else
begin
Label1.Caption:='Исходный текст';
Label2.Caption:='Зашифрованный текст';
Button1.Caption:='Зашифровать'
end; end;
После создания приложения приступим к его тестированию.
Для проверки правильности работы программы мы зашифруем какое-нибудь одно слово, чтобы с легкостью проверить правильность результата вручную.
Запишем в поле «Исходный текст» слово «Мобильник», а в поле «Слово-пароль» - «кот» и нажмем кнопку «Зашифровать» (рисунок 2.4)
Рисунок 2.4 – Шифрование слова при помощи программы.
Зашифровав слово ручным методом и с помощью программы, мы убедились в правильности ее работы.
Проверим работу программы, зашифровав большой текст, а затем проведя обратный процесс.
Шифровка представлена на рисунке 2.5.
Рисунок 2.5 – Диалоговое окно программы после процесса шифровки
Проверим способность программы сохранять текст в файл и открывать его из файла. Нажмем кнопку «Сохранить в файл», введем имя для файла с исходным текстом и файла с зашифрованным текстом. На рисунке 2.6 показан открытый файл с исходным текстом.
Рисунок 2.6 – Результат сохранения текста
Так как кодировка зашифрованного текста не определяется блокнотом, то этот файл можно открыть с помощью Microsoft Word. В результате мы увидим следующий текст, отображенный на рисунке 2.7.
Рисунок 2.7 – Результат сохранения зашифрованного текста
Выполним обратный процесс с зашифрованным текстом, поменяв режим работы, открыв зашифрованный текст из файла и введя ключ шифровки. Следует заметить, что программа проведет процесс дешифровки только при правильном ключе шифровки, иначе будет выведено сообщение «Неверный ключ» (рисунок 2.8).
Информация о работе Формы и основные модули текста программы в среде Delphi