Дипломная работа: Криптографическая защита информации 2
6. схема программы (подпрограммы, программного модуля, пакета прикладных программ),
7. схема информационной (математической и т.д.) модели,
8. схема прохождения и обработки информации,
9. формы входных и выходных документов,
10. теоретический чертеж,
11. экспериментальные данные.
2. Исследовательская часть
2.1. Постановка задачи
Данный программный продукт должен предоставлять простой и надежный способ криптографической защиты конфиденциальной информации с предоставлением доступа к данной информации посредством виртуальных логических дисков. Основные функции, которые должен выполнять продукт: создание образов файлов, их монтирование как логических дисков, осуществление взаимодействия между операционной системой и данными в образе, выгрузка образа с удалением виртуального диска из системы, надежное удаление файла образа полным затиранием содержимого. Программа должна монтировать образ на диск, который задается пользователем. Для авторизации требуется реализовать задание пароля для формирования ключа шифрования/дешифрования через диалог с пользователем при монтировании диска.
Алгоритм, выбранный для использования в шифровании, должен быть максимально надежен и устойчив к взлому. Кроме того, он должен быть достаточно быстродейственен и использовать минимум ресурсов.
2.2. Обоснование выбора темы
Данная тема была выбрана из-за того, что достаточно мало программ похожего действия, да и то они имеют один или несколько из следующих недостатков:
· Использование устаревших алгоритмов шифрование (например 1DES);
· Стоимость программ может достигать сотен долларов, что неприемлемо для массового распространения;
· Шифрование реализовано через собственный графический интерфейс пользователя, а не через интеграцию с системой, что резко сужает область применения данного программного продукта;
· Неоднозначный, зачастую непонятный интерфейс, либо слишком большое нагромождение различных функций;
· Необоснованно большой объем программного продукта вследствие добавления функций, не имеющих отношения к основной функции - шифрованию.
Исходя из этого, я решил взять именно эту тему и реализовать надежный, бесплатный, интегрирующийся в систему и интуитивно понятный в использовании продукт.
2.3. Обоснование выбора языка программирования
В качестве языка программирования был выбран язык ассемблер. Главной причиной к этому послужило то, что разработка драйверов – это сфера, в которой именно ассемблер имеет доминирующее положение и практически не имеет конкурентов. Результат компиляции драйвера, написанного на ассемблере, работает быстрее и требует меньше ресурсов, чем результат компиляции драйвера, написанного на любом языке более высокого уровня. Кроме того, благодаря возможностям MASM в плане написания кода реализация драйвера ассемблере не сложней, а подчас даже легче, чем на языках более высокого уровня.
2.4. Обоснование выбора среды разработки
Средой программирования был выбран RadAsm, как среда, написанная программистом на ассемблере для программистов на ассемблере, вследствие чего она очень удобна и функциональна и, по общественному мнению, не имеет конкурентов среди бесплатных и недорогих решений.
2.5. Обоснование выбора платформы
Платформой для разработки программного продукта была выбрана линейка операционных систем Microsoft Windows, начиная с версии Windows2000. Эта операционная система предоставляет свои широкие функциональные возможности через достаточно стандартизованный и логичный интерфейс API. Кроме того, данная операционная система и ее программные интерфейсы достаточно хорошо изучены и понятны.
2.6. Основы криптографии
Криптография дает возможность преобразовать информацию таким образом, что ее прочтение (восстановление) возможно только при знании ключа.
Все многообразие существующих криптографических методов можно свести к следующим классам преобразований:
Моно- и многоалфавитные подстановки
Наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей.
Перестановки
Также несложный метод криптографического преобразования. Используется как правило в сочетании с другими методами.
Гаммирование
Этот метод заключается в наложении на исходный текст некоторой псевдослучайной последовательности, генерируемой на основе ключа.
Блочные шифры
Представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем чистые преобразования того или иного класса в силу их более высокой криптостойкости.
Т.к. блочные шифры считаются наиболее стойкими к взлому, а также потому, что разрабатываемый драйвер будет драйвером блочного устройства, решено было выбрать в качестве алгоритма шифрования именно блочный шифр. Другие типы шрифтов в рассмотрение больше браться не будут.