Защита информации от несанкционированного доступа
2 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовому проекту на тему: "Защита информации от несанкционированного доступа" по курсу "Кодирование и защита информации" 2004 АННОТАЦИЯ Пояснительная записка содержит описание разработанной программы и руководство по ее использованию. Также в ней приводится описание используемых методов шифрования информации. СОДЕРЖАНИЕ - АННОТАЦИЯ
- ВВЕДЕНИЕ
- 1 Постановка задачи
- 2 Основные понятия
- 3 Выбор методов шифрования
- 4 Программная реализация
- Общее описание
- Дополнительные модули
- 5 Руководство пользователя
- ЗАКЛЮЧЕНИЕ
- БИБЛИОГРАФИЧЕСКИЙ СПИСОК
- ПРИЛОЖЕНИЕ А
- Введение
В настоящее время большое внимание уделяется информации, недаром наш век называют «информационным». Во время того, как люди познают технологии хранения и передачи информации, встает вопрос о ее защите от несанкционированного доступа. Для решения этой проблемы было разработано большое количество разнообразных методов кодирования информации, которые могут быть реализованы программно. Данная разработка представляет собой программный модуль, обеспечивающий шифрование и расшифровывание информационных блоков. 1. Постановка задачи Необходимо разработать программу для шифрования и расшифровывания файлов на основе настроек пользователя. Для шифрования использовать ГОСТ 28147-89. Разработать удобный интерфейс общения с пользователем. Поставить программу на платформу Windows, что обеспечит ее расширение, дополнение и удобство использования. 2. Основные понятия В данной работе будет рассматриваться защита информации, хранящейся в электронном виде, от несанкционированного доступа. Для обеспечения секретности информации используются следующие методы: - хранение на съемном носителе; - ограничение доступа к системе; - хранение в зашифрованном виде; Комбинированием этих средств защиты можно добиться относительно хорошей защищенности информации. Невозможно абсолютно защитить информацию от несанкционированного доступа (взлома). Любой из этих способов поддается взлому в некоторой степени. Вопрос в том, будет ли выгодно взламывать или нет. Если затраты ресурсов на защиту (стоимость защиты) больше чем затраты на взлом, то система защищена плохо. Данная разработка является криптографической частью системы защиты - она зашифровывает и расшифровывает информацию, поэтому ниже будут приведены только основные понятия криптографии. Шифр - последовательность операций, проводимых над открытыми (закрытыми) данными и ключом с целью получения закрытой (открытой) последовательности. Ключ - конкретное для каждого нового кода значение каких-нибудь характеристик алгоритма криптографической защиты. Гамма шифра - это некоторая псевдослучайная последовательность заданной длины, используемая для шифрования. Гаммирование - процес наложения гаммы шифра на открытые данные. Зашифровывание - процесс преобразования открытых данных в закрытые с помощью шифра и ключа. Расшифровывание - процедура преобразования закрытых данных в открытые с помощью шифра и ключа. Шифрование - зашифровывание и (или) расшифровывание. Дешифрование - совокупность действий по преобразованию закрытых данных в открытые без знания ключа и (или) алгоритма зашифровывания. Имитозащита - защита от ложной информации. Осуществляется по собственным алгоритмам, с помощью выработки имитовставки. Имитовставка - последовательность данных определенной длины, полученных специальными методами гаммирования из открытых исходных данных. Содержимое имитовставки является эталоном для проверки всей остальной информации. 3. Выбор методов шифрования Для шифрования информации в программу встроены следующие алгоритмы: - ГОСТ 28147-89 - стандарт шифрования Российской Федерации. В программе используется два режима кодирования - режим простой замены и режим гаммирования. Данные кодируются по 64 бита (8 байт) с помощью 256-битного (32-байтного) ключа. - Два простых метода, вложенных как пример построения модулей для программы. Кодирование по 64 бит, ключ - 64 бит. Программа может быть дополнена алгоритмами кодирования, т.е. рекомпилирована с дополнительными модулями. В дальнейших версиях предполагается создание модульных расширений (plug-in) для программы, которые будут содержать дополнительные алгоритмы криптографических преобразований. Рассмотрим подробнее алгоритм криптографического преобразования ГОСТ 28147-89. Ключ состоит из восьми 32-битных элементов, рассматриваемых как беззнаковые целые числа. Таким образом, ключ составляет 256 бит или 32 байта. При шифровании используется таблица замен, являющейся матрицей 8х16, содержащей 4-битовые элементы (числа от 0 до 15). Основной шаг криптопреобразования - оператор, определяющий преобразование 64-битового блока. Дополнительным параметром этого оператора является 32-битный блок, в качестве которого используется какой - либо элемент ключа. Алгоритм основного шага криптопреобразования Рисунок 3.1 Схема основного шага криптопреобразования алгоритма ГОСТ 28147-89. Определяет исходные данные для основного шага криптопреобразования: N -преобразуемый 64-битовый блок данных, в ходе выполнения шага его младшая (N1) и старшая (N2) части обрабатываются как отдельные 32-битовые целые числа без знака. Таким образом, можно записать N=(N1,N2). X - 32-битовый элемент ключа; Сложение с ключом. Младшая половина преобразуемого блока складывается по модулю 232 с используемым на шаге элементом ключа, результат передается на следующий шаг; Поблочная замена. 32-битовое значение, полученное на предыдущем шаге, интерпретируется как массив из восьми 4-битовых блоков кода: S=(S0,S1,S2,S3,S4,S5,S6,S7). Далее значение каждого из восьми блоков заменяется на новое, которое выбирается по таблице замен следующим образом: значение блока Si заменяется на Si-тый по порядку элемент (нумерация с нуля) i-того узла замен (т.е. i-той строки таблицы замен, нумерация также с нуля). Другими словами, в качестве замены для значения блока выбирается элемент из таблицы замен с номером строки, равным номеру заменяемого блока, и номером столбца, равным значению заменяемого блока как 4-битового целого неотрицательного числа. Циклический сдвиг на 11 бит влево. Результат предыдущего шага сдвигается циклически на 11 бит в сторону старших разрядов и передается на следующий шаг. На схеме алгоритма символом ?11 обозначена функция циклического сдвига своего аргумента на 11 бит в сторону старших разрядов. Побитовое сложение: значение, полученное на шаге 3, побитно складывается по модулю 2 со старшей половиной преобразуемого блока. Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается на место старшей, а на ее место помещается результат выполнения предыдущего шага. Полученное значение преобразуемого блока возвращается как результат выполнения алгоритма основного шага криптопреобразования. Базовые циклы: - цикл выработки имитовставки (0123456701234567) Для каждого элемента данных выполняется основной шаг криптографического преобразования с элементами ключа, порядок Базовые циклы построены из основных шагов криптографического преобразования. Существует всего три базовых цикла, различающиеся порядком следования ключевых элементов: - цикл зашифрования (01234567012345670123456776543210) - цикл расшифрования (01234567765432107654321076543210) следования которых приведен выше. Для циклов шифрования левая и правая половины блока меняются местами, для цикла выработки имитовставки - нет. Предусматривается три режима шифрования данных: простая замена, гаммирование, гаммирование с обратной связью и один дополнительный редим формирования имитовставки. Рис. 4. Алгоритм зашифрования (расшифрования) данных в режиме гаммирования. Режим простой замены - наиболее простой. Блоки данных по 64 бит проходят базовый цикл зашифрования (расшифрования). Результат - зашифрованная (расшифрованная информация). При таком режиме блоки независимы. Режим гаммирования - чтобы блоки информации были зависимы друг от друга используется рекуррентный генератор последовательности чисел, который инициализируется синхропосылкой, прошедшей цикл зашифрования. Схема алгоритма шифрования в режиме гаммирования приведена на рисунке 3.2, ниже изложены пояснения к схеме: Определяет исходные данные для основного шага криптопреобразования: Tо(ш) - массив открытых (зашифрованных) данных произвольного размера, подвергаемый процедуре зашифрования (расшифрования), по ходу процедуры массив подвергается преобразованию порциями по 64 бита; S - синхропосылка, 64-битный элемент данных, необходимый для инициализации генератора гаммы; Начальное преобразование синхропосылки, выполняемое для ее «рандомизации», то есть для устранения статистических закономерностей, присутствующих в ней, результат используется как начальное заполнение РГПЧ; Один шаг работы РГПЧ, реализующий его рекуррентный алгоритм. В ходе данного шага старшая (S1) и младшая (S0) части последовательности данных вырабатываются независимо друг от друга; Гаммирование. Очередной 64-битный элемент, выработанный РГПЧ, подвергается процедуре зашифрования по циклу 32-З, результат используется как элемент гаммы для зашифрования (расшифрования) очередного блока открытых (зашифрованных) данных того же размера. Результат работы алгоритма - зашифрованный (расшифрованный) массив данных. 4. Программная реализация 4.1 Общее описание Для разработки программы были выбраны языки программирования Delphi 5.0 (Object Pascal) - разработка удобного интерфейса и встроенный ассемблер - для написания, собственно, алгоритмов шифрования. Проект состоит из девяти модулей: GOST, K1, K2 - реализация алгоритмов ГОСТ 28147-89 и тестовых методов шифрования. CodingTools, CodingUnit - модули, реализующие вспомогательные алгоритмы и типы данных. OptionsUnit, ProgressUnit, TestUnit - модули, описывающие интерфейс с пользователем. Hazard - основной модуль программы. Создает окна и запускает программу. Программа использует три формы (окна), созданные с помощью среды Delphi. Основная форма TestForm, содержит список файлов и кнопки запуска процесса шифрования, выхода, вызова окна настроек, добавления и очистки списка (рисунок 4.1). Окно настроек содержит списки поддерживаемых и применяемых методов шифрования, поле описания метода и поле ввода ключа (рисунок 4.2). Третье окно - ProgressForm появляется при запуске процесса кодирования и состоит из двух надписей и двух индикаторов. Рисунок 4.1 - Интерфейс программы 4.2 Дополнительные модули Модуль CodingTools содержит описание типов для 64,48 и 32-разрядных чисел и процедуры их обработки: сложение по модулю 2, &, |, кодирование по таблице, разложение на числа меньшей разрядности. Также он содержит описания параметров кодирования и тип-шаблон функции шифрования. Модуль CodingUnit содержит список встроенных алгоритмов и общие функции: обработка командной строки, подбор функции шифрования, шифрование файла, процедуры поиска функций по имени или индексу, поиск ошибок и оповещение. Модули методов экспортируют каждый по две процедуры - шифрование и дешифрацию блоков по 64К. 5. Руководство пользователя Программа работает под управлением ОС Windows 95/98/ME и требует правильной инсталляции. После инсталляции программу можно запустить из меню «Пуск» либо из командной строки эмуляции MS-DOS. Командная строка имеет следующий вид: Hazard.exe [/D] [путь к файлу [путь к файлу […]]] /D - дешифрование Чтобы запустить программу в режиме шифрования или дешифрования из графической оболочки Windows нужно воспользоваться соответствующими ярлыками из меню «Программы». Чтобы добавить файлы в список шифрования/дешифрования можно воспользоваться соответствующей кнопкой на главной панели программы, либо «перетащить» их из окна проводника Windows. Чтобы выбрать алгоритм шифрования нужно нажать кнопку «Настройки». Появится окно со списками поддерживаемых и применяющихся методов и полем ввода ключа. После выбора методов программа рассчитает окончательный ключ, который может быть использован для расшифровывания файлов. Можно не запоминать окончательный ключ, в таком случае необходимо запомнить ключи каждого из выбранных методов и при расшифровывании сделать соответствующие настройки.
Страницы: 1, 2, 3, 4
|