КУРСОВАЯ РАБОТА Разработка алгоритма криптографического сжатия данных Выполнил:

advertisement
КУРСОВАЯ РАБОТА
Разработка алгоритма криптографического сжатия данных
Выполнил:
студентка группы ИБб-121
Кожевникова И.С.
Научный руководитель:
доцент кафедры ИБ ВолГУ, к.т.н.
Никишова А.В.
ВВЕДЕНИЕ
В настоящее время очень часто требуется не только зашифровать
данные, но и сделать их хранение и передачу как можно более эффективной.
На практике, задача сжать и зашифровать файл решается напрямую – сначала
данные сжимаются каким-нибудь известным методом, а затем шифруются
блочным шифром.
Алгоритмы сжатия позволяют не только эффективно хранить
конфиденциальные данные, но и значительно уменьшить размер программы,
которую за один прием можно загрузить в память и исполнить. Существует
большое
количество
различных
упаковщиков
исполняемых
файлов,
некоторые их них содержат реализации алгоритмов шифрования. Но ни в
одном из них алгоритм шифрования никак не связан с алгоритмом сжатия.
Они реализованы как отдельные алгоритмы и используются раздельно.[10]
Возможно, что раздельное существование алгоритмов сжатия и
шифрования связано с существованием различных целей сжатия и
шифрования. Сжатие - это процесс устранения избыточности представления
информации. Шифрование же, наоборот, стремится увеличить энтропию
выходных данных с тем, чтобы криптоаналитик не имел возможности
использовать статистические зависимости шифротекста для проведения
успешного криптоанализа. Таким образом, можно прийти к выводу, что
более удобным и практичным способом сжатия и зашифрования данных
будет применение некоторого единого алгоритма, выполняющего функции
зашифрования и сжатия одновременно.[20]
Была
поставлена
следующая
цель
разработать
-
алгоритм
криптографического сжатия данных.
Для достижения поставленной цели решаются следующие задачи:
1.
Провести
анализ
криптографических
преобразований
для
выявления основных;
2. Провести
анализ методов сжатия данных для выявления
наилучшего;
3. Провести анализ выбранного метода сжатия для выявления
преобразований, подлежащих модификации;
4.
Определить
цели
и
задачи
программного
средства
криптографического сжатия данных;
5. Разработать проект системы криптографического сжатия данных;
6.
Разработать
архитектуру
программного
средства
криптографического сжатия данных;
7.
Разработать
алгоритмы
модулей
программного
средства
криптографического сжатия данных;
8.
Разработать
методики
работы
с
программным
средством
криптографического сжатия данных;
9. Провести экспериментальные исследования криптографического
сжатия данных с помощью разработанного программного средства;
9.1. Поставить задачи на экспериментальные исследования;
9.2. Провести экспериментальные исследования;
9.3. Провести анализ результатов экспериментальных исследований.
ЗАКЛЮЧЕНИЕ
В ходе работы были решены следующие задачи:
Проведен
1.
анализ
криптографических
преобразований
для
выявления основных:
 Подстановка
 Перестановка
 Криптопреобразование Адамара
Для
проведения
криптографического
сжатия
в
качестве
криптографической операции была выбрана операция подстановки, т.к. ее
совместное использование вместе с алгоритмом сжатия дает наилучшие
показания качества сжатия и стойкости шифра.
Рассмотрены таблицы замены основных стандартов шифрования:

ГОСТ 28147-89

AES
Была выбрана таблица ГОСТ 28147-89, т.к. при ее использовании
замена осуществляется не однозначно, и для каждого 4 бита символа
(половины символа) существует 8 равновероятных вариантов замены.
2.
Проведен анализ методов сжатия данных для выявления
наилучшего:

кодирование Хаффмана;

адаптивное кодирование Хаффмана;

арифметическое кодирование;

адаптивное арифметическое кодирование.
Выделены их достоинства и недостатки, и в качестве метода сжатия,
используемого
в
разработанном
программном
комплексе,
выбрано
кодирование Хаффмана, т.к. оно обладает лучшей совокупностью степени и
скорости сжатия.
3.
Проведен анализ выбранного метода сжатия для выявления
преобразований, подлежащих модификации:
Был составлен алгоритм работы метода Хаффмана:
1.
Расчет и упорядочивание частот появления символов;
2.
Построение дерева Хаффмана;
3.
Кодирование, считывание битов по дереву, пока не достигнем
4.
Декодирование.
листа;
Было решено, что операция подстановка будет проводиться на шаге 3
процесса сжатия файла, а расшифровка файла будет происходить в процессе
разсжатия, т.е. на шаге 4.
4.
Определены
цели
и
задачи
программного
средства
криптографического сжатия данных.
Разрабатываемая программа должна выполнять следующие функции:

Взаимодействие с пользователем;

Строить дерево Хаффмана;

Выполнять
криптографическую
операцию
подстановки
по
таблице ГОСТ 28147-89;

Выполнять кодирование по дереву;

Выполнять декодирование;

Выполнять обратную подстановку по таблице;

Рассчитывать частоту появления символа в сжатом тексте;

Записывать результаты в файл.
5. Разработан проект системы криптографического сжатия данных;
6.
Разработана
архитектура
программного
средства
криптографического сжатия данных, состоящая из следующих модулей:

Модуль построения дерева Хаффмана

Модуль шифрования

Модуль кодирования

Модуль декодирования

Модуль дешифрования

Модуль статистики
7.
Разработаны
алгоритмы
криптографического сжатия данных:
модулей
программного
средства
1) Алгоритм модуля построения дерева Хаффмана:
2) Алгоритм модуль сжатия данных:
3) Алгоритм модуль шифрования данных:
4) Алгоритм модуль разсжатия данных:
5) Алгоритм модуль расшифрования данных:
6) Алгоритм модуль статистики появления символов
8.
Разработана
методика
работы
с
программным
средством
криптографического сжатия данных;
9. Поставлены задачи на экспериментальные исследования:
10. Проведены экспериментальные исследования;
11. Проанализированы результаты экспериментальных исследований:
Статистическая вероятность символов после криптографического
сжатия показала лучшие результаты, чем при простом сжатии данных.
Среднеквадратичное отклонение текста подвергнутого криптографическому
сжатию на 0,0063 меньше чем у сжатого.
При проверке свойства стойкости к разностному анализу результаты
для криптографического сжатия оказались лучше, чем у сжатого.
Модификация алгоритма сжатия методом Хаффмана с помощью
криптографической операции подстановка дала лучшие результаты при
проверке свойств, характерных для криптографических данных, чем для
алгоритма сжатия. Модификация метода сжатия позволила не только
уменьшать объем памяти, занимаемой данными на ЭВМ, но и приблизить
полученный
алгоритм
криптографического
сжатия
алгоритмам шифрования.
Отсканированная зачётная книжка на следующем листе.
к
криптостойким
Download