Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
75
Добавлен:
24.07.2019
Размер:
440.29 Кб
Скачать

Практическая работа № 3

Алгоритм шифрования DES

теоретическая часть

Алгоритм шифрования DES (Data Encryption Standard) относится к группе методов симметричного блочного шифрования. Он действовал в США в качестве стандарта в течение 25 лет (с 1977 по 2002 гг.)

Общая схема процесса шифрования DES показана на рисунке 1.

Как и в случае любой схемы шифрования, здесь на вход функции шифрования подаётся два типа данных – открытый текст, который требуется зашифровать, и ключ. В данном случае длина открытого текста предполагается равной 64 битам, а длина ключа – 56 битам.

Из левой части рисунка 1 видно, что процесс преобразования открытого текста состоит из трёх этапов.

Сначала 64 – битный блок открытого текст а поступает для обработки на вход начальной перестановки (IP), в результате чего получаются переставленные входные данные. Затем следует этап, состоящий из 16 раундов применения одной и той же функции, в которой используются операции перестановки и подстановки.

На выходе последнего (16-го) раунда получается 64 – битная последовательность, являющаяся некоторой функцией открытого текста и ключа.

Левая и правая половины полученной последовательности данных меняются местами, образуя предрезультат.

Наконец, этот предрезультат проходит через перестановку, обратную начальной, в результате чего получается 64 – битный блок шифрованного текста.

Согласно рекомендациям Шеннона, в каждом раунде выполняется один шаг перемешивания (с использованием соответствующего раундового ключа и S-блоков), после которого следует шаг рассеивания, не зависящий от ключа. В правой части рисунка 1 показано, каким образом используется 56 – битный ключ.

Сначала к ключу тоже применяется функция перестановки.

Затем с помощью циклического сдвига влево и некоторой перестановки из полученного результата для каждого из 16 раундов генерируется под ключ K(i).

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

Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс дешифрования путём подбора ключа. Структура алгоритма DES показана на рисунке 2.

Алгоритм DES. Шаги

Итак, для того, чтобы зашифровать сообщение алгоритмом DES, необходимо выполнить следующую последовательность шагов:

  • довести исходное сообщение до такого размера (в битах), чтобы оно нацело делилось на размер блока (sizeOfBlock = 128 бит);

  • разделить исходное сообщение на блоки;

  • довести длину ключа до длины половины блока;

  • перевести ключ в бинарный формат (в нули и единицы);

  • провести над каждым блоком прямое преобразование сетью Фейстеля в течении 16-ти раундов. После каждого раунда необходимо выполнять циклический сдвиг ключа на заданное количество символов;

  • соединить все блоки вместе; таким образом получим сообщение, зашифрованное алгоритмом DES.

Расшифровка DES производится по аналогии. Используется обратное преобразование сетью Фейстеля (см. рис 1-2).

ПРАКТИЧЕСКАЯ ЧАСТЬ

  1. Создайте для разрабатываемой программы следующий интерфейс

  1. Реализуйте следующий код и проверьте работу программы

ШАГ 1: задать переменные

ШАГ 2: Зашифровать

ШАГ 3: Расшифровать

ШАГ 4: довести исходное сообщение до такого размера (в битах), чтобы оно нацело делилось на размер блока

ШАГ 5: Метод, разбивающий строку в обычном (символьном) формате на блоки.

ШАГ 6: Метод, разбивающий строку в двоичном формате на блоки.

ШАГ 7: Перевод строки в двоичный формат.

ШАГ 8: Доводим длину ключа до нужной длины.

ШАГ 9: Один раунд шифрования алгоритмом DES.

ШАГ 10: Один раунд расшифровки алгоритмом DES.

ШАГ 11: XOR двух строк с двоичными данными.

ШАГ 12: Шифрующая функция f с использованием в качестве нее также логической операции XOR.

ШАГ 13: Вычисление ключа для следующего раунда шифрования DES. Циклический сдвиг

ШАГ 14: Вычисление ключа для следующего раунда расшифровки DES. циклический сдвиг

ШАГ 15: Перевод строки с двоичными данными в символьный формат.

  1. Реализуйте функционал кнопки “Зашифровать”

  1. Реализуйте функционал кнопки “Расшифровать”

Контрольные вопросы:

  1. Что такое шифрование? Криптографическая защита информации?

  2. Что представляет собой криптоанализ?

  3. Перечислите классические методы шифрования? Опишите их.

  4. Что такое симметричные криптосистемы, их принципы?

  5. Опишите алгоритм шифрования DES.