Алгоритм шифрования/хеширования двоичных файлов на основе сети Фейстеля: принцип работы, реализация, скорость работы

Шифрование - широко используемый криптографический метод сохранения конфиденциальности информации. Описание схемы шифрования и расшифрования. Структура алгоритмов на основе сети Фейстеля. Скриншоты работающей программы. Скорость работы алгоритмов.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 29.11.2010
Размер файла 545,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

Дальневосточный государственный технический университет

(ДВПИ им. В.В. Куйбышева)

Кафедра конструирования и производства радиоаппаратуры

Пояснительная записка к курсовой работе

по дисциплине

«Информационная безопасность и защита информации»

на тему:

АЛГОРИТМ ШИФРОВАНИЯ/ХЕШИРОВАНИЯ ДВОИЧНЫХ ФАЙЛОВ НА ОСНОВЕ СЕТИ ФЕЙСТЕЛЯ: ПРИНЦИП РАБОТЫ, РЕАЛИЗАЦИЯ, СКОРОСТЬ РАБОТЫ

Выполнил

студент группы Р-7791

Павловский М.И.

2010

СОДЕРЖАНИЕ

  • ВВЕДЕНИЕ
  • 1 ОПИСАНИЕ СХЕМЫ ШИФРОВАНИЯ
  • 2 ОПИСАНИЕ СХЕМЫ РАСШИФРОВАНИЯ
  • 3 СКРИНШОТЫ РАБОТАЮЩЕЙ ПРОГРАММЫ
  • 4 СКОРОСТЬ РАБОТЫ АЛГОРИТМОВ
  • ЗАКЛЮЧЕНИЕ
  • ВВЕДЕНИЕ
  • Шифрование является наиболее широко используемым криптографическим методом сохранения конфиденциальности информации, он защищает данные от несанкционированного ознакомления с ними.
  • Криптография - наука о защите информации с использованием математических методов. Существует и наука, противоположная криптографии и посвященная методам вскрытия защищенной информации - криптоанализ. Совокупность криптографии и криптоанализа принято называть криптологией. Криптографические методы могут быть классифицированы различным образом, но наиболее часто они подразделяются в зависимости от количества ключей, используемых в соответствующих криптоалгоритмах:

1. Бесключевые - в них не используются какие-либо ключи.

2. Одноключевые - в них используется некий дополнительный ключевой параметр - обычно это секретный ключ.

3. Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.

В данной курсовой работе необходимо разработать алгоритм шифрования, основанный на сети Фейстеля.

Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаще всего - на два), один из которых обрабатывается некоей функцией f() и накладывается на один или несколько остальных субблоков. На рис.1 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.

Рисунок 1 - Структура алгоритмов на основе сети Фейстеля

Дополнительный аргумент функции f(), обозначенный на рис. 1 как Ki, называется ключом раунда. Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции «исключающее или» - XOR (как показано на рис. 1). Достаточно часто вместо XOR здесь используется сложение по модулю 2n, где n - размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

1 ОПИСАНИЕ СХЕМЫ ШИФРОВАНИЯ

Рисунок 2 - Схема шифрования

Сделаем подробное описание вышеприведенной схемы.

Считываем из файла два блока по одному байту (left и right).

Затем берем правый блок и выполняем перестановку битов в данном блоке по следующему принципу: 1 бит - 5 бит, 2 бит - 7 бит, 3 бит - 6 бит, 4 бит - 8 бит.

Ключ, обозначенный буквой K, представляет собой массив из 4 элементов по одному байту, каждый из которых используется в одной из четырех итераций.

Затем выполняем сложение по модулю 256 ключа и числа, полученного после перестановки в правом блоке. Сложение выполняется по следующей формуле:

(1)

Затем с результатом c, полученным после сложения по модулю 256, производим операцию XOR (исключающее «или») с левым блоком (left), считанным из файла.

(2)

Следующая операция - это циклический сдвиг на 2 бита влево, т.е. первые 2 бита числа d станут последними. Данная операция реализуется с помощью двух побитных сдвигов:

(3)

Теперь мы имеем измененный левый блок (left) и исходный правый блок (right). Меняем эти блоки местами, т.е. правый станет левым, а измененный левый правым.

Проводим 4 такие итерации и записываем полученные блоки в зашифрованный файл: сначала полученный левый блок, а затем полученный правый блок.

Таким алгоритмом шифруем весь файл. Если файл состоит из нечетного числа байт, то в последнем блоке вместо правого блока берем ноль и в конец зашифрованного файла также записываем еще один ноль, чтобы правильно расшифровать полученный файл.

3 ОПИСАНИЕ СХЕМЫ РАСШИФРОВАНИЯ

Рисунок 3 - Схема расшифрования

Сделаем подробное описание вышеприведенной схемы.

Считываем из зашифрованного файла два блока по одному байту (left и right).

Берем правый блок и производим с ним операцию циклического сдвига на 2 бита вправо, т.е. последние 2 бита числа right станут первыми. Данная операция реализуется с помощью двух побитных сдвигов:

(4)

Затем берем левый блок и выполняем перестановку битов в данном блоке по следующему принципу: 1 бит - 5 бит, 2 бит - 7 бит, 3 бит - 6 бит, 4 бит - 8 бит.

Ключ, обозначенный буквой K, представляет собой массив из 4 элементов по одному байту, каждый из которых используется в одной из четырех итераций.

Затем выполняем сложение по модулю 256 ключа и числа, полученного после перестановки в левом блоке. Сложение выполняется по следующей формуле:

(5)

Затем с результатом c, полученным после сложения по модулю 256, производим операцию XOR (исключающее «или») с правым блоком над которым произвели циклический сдвиг d.

(6)

Теперь мы имеем измененный правый блок (right) и исходный левый блок (left). Меняем эти блоки местами, т.е. левый станет правым, а измененный правый левым.

Проводим 4 такие итерации и записываем полученные блоки в зашифрованный файл: сначала полученный левый блок, а затем полученный правый блок.

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

3 СКРИНШОТЫ РАБОТАЮЩЕЙ ПРОГРАММЫ

Рисунок 4 - Окно программы при открытии (программа готова к работе)

Рисунок 5 - Шифрование файла

На данном этапе мы выбрали файл для шифрования. Путь к данному файлу записан в первом textBox'е. Прогресс бар показывает процесс шифрования: сколько байт обработано в процентах.

Рисунок 6 - Шифрование завершено

Шифрование файла завершено. Выведена скорость шифрования в мегабайтах в секунду. Прогресс бар полностью заполнен (100%). Также выведен хэш файла для шифрования для последующего сравнения с хэшем расшифрованного файла.

Рисунок 7 - Расшифрование файла

На данном этапе мы выбрали файл для расшифрования (файл, который получился в результате шифрования). Путь к данному файлу записан во втором textBox'е. Прогресс бар показывает процесс расшифрования: сколько байт обработано в процентах.

Рисунок 8 - Расшифрование завершено

Расшифрование файла завершено. Выведена скорость расшифрования в мегабайтах в секунду (почти совпадает со скоростью при шифровании). Прогресс бар полностью заполнен (100%). Также выведен хэш расшифрованного файла. Он равен хэшу исходного файла, значит расшифрование выполнено верно.

4 СКОРОСТЬ РАБОТЫ АЛГОРИТМОВ

Скорость работы для алгоритмов шифрования и расшифрования рассчитывается аналогично по следующей формуле:

, (7)

где

- скорость шифрования/расшифрования в мегабитах в секунду;

- размер файла в мегабайтах;

- время на момент окончания шифрования/расшифрования;

- время на момент начала шифрования/расшифрования;

- время шифрования/расшифрования, выраженное в секундах;

В данной курсовой работе при шифровании и расшифровании файла длиной 14,2МБ была получена скорость, приблизительно равная 0,16 МБ/сек.

Тестирование производилось на компьютере со следующей конфигурацией:

Объем оперативной памяти: 1 ГБ;

Частота процессора: 2,66 ГГц.

ЗАКЛЮЧЕНИЕ

На сети Фейстеля основано большинство современных алгоритмов шифрования - благодаря множеству преимуществ подобной структуры, среди которых стоит отметить следующие:

1. Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма - разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами;

2. Алгоритмы на основе сети Фейстеля являются наиболее изученными - таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом, как при разработке алгоритма, так и при его анализе.


Подобные документы

  • Алгоритм ГОСТ 28147-89 симметричного шифрования на основе сети Фейстеля, основные режимы его работы. Атаки на системы защиты информации. Метод грубой силы. Атаки класса "встреча посередине". Характеристики ГОСТ 28147-89 и американского шифра Rijndael.

    курсовая работа [510,7 K], добавлен 17.01.2012

  • Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.

    курсовая работа [795,7 K], добавлен 02.12.2014

  • Сравнение производительности программных реализаций алгоритмов шифрования с оптимизациями под языки С и Java. История разработки, сущность, принципы шифрования и успехи в криптоанализе таких алгоритмов шифрования как AES, RC4, RC5, RC6, Twofish и Mars.

    реферат [1,3 M], добавлен 13.11.2009

  • Шифрование как метод защиты информации. История развития криптологии. Классификация алгоритмов шифрования, симметричные и асимметричные алгоритмы. Использование инструментов криптографии в Delphi-приложениях. Краткая характеристика среды Delphi 7.

    курсовая работа [48,5 K], добавлен 19.12.2009

  • Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".

    курсовая работа [3,3 M], добавлен 11.03.2013

  • Шифрование с использованием симметричных алгоритмов. Генерация зарытого ключа для асимметричных алгоритмов шифрования. Применение асимметричных алгоритмов шифрования. Управление цифровыми сертификатами и управление списками отзыва сертификатов.

    учебное пособие [677,6 K], добавлен 13.10.2015

  • Применение алгоритмов шифрования и дешифрования данных в компьютерной технике в системах сокрытия конфиденциальной и коммерческой информации от злонамеренного использования сторонними лицами. Классический пример - симметричные криптографические алгоритмы.

    дипломная работа [44,9 K], добавлен 08.07.2009

  • Шифрование и дешифрование с помощью сети Фейстеля. Процесс блочного преобразования открытой информации в зашифрованную информацию. Таблица перевода чисел и букв. Криптостойкость шифра как показатель его эффективности. Подстановки и перемещение битов.

    курсовая работа [475,6 K], добавлен 30.12.2013

  • Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.

    курсовая работа [314,2 K], добавлен 27.01.2015

  • Реализация алгоритма DES и режимов шифрования для любой длины сообщения и любой длины ключа. Шифрование сообщений различной длины и ключа с замериванием времени и скорости шифрования. Реализация алгоритма RSA. Сохранение зашифрованного файла на диск.

    курсовая работа [398,4 K], добавлен 26.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.