Автор: Пользователь скрыл имя, 01 Декабря 2014 в 14:59, курсовая работа
Целью курсовой работы является автоматизация процесса шифрования на базе современных информационных технологий.
Для достижения поставленной цели необходимо решить следующие задачи:
изучить современные системы шифрования;
выбрать и обосновать криптостойкий алгоритм, подходящий для
шифрования разнородных данных;
Интерфейс программ для шифрования данных, в основном, довольно прост. В программе можно найти несколько алгоритмов шифрования, различные настройки, а также некоторые углубленные функции, такие, как ввод пароля на экранной клавиатуре (для защиты от кейлоггеров), создание зашифрованных архивов и генерацию паролей.
2.1.1 TrueCrypt
TrueCrypt – одна из лучших бесплатных программ для
шифрования файлов. Данная программа распространяется с открытым исходным кодом, что очень важно для программ такого типа. Поскольку исходный код открыт вы можете быть уверенны, что в программе нет никаких скрытых возможностей, позволяющих расшифровать файлы без пароля.
Рисунок 2.1 – программа для шифрования файлов TrueCrypt
TrueCrypt работает по очень простому принципу. После установки пользователю предлагается создать зашифрованный виртуальный логический диск. Все данные помещенные на такой диск будут автоматически зашифрованы. Количество таких виртуальных дисков неограниченно. А для доступа к файлам нужно один раз ввести пароль и виртуальный диск будет подключен к системе. После чего пользователь может спокойно работать с диском до следующей перезагрузки компьютера или пока не отключит зашифрованный виртуальный диск вручную.
Кроме этого программа для шифрования файлов TrueCrypt позволяет шифровать и реальные физические носители информации. В этом случае все данные помещенные на такой диск будут автоматически зашифрованы, включая имена папок и файлов.
TrueCrypt поддерживает такие алгоритмы шифрования как AES, Serpent и Twofish. Также возможно использования каскадного шифрования одних и тех же данных различными алгоритмами.
Для доступа к зашифрованным дискам можно использовать как обычный пароль, так и ключевые файлы. Возможно использование комбинации этих способов.
AxCrypt – более простая программа для шифрования файлов.
AxCrypt не предлагает создавать зашифрованные диски, а шифрует файлы прямо в папках пользователя.
Рисунок 2.2 – программа для шифрования файлов AxCrypt
После установки программы AxCrypt в контекстном меню появляется пункт «AxCrypt», с помощью которого пользователь может зашифровать любую папку или отдельный файл. Для доступа к зашифрованным данным может использоваться пароль или ключевой файл. Шифрование происходит с использованием алгоритма AES-128.
Пользователь может просто открыть зашифрованный файл, или полностью снять шифрование, вернув исходный файл. Для выполнения этих действий нужен пароль для доступа к зашифрованным файлам.
FineCrypt - очень удобная программа. FineCrypt создает самораспаковывающиеся архивы, которые могут быть дешифрованы, не используя эту программу непосредственно, например, если программа не устанавливается на компьютере, на котором вы хотите дешифровать. FineCrypt также позволяет вам шифровать файлы, каталоги и целые деревья каталогов при использовании пароля или ключа.
Можно зашифровать некоторые файлы в единственный зашифрованный архив, или в различные зашифрованные файлы. С архивами FineCrypt пользователь может работать таким же образом, как он работает с архивами zip. Пользователь может прибавить файлы или переместить их от архива и дешифровать требуемые файлы.
С FineCrypt пользователь может создать зашифрованный и не зашифрованные самораспаковывающиеся исполняемые файлы.
Пользователь может просить шифрование его собственный ключ шифрования, который будет использоваться для шифрования без дальнейшего преобразования. Обычно много существующих продуктов шифрования выполняют шифрование с ключом, сгенерированным от пароля пользователя. FineCrypt делает возможным выполнить шифрование с паролем и с ключом, указанным пользователем.
При выборе среды реализации сравнивают программные продукты и пользуются различными средствами разработки приложений. Использование возможностей средств разработки приложений позволяет автоматизировать процесс разработки. Инструментальные средства позволяют:
системы;
исключительных ситуаций возникающих при некорректной работе программы.
Современные средства разработки характеризуются параметрами:
проектирования разрабатываемой системы, так и для разработки моделей реляционных баз данных;
проектирования интерфейса;
Выше перечисленными свойствами обладают языки программирования:
Каждое из этих средств содержит весь спектр современного инструментария, который был перечислен ранее. Главное отличие состоит в области использования рассматриваемых средств.
Для реализации курсовой работы был выбран язык программирования Delphi, который является языком высокого уровня и позволяет быстро и эффективно создавать приложения
Delphi – это продукт Borland
International для быстрого создания
приложений. Высокопроизводительный
инструмент визуального
Преимущества Delphi по сравнению с аналогичными программными продуктами:
компьютера;
инструментов в среду Delphi;
собственными средствами Delphi (существующие компоненты и инструменты доступны в исходных кодах);
К тому же при создании программ важна скорость и качество создания, а эти характеристики может обеспечить только среда визуального проектирования, способная взять на себя значительные объемы рутинной работы по подготовке приложений, а также согласовать деятельность группы постановщиков, кодировщиков, тестеров и технических писателей. Возможности Delphi полностью отвечают подобным требованиям и подходят для создания систем любой сложности.
Выбирая алгоритм шифрования, который будет использоваться в создаваемой криптосистеме, прежде всего, необходимо обратить внимание на следующие характеристики алгоритмов:
проанализирован мировым криптографическим сообществом в течение длительного времени (не менее пяти лет лет) и признан криптостойким к различным видам атак;
должен быть не короче 256 бит для алгоритмов симметричного шифрования и 2048 бит для алгоритмов с открытым ключом. Это сделано для того, чтобы шифр невозможно было вскрыть методом прямого перебора;
выбранному алгоритму должна быть настолько высокой, чтобы не возникало простоев при передаче данных на максимальной скорости.
В качестве шифрования используется алгоритм шифрования с симметричным ключом т.е. один ключ используется как для шифрования, так и для расшифрования данных. Длина ключа (пароля) может составлять от 1 до 255 символов.
Используемый в программе криптографический алгоритм является устойчивым к любым возможным типам взлома: несмотря на многолетние усилия исследователей, эффективных атак на него не обнаружено.
Для создания программы для шифрования/дешифрования понадобятся следующие стандартные компоненты:
Label: TLabel;
Edit: TEdit;
SpeedButton: TSpeedButton;
Open: 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;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, XPMan;
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
SpeedButton1: TSpeedButton;
Open: TOpenDialog;
Label2: TLabel;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
XPManifest1: TXPManifest;
procedure SpeedButton1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Алгоритм шифрования выглядит следующим образом:
procedure SimmetricEx(FN:string; pass:string);
var
i:integer; //позиция байта в файле
j,k:byte; //вспомогательные переменные
MS:TMemoryStream; //поток
begin
MS:=TMemoryStream.Create; //создание экземпляра класса TMemoryStream
MS.LoadFromFile(FN); //загрузка файла в поток