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

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

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



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

К неоспоримым достоинствам IDEA стоит отнести практическую устойчивость ко всем атакам и хорошую скорость шифрования. К недостаткам алгоритма принято относить медленную скорость шифрования по сравнению с новейшими алгоритмами [9].

3. Програмная реализация криптографической защиты файлов

В данной главе описаны модули, реализующие алгоритмы CRC64, RC6, IDEA, а так же другие вспомогательные модули и структуры данных.

.1 Выбор обоснования языка программирования

Для реализации поставленных задач, был выбран язык программирования Object Pascal и среда разработки Borland Delphi 7.

Object Pascal - язык программирования применяемый для разработки приложений под ОС Windows любой сложности. Язык заслужил большое уважение и популярность среди разработчиков самых разных программных продуктов. Являясь одним из самых популярных языков программирования, Object Pascal широко используется для разработки программного обеспечения. На языке Object Pascal написаны такие известные программы, как: Total Commander, Light Alloy, The KMPlayer, AIMP, QIP, R&Q, The Bat!, ALZip, PowerArchiver, PeaZip, Dev-C++, Skype (графический интерфейс). Область применения языка широка и включает в себя написание как прикладных программ и драйверов устройств, так и развлекательных приложений (например, видеоигр). Написанные программы быстры и легки.

Процесс написания программ, благодаря особенностям языка, не занимает много времени. Написанные программы имеют прозрачную структуру, а исходные коды легко читабельны.

.2 Организация данных

Если аутентификация пользователем успешно пройдена, производится загрузка ключей шифрования пользователя.

После чего программа ожидает команды пользователя - шифрование/расшифрование файлов/контейнеров.

3.3 Основные структуры данных

В программе применяются структуры данных.

\qwallke.qwkey.">Данная структура описывает файл \ qwallke.qwkey.

Поля структуры:_key = record_RC: Array [1..8] of cardinal; //256bit ключ шифрования RC6_IDEA: Array [1..4] of cardinal;//128bit ключ шифрования IDEA_CONST: Array [1..4] of cardinal;//128bit вектор инициализации

CRC64_2: int64; //64bit конт сумма открытых полей выше_counter: cardinal; //32bit счетчик - меняется каждый сеанс работы с ключом

data_key: cardinal;//32bit дата создания ключа ДДММГГ_hash: string[128]; //512bit: string[60];: string[30];_1: int64;//64 end;

3.4 Общая схема программного средства

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

Далее система ожидает получение очередной команды от пользователя и обрабатывает ее в зависимости от ее назначения. Пользователь может выбрать опцию шифрования/расшифрования файла или папки файлов, при этом будет создан файловый контейнер. В случае создания контейнера пользователю предоставляется возможность предварительной архивации файлов.

Общая схема программного средства представлена на Рисунке 10.

Вход в систему Создание USB-ключа

Нет

ДаДа

Рисунок 10 - Общая схема программного средства.

.5 Создание USB-ключа и нового пользователя

Если программа запущена в первый раз или пользователь выбрал команду Создать USB-ключ, запускается процедура создания USB-ключа.

На первом шаге от пользователя требуется ввести свои личные данные (Фамилию и Имя), логин и пароль для входа в систему, а также указать USB. Затем происходит проверка верности введенных данных. Требования следующие:

-длина фамилии от 7 до 50 символов;

-длина имени от 2 до 30 символов;

-длина логина от 5 до 50 символов;

-длина пароля от 8 до 30 символов.

При этом в режиме реального времени (во время ввода данных в информационные поля) происходит оценка надежности пароля, или соответствия при повторе пароля.

Если все данные введены верно, генерируется S-key: вычисляется хэш-функция в 512 бит от .

Случайным образом генерируются ключи шифрования и константа шифрования: 256-битный ключ для алгоритма RC6, 128-битный для алгоритма IDEA и 128-бит вектора инициализации. Вычисляется контрольная сумма от этих данных (CRC64_2). После чего ключи шифрования и вектор инициализации шифруется S-key путем наложения гаммы.

Берется временная метка - дата создания USB-ключа. Производится вычисление хэша доступа (LiteKey) - SHA-512 от следующих данных: логин входа в систему + пароль входа в систему + соль + id USB-ключа. При помощи хэша доступа (LiteKey) шифруются поля данных: контрольная сумма (CRC64_2), сеансовый счетчик, временная метка.

Затем от зашифрованных полей вычисляется контрольная сумма (CRC64_1).

Вычисляется контрольный хэш (ControlHash) - SHA-512 от следующих данн