Автор работы: Пользователь скрыл имя, 09 Февраля 2014 в 10:58, курсовая работа
ХХ век - век информатики и информатизации. Технология дает возможность передавать и хранить все большие объемы информации. Это благо имеет и оборотную сторону. Информация становится все более уязвимой по разным причинам:
• возрастающие объемы хранимых и передаваемых данных;
• расширение круга пользователей, имеющих доступ к ресурсам ЭВМ, программам и данным;
• усложнение режимов эксплуатации вычислительных систем.
Введение ……………………………………………………………………….3
1 Разработка эскизного и технического проектов программы ……………..4
1.1 Задание ………………………………………………………………4
1.2 Назначение и область применения ………………………………..5
1.3 Технические характеристики ………………………………………5
2 Разработка рабочего проекта ……………………………………………….9
2.1 Разработка программы ……………………………………………..9
2.2 Спецификация программы ………………………………………...10
2.3 Текст программы …………………………………………………..11
2.4 Тестирование программы ………………………………………….14
Заключение …………………………………………………………………….16
Список литературы ……………………………………………………………17
Версия шаблона |
1.1 |
Филиал |
Красноярский |
Вид работы |
Курсовая работа |
Название дисциплины |
Программирование на языке высокого уровня |
Тема |
Разработка приложения для Windows, представляющего собой текстовый редактор с функциями шифрования по методу Цезаря |
Фамилия студента |
|
Имя студента |
|
Отчество студента |
|
№ контракта |
ХХ век - век информатики и информатизации. Технология дает возможность передавать и хранить все большие объемы информации. Это благо имеет и оборотную сторону. Информация становится все более уязвимой по разным причинам:
Поэтому все большую важность приобретает проблема защиты информации от несанкционированного доступа (НСД) при передаче и хранении.
Испытанный метод защиты информации от НСД - шифрование (криптография). Шифрованием называют процесс преобразования открытых данных в зашифрованные или зашифрованных данных в открытые по определенным правилам с применением ключей.
В данной работе делается попытка рассмотреть основы возможностей среды разработки Delphi 7 для создания приложений реализующих алгоритм шифрования. В данном случае для наглядной реализации был выбран алгоритм Цезаря.
Система шифрования Цезаря - частный случай шифра простой замены. Метод основан на замене каждой буквы сообщения на другую букву того же алфавита, путем смещения от исходной буквы на K букв.
Произведем разработку эскизного и технического проекта программы в соответствии с ГОСТ 19.404–79.
В процессе изучения предметной области и соответствующей литературы было принято решение об установлении темы работы в следующем виде:
«Разработка приложения для Windows, представляющего собой текстовый редактор с функциями шифрования по методу Цезаря»
В соответствии с данной темой принято следующее задание:
«Написать программу, которая позволяет зашифровывать и расшифровывать с помощью «шифра Цезаря» сообщение, написанное на русском языке.
Данный шифр реализует следующее преобразование текста: каждая буква исходного текста заменяется третьей (или любой другой выбранной) после нее буквой в алфавите, который считается написанным по кругу»
Назначение программы можно условно разделить на две основных группы:
В пользовательские возможности входит набор функций по шифрованию и дешифрованию текстового сообщения на русском языке, а так же выбор ключа шифрования (сдвиг).
Возможности программиста заключаются в благоприятной возможности изучить прием программирования с использованием методов шифрования. В данном случае шифрования по методу Цезаря.
Необходимо отметить, что программа созданная в среде разработки Delphi 7 предназначена только для использования в операционной системе Windows.
Технические характеристики могут быть последовательно изложены в пунктах постановки задачи, описания алгоритмов а так же входных и выходных файлов (при необходимости) и выбора состава технических средств.
Постановка задачи
Разработать программное обеспечение для Windows имеющий графический интерфейс пользователя, предоставляющий возможность вводить текст сообщения подлежащего шифрованию, устанавливать величину сдвига (параметр ключ) и так же выбирать направление из двух возможностей шифрование и дешифрование.
Решение данной задачи представляет собой использование представления алфавита как замкнутой цепи (см. рис.1) как для заглавных, так и для строчных букв русского алфавита.
Таким образом, при вводе сообщения «яяя» и при ключе равном «2» зашифрованное сообщение будет иметь вид: «ббб»
Рис.1 Представление алфавита как замкнутого круга
Необходимо добавить, что шифруемое
сообщение может содержать
Описание алгоритма
Описание алгоритма происходит от общего описании принципа работы до уточнения конкретных функций до тех пор пока их действия не будут предельно ясны.
В данной программе решаются три независимые друг от друга подзадачи:
Каждая из подпрограмм требует дополнительные детализации и пояснения. Функция выбора ключа сдвига может быть представлена как служебная так как подходит и для дешифровании и шифрования.
В первую очередь разберем алгоритм шифрования:
Алгоритм дешифрования полностью эквивалентен алгоритму шифрования
Организация входных и выходных данных
Приведенный алгоритм не накладывает ограничений на использование любого набора входных данных.
Основные требования по заданию:
Выбор состава технических и программных средств
При разработке алгоритма появляется возможность выбора средств реализации данного приложения. Однако удобство эксплуатации конечным пользователем довольно значимый критерий особенно для такого класса программ.
Таким образ с точки конечного пользователя и скорости разработки выбор сделан в пользу Delphi.
Среда программирования Delphi 7 позволяет реализовать поставленную задачу со всеми необходимыми требованиями. В среде используется язык Object Pascal. Delphi 7 является объектно-ориентированной средой, что упрощает создание стандартизированного интерфейса.
После того как были проанализированы все составляющие предметной области и четко сформулированы задачи приложения а так же приведен алгоритм работы необходимо перейти к непосредственному созданию приложения.
Разрабатываемое приложение будет содержать одно окно:
Рис.2 Проектирование окна приложения
При разработки данного окна используются следующие компоненты:
Ко всем компонентам кроме TButton применены только визуальные настройки: изменение размера, смена имени и т.д.
Компонент TButton используется для запуска работы основного алгоритма. Два компонента RadioButton используются как вспомогательные в качестве способа выбора направления работы алгоритма. Наконец с помощью компонента Edit можно задать размер шага сдвига.
Рабочий состав проекта приведен в Таб. 1
Таблица 1
Наименование |
Обозначение |
Примечание |
Cesar.exe |
Исполняемый файл программы |
Используется для запуска |
Project1.cfg |
Файл конфигурации проекта |
Хранит настройки |
Project1.dof |
Файл параметров проекта |
Содержит установки проекта |
Project1.dpr |
Файл проекта |
Связывает все файлы |
Project1.res |
Файл ресурсов программы |
|
Unit1.dcu |
Объектный файл |
|
Unit1.ddp |
Вспомогательный файл формы |
|
Unit1.dfm |
Файл формы |
|
Unit1.pas |
Файл исходного кода |
unit Unit1;
interface
uses
Windows, SysUtils, Variants, Classes, Forms,
StdCtrls, Controls, Buttons;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
Memo1: TMemo;
Memo2: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; // глобальные переменные
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
ishod,preobr,temp:string; //строковые переменный
sdvig,a,b,c,d:integer; //целочисленные переменные
begin
ishod:='';
preobr:='';
b:=0;
c:=0;
sdvig:=strtoint(Edit1.text); // считываем сдвиг
if (RadioButton2.Checked) then
begin
ishod:=memo1.Lines.Text; // берем текст из мемо 1
for a:=1 to length(ishod) do // запускаем цикл
begin
b:=ord(ishod[a])+sdvig; // проверяем не за сдвигом ли буковка
if b > 255 then // если за сдвигом то
begin
c:=b-255; // расчитываем какая она по счету за сдвигом
preobr:=preobr+chr(224+c-1); // берем со сдвигом
end
else // если не за сдвигом
begin
preobr:=preobr+chr((ord(ishod[
end;
end;
memo2.Lines.Add(preobr); // выводим в мемо 2
end;
if (RadioButton1.Checked) then // если выбран метод дешифрования
begin
ishod:=memo1.Lines.Text; // копируем строку
for a:=1 to length(ishod) do
begin
b:=ord(ishod[a])-sdvig; // проверяем не за сдвигом ли буква
if b < 224 then
begin
c:=224-b;
preobr:=preobr+chr(255-c+1); // если да то смотрим какая
end
else
begin
preobr:=preobr+chr(((ord(
end;
end;
for d:=1 to length(preobr) do // цикл нахождения пробелов
begin
if (ord(preobr[d]) < 192) or (ord(preobr[d]) > 255) then preobr[d]:=' ';
end;
memo2.Lines.Add(preobr);// выводим в мемо 2
end;
end;
end.
Проведем демонстрацию работы программы на нескольких наборах данных.
Рис. 3 Простой пример работы программы: функция шифрования
Рис. 4 Сложный пример работы программы: шифрование нескольких слов
Рис. 5 Результат работы программы для функции дешифрование при ключе «2»
Рис. 5 Результат работы программы для функции дешифрование при ключе «3»
В данной работе были рассмотрены возможности среды разработки Delphi по созданию приложений для Windows.
Было создано приложение, отвечающее поставленным целям, а именно выполнения алгоритма шифрования по методу Цезаря.
Для создания данного приложения была проведена работа по проектированию алгоритмов и изучению предметной области.
Так же было создано рабочее окно, содержащие все необходимые визуальные компоненты для управления программой пользователем.
Работоспособность алгоритмов продемонстрирована на примере нескольких входных данных. При работе программы проверена работа функции шифрования и дешифровки.
№ п/п |
Понятие |
Определение |
В данной колонке разместите порядковые номера понятий глоссария. Порядковый номер может проставляться как вручную, так и автоматически. Количество строк в таблице должно строго соответствовать количеству внесенных в нее понятий. Пустых строк в таблице быть не должно. |
В данной колонке разместите колонке понятия глоссария. |
В данной колонке разместите определения понятий глоссария. |
1 |
Архангельский, А. Я. Приемы программирования в Delphi на основе VCL [Текст] / А. Я. Архангельский. – М. : Бином-Пресс,2006. – 933 с. |
2 |
Фленов, М. Библия Delphi [Текст] / М. Фленов. – СПб. : БХВ –Петербург, 2004. – 880 с. |
3 |
Парижский, С.М. Delphi Учимся на примерах [Текст] / С.М. Парижский. – Киев: МК-Пресс, 2005. – 216 с. |
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |