Разработка программного средства, обеспечивающего криптографическую защиту файлов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



ecipherBlockBlock: array[1..4] of Word - входной блок данных.DecipherBlock: Boolean - успешное или незавершенное расшифрование блока данных.Выполняется расшифрование одного блока входных данных по алгоритму IDEA.EncipherBlockBlock: array[1..4] of Word - входной блок данных.EncipherBlock: Boolean - успешное или незавершенное расшифрование блока данных.Выполняется шифрование одного блока входных данных по алгоритму IDEA.EncryptCopyDestStream, SourseStream: TStream - итоговый и исходный потоки для шифрования; Count: Int64 - размер потока данных; Key : string - ключ шифрования.EncryptCopy: Boolean - успешное или аварийное завершение работы.Шифрование одного потока данных в другой согласно алгоритму IDEA.DecryptCopyDestStream, SourseStream: TStream - итоговый и исходный потоки для расшифрования; Count: Int64 - размер потока данных; Key : string - ключ расшифрования.DecryptCopy: Boolean - успешное или аварийное завершение работы.Расшифрование одного потока данных в другой согласно алгоритму IDEA.EncryptStreamIDEADataStream: TStream - поток данных для шифрования; Count: Int64 - размер потока; Key: string - ключ шифрования; KCONST: Array of word - вектор инициализации.EncryptStream: Boolean - успешное или аварийное завершение работы.Выполняет шифрование одного потока данных согласно алгоритму IDEA.DecryptStreamIDEADataStream: TStream - поток данных для расшифрования; Count: Int64 - размер потока; Key: string - ключ расшифрования; KCONST: Array of word - вектор инициализации.DecryptStream: Boolean - успешное или аварийное завершение работы.Выполняет расшифрование одного потока данных согласно алгоритму IDEA.InitializeAKey: string - ключ шифрования.KeyPtr : PChar - развернутый ключ.Производит разворачивание ключа шифрования до 32 байт.

3.7.4 Модуль создания архива

Модуль FolderActions.pas обеспечивает упаковку папки и всех вложений в нее в единый файл - архив. Основные применяемые функции и процедуры представлены в таблице 4.

Таблица 4 - Основные функции и процедуры модуля FolderActions.pas

Функция или процедураВходные данныеВыходные данныеОписаниеDoFolderActionFolderPath, ArchivePath:string - пути исходной папки с вложениями и итогового архива; ActionFunction: TActionFuntion - функция копирования одного файла в другой.DoFolderAction: Boolean - успешное или аварийное завершение работы.Выполняет создание архива всех вложений поданной на вход папки.De_DoFolderActionFolderPath, ArchivePath:string - путь архива для распаковки и путь папки для итоговой распаковки; ActionFunction: TActionFuntion - функция копирования одного файла в другой.De_DoFolderAction: Boolean - успешное или аварийное завершение работы.Выполняет извлечение папок и файлов из архива.GetAllFilesFilter, Folder: string - фильтр выбора файлов и исходная папка для обхода соотвественно.GetAllFiles: TFilesList - итоговый список обойденных файлов.Обход всех файлов в папке

.7.5 Модуль создания USB-ключа

Модуль Unit3.pas обеспечивает весь процесс создания USB-ключа - введение данных, проверка их корректности и справочная информация для пользователя. Основные применяемые функции и процедуры представлены в таблице 5.

Таблица 5 - Основные функции и процедуры модуля Unit3.pas

Функция или процедураВходные данныеВыходные данныеОписаниеCRC64_sumstr: string - строка, от которой вычисляется контрольная сумма (CRC64). CRC64_sum: int64 - контрольная сумма (CRC64), полученная от строки.Производится вычисление контрольной суммы (CRC64) от строки (буфера).c_GetTempPath-c_GetTempPath: String - возвращает путь к системной временной папке TEMP.Процедура не имеет входных параметров. При вызове возвращает путь к системной временной папке TEMP.hexTOdecstr: string - строка, представляющая собой строковую запись шестнадцатиричного числа.hexTOdec: cardinal - переведенное число в десятиричном формате.Функция производит перевод шестнадцатиричного числа в десятиричное.new_yserkey-Создание USB-ключаОсновная процедура модуля. Создает USB-ключ на основе введенных пользователем личных данных, пары логин-пароль и указанного USB.

3.8 Выводы по главе

В данной главе дано обоснование использования языка программирования для реализации программного средства. В процессе создания главы созданы классы, реализующие алгоритмы шифрования, контрольной суммы, создания архива, создания USB-ключа и алгоритмов шифрования. В главе были даны описания основных процедур и функций всех описанных модулей, а так же описания реализованных структур данных. Кроме того в главе описана общая схема взаимодействия всех модулей программы.

4. Контрольный пример

В данной работе была реализована программа криптографической защиты файлов с двухэтапной аутентификацией. Программа обладает интуитивно-понятным и простым пользовательским интерфейсом, что обеспечивает простоту и легкость в использовании.

.1 Запуск программы

При запуске программы выводится окно авторизации (рисунок 12), куда можно ввести логин, пароль и выбрать USB-ключ, для входа в программу, либо произвести создание нового USB-ключа. Окно аутентификации имеет множество подсказок для пользователя: таймер оставшегося времени на авторизацию, верность повторенного пароля, верность выбранного USB-ключа, а также справочная информация. Если выбрать команду Создать USB-ключ, то появится окно создания нового USB-ключа (рисунок 13).

Рисунок 12 - Окно входа в программу.

Рисунок 13 - Окно создания нового USB-ключа.

Здесь пользователю предлагается ввести информацию о себе, а также задать логин и пароль (последний необходимо повторить дважды). При создании пароля происходит автоматический подсчет стойкости пароля и если стойкость не отвечает минимальным требованиям безопасности, происходит блокирование создания нового ключа. Если все данные введены верно, пользователю предоставляется возможность выбрать чистый USB для создания USB-ключа. После чего проис