Можно зашифровать некоторые файлы в единственный зашифрованный архив, или в различные зашифрованные файлы. С архивами FineCrypt пользователь может работать таким же образом, как он работает с архивами zip. Пользователь может прибавить файлы или переместить их от архива и дешифровать требуемые файлы.
С FineCrypt пользователь может создать зашифрованный и не зашифрованные самораспаковывающиеся исполняемые файлы.
Пользователь может просить шифрование его собственный ключ шифрования,
который будет использоваться для шифрования без дальнейшего преобразования.
Обычно много существующих продуктов шифрования выполняют шифрование с ключом,
сгенерированным от пароля пользователя. FineCrypt делает возможным выполнить
шифрование с паролем и с ключом, указанным пользователем.
2.2 Разработка собственной программы шифрования на Delphi 7
2.2.1 Выбор и обоснование среды программирования
При выборе среды реализации сравнивают программные продукты и пользуются различными средствами разработки приложений. Использование возможностей средств разработки приложений позволяет автоматизировать процесс разработки. Инструментальные средства позволяют:
) создавать интерфейс, используя стандартные компоненты;
) передавать управление процессам, в зависимости от состояния системы; разрабатывать более надежные программы путем обработки исключительных ситуаций возникающих при некорректной работе программы. Современные средства разработки характеризуются параметрами: поддержка объектно-ориентированного стиля программирования; возможность использования CASE-технологий, как для проектирования разрабатываемой системы, так и для разработки моделей реляционных баз данных;
) использование визуальных компонент для наглядного проектирования интерфейса;
) поддержка БД.
Выше перечисленными свойствами обладают языки программирования:
· Visual Fox Pro;
· Delphi;
· Visual C++.
Каждое из этих средств содержит весь спектр современного инструментария, который был перечислен ранее. Главное отличие состоит в области использования рассматриваемых средств.
Для реализации курсовой работы был выбран язык программирования Delphi, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения- это продукт Borland International для быстрого создания приложений. Высокопроизводительный инструмент визуального построения приложений включает в себя настоящий компилятор кода и предоставляет средства визуального программирования, несколько похожие на те, что можно обнаружить в Microsoft Visual Basic или в других инструментах визуального проектирования.
Преимущества Delphi по сравнению с аналогичными программными продуктами: быстрота разработки приложения;
) высокая производительность разработанного приложения;
) низкие требования разработанного приложения к ресурсам компьютера;
) наращиваемость за счет встраивания новых компонентов и инструментов в среду Delphi;
) возможность разработки новых компонентов и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);
) удачная проработка иерархии объектов.
К тому же при создании программ важна скорость и качество создания, а эти
характеристики может обеспечить только среда визуального проектирования,
способная взять на себя значительные объемы рутинной работы по подготовке
приложений, а также согласовать деятельность группы постановщиков,
кодировщиков, тестеров и технических писателей. Возможности Delphi полностью
отвечают подобным требованиям и подходят для создания систем любой сложности.
.2.2 Выбор и обоснование алгоритма шифрования
Выбирая алгоритм шифрования, который будет использоваться в создаваемой криптосистеме, прежде всего, необходимо обратить внимание на следующие характеристики алгоритмов:
) криптостойкость. Алгоритм должен быть тщательно проанализирован мировым криптографическим сообществом в течение длительного времени и признан криптостойким к различным видам атак;
) длина ключа. Ключ, используемый в алгоритме шифрования, должен быть не короче 256 бит для алгоритмов симметричного шифрования и 2048 бит для алгоритмов с открытым ключом. Это сделано для того, чтобы шифр невозможно было вскрыть методом прямого перебора;
) скорость шифрования. Скорость шифрования данных по выбранному алгоритму должна быть настолько высокой, чтобы не возникало простоев при передаче данных на максимальной скорости.
2.2.3 Необходимые визуальные компоненты для создания
Для создания программы для шифрования/дешифрования понадобятся следующие стандартные компоненты:
Label: TLabel;
Edit: TEdit;
SpeedButton: TSpeedButton;: TOpenDialog;
BitBtn: TBitBtn;
Компонент Delphi Label предназначен для показа текста на форме программы, которые не будет меняются в течение работы программы. Текст надписи компонента Label можно изменить, но делается это только программно. Текст, отображаемый в компоненте, определяется значением свойства Caption. Он прописывается в процессе проектирования или задается программно во время выполнения программы [13].
Компонент Delphi Edit предназначен для ввода пользовательских данных и
представляет собой однострочное поле.
Рисунок 2.3 - Компоненты Label
и Edit
Компонент Delphi BitBtn это пиктографическая кнопка, представляющая собой один из вариантов стандартной кнопки Button. В отличие от неё кнопка Delphi BitBtn умеет отображать на своей поверхности не только надпись, но и изображение, которое задаётся свойством Glyph. В состав Delphi входит большое количество готовых изображений, которые можно размещать на кнопках Delphi BitBtn [13].
Компонент Delphi SpeedButton (быстрая кнопка) расположен на странице
Additional Палитры компонентов. Он по функционалу и виду похож на кнопку с
рисунком BitBtn. Но является не оконным элементом, вследствие чего не может
получить фокус ввода. Используется для создания панелей с "быстрыми"
командными кнопками [13].
Рисунок 2.4 - Компоненты BitBnt
и SpeedButton
С помощью компонента Delphi OpenDialog можно
выбрать файл для его открытия. Запуская данный диалог, открывается окно, в
котором происходит выбор открываемого файла.
Рисунок 2.5 - Компонент OpenDialog
Создадим новый проект (File | New Project). Поместим на форму 2 компонента Edit: один для указания пути к файлам, другой для ввода пароля; 2 компонента Label для подписи компонентов Edit; 2 компонента BitBtn для выполнения основных действий приложения, т.е шифрование/дешифрование и закрытия программы; TOpenDialog для выбора открытия нужного файла; TXPManifest-стилизация под Windows XP. В итоге должно получиться так:
Рисунок 2.6 - Форма программы
Приступим к разработке всех компонентов программы, т.е. прописыванию всех
необходимых кодов. Программа начинается с объявления используемых стандартных
библиотек и глобальных переменных:
unit Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, Buttons, StdCtrls, XPMan;= class(TForm): TLabel;: TEdit;: TSpeedButton;: TOpenDialog;: TLabel;: TEdit;: TBitBtn;: TBitBtn;: TXPManifest;SpeedButton1Click(Sender: TObject);BitBtn2Click(Sender: TObject);BitBtn1Click(Sender: TObject);FormCreate(Sender: TObject);
{ Private declarations }
{ Public declarations };
var
Form1:
TForm1;
Алгоритм шифрования выглядит следующим образом:
procedure SimmetricEx(FN:string; pass:string);
i:integer; //позиция байта в файле
j,k:byte; //вспомогательные переменные
MS:TMemoryStream; //поток
begin
MS:=TMemoryStream.Create; //создание экземпляра класса TMemoryStream
MS.LoadFromFile(FN); //загрузка файла в поток
MS.Position:=0; //позиционирование в потоке на старт
for i:=1 to MS.Size do //от 1 до последнего байта
begin
k:=(i mod Length(pass))+1; //определяем номер символа ключа,
//по которому будем шифровать
MS.Read(j,1); //читаем 1 байт из потока
j:=j xor Ord(pass[k]); //шифруем прочитанный байт
MS.Position:=i-1; //возвращаемся назад на 1 байт
MS.Write(j,1); //записываем зашифрованный байт
end;
MS.Position:=0;
MS.SaveToFile(FN); //сохраняем содержимое потока
//в файле под тем же именем
MS.Free; //уничтожаем экземпляр потока;
Свяжем кнопку BitBtn2 с уже
написанным алгоритмом шифрования. Так как в программе используется симметричный
алгоритм шифрования, то компонент BitBtn2 будет выполнять 2 различных действия - шифрование или дешифрование:
procedure TForm1.BitBtn2Click(Sender: TObject);:TMemoryStream;not FileExists(Edit1.Text) then('Файл не найдет!!!');;;Edit2.Text='' then
ShowMessage('Введите пароль для шифрования!!!');
Exit;;(Edit1.Text,Edit2.Text);('Файл зашифрован!');;;- закрытие программы:TForm1.BitBtn1Click(Sender: TObject);
begin;;
Здесь происходит открытие окна для выбора файла в каталоге:
procedure TForm1.FormCreate(Sender: TObject);.InitialDir:=ExtractFileDir(Application.ExeName);
end;
Тестирование программного обеспечения - процесс исследования, испытания программного продукта.
Процесс отладки включает:
) действия, направленные на выявление ошибок (тестирование);
) диагностику и локализацию ошибок (определение характера ошибок и их местонахождение);
) внесение исправлений в программу с целью устранения ошибок.
Невозможно гарантировать отсутствие ошибок в программе. В лучшем случае можно попытаться показать наличие ошибок. Если программа правильно ведет себя для большого набора тестов, нет оснований утверждать, что в ней нет ошибок. Если считать, что набор тестов способен с большой вероятностью обнаружить возможные ошибки, то можно говорить о некотором уровне уверенности (надежности) в правильности работы программы, устанавливаемом этими тестами.
После прописывания всех кодов и настройки расположения компонентов, можно
компилировать приложение, для этого надо нажать F9 в среде Delphi,
запустится окно программы:
Рисунок 2.7 - Итоговый вид программы
Кнопка
позволяет
выбрать файл для шифрования. После выбора нужного файла вводится пароль в
соответствующее поле и нажимается кнопка «Шифровать». В результате появляется
окно, с информацией о том, что файл зашифрован:
Рисунок 2.8 - Результат шифрования
Если файл был не выбран или не указан пароль программа
выдаст соответствующее окно:

Рисунок 2.10 - Результат программы при не введенном
пароле
В ходе курсовой работы были решены следующие задачи:
) изучить системы шифрования;
) проанализировать программы шифрования;
) выбрать наиболее подходящие средства реализации;
) провести тестирование разработанного демонстрационного варианта программы шифрования;
) закрепить практические навыки программирования на языке Delphi.
Итогом стало создание прикладной программы, отражающей суть поставленной задачи - шифрование данных, в среде разработки Delphi. Эта среда разработки является наиболее простой при создании таких сравнительно несложных и небольших по размеру программ.
Поставленная задача была выполнена. Данная программа является наиболее простым вариантом программы шифрования данных. Она является законченным программным продуктом, хотя возможна ее доработка.
Программа имеет удобный пользовательский интерфейс, интуитивно понятный пользователю любого уровня подготовки.
В целом задача была выполнена в полной мере, и программа может быть
использована на практике.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ