ФГБОУ ВПО «Воронежский государственный технический университет»
Кафедра систем информационной безопасности
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к практическим занятиям по дисциплине «Криптографические протоколы»
для студентов специальности 090301 «Компьютерная безопасность»,
очной формы обучения
Воронеж 2014
Составитель канд. техн. наук А. Н. Мокроусов
УДК 681.326
Методические указания к практическим занятиям по дисциплине «Криптографические протоколы» для специальности 090301 «Компьютерная безопасность» очной формы обучения / ФГБОУ ВПО «Воронежский государственный технический университет»; сост. А. Н. Мокроусов. Воронеж, 2014, 44 с.
Методические указания предназначены для студентов четвертого и пятого курсов, выполняющих практические занятия по изучению основ криптографии. Рассмотрены основные методы шифрования данных.
Методические указания подготовлены в электронном виде в текстовом редакторе MS Word 2013 и содержатся в файле Мокроусов_ПЗ_Криптопротоколы.pdf.
Ил. 9. Табл. 3. Библиогр.: 10 назв.
Рецензент д-р техн. наук, проф. А. Г. Остапенко
Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. А. Г. Остапенко
Издается по решению редакционно-издательского совета Воронежского государственного технического университета
© ФГБОУ ВПО «Воронежский государственный технический университет», 2014
Практическая работа № 1 Шифрование данных в группе симметричных
блочных алгоритмов REDOC
Цель работы: изучить методы шифрования данных в алгоритмах REDOC и освоить их практическое применение.
Теоретическое введение
REDOC представляет собой группу симметричных блочных алгоритмов, в которой используются 20-байтовый (160-битовый) ключ и 10 байтный (80-битовый) блок.
В алгоритме REDOC II все манипуляции - перестановки, подстановки и XOR (логическое исключающее ИЛИ) выполняются с байтами ключа, а не с битами как во многих других алгоритмах. Эта особенность позволяет его эффективно реализовать программно. В REDOC II используются переменные табличные функции. В REDOC II используются зависимые от ключа и открытого текста наборы таблиц (по сути, S-блоки). В REDOC II 10 этапов, каждый этап представляет собой сложную последовательность манипуляций с 10-байтовым блоком.
Другой уникальной особенностью является использование масок, которые являются числами, полученными из таблицы ключей, и используются для выбора таблиц данной функции для данного этапа. Для выбора таблиц функции используются как значение данных, так и маски.
Алгоритм REDOC III
Существует значительно упрощенная версия алгоритма REDOC II - REDOC III, созданная Майклом Вудом. Используется также 80-битный блок, длина ключа переменна, может достигать 2560 байт (20480 бит). Перестановки и подстановки исключены, все операции над блоком и ключом основаны лишь на применении XOR, за счет чего значительно
увеличена скорость шифрования в ущерб стойкости к дифференциальному криптоанализу. Основой алгоритма являются генерированные на основе секретного ключа 256 10байтовых ключей, и полученные на основе XOR 128 10байтовых ключей и два 10-байтовых блока маски. Для успешного восстановления обеих масок алгоритма REDOC III требуется 223 открытых текстов.
Алгоритм зашифрования REDOC III
1)Создать таблицу ключей из 256 10-байтовых ключей, используя секретный ключ.
2)Создать два 10-байтовых блока маски M1 и M2, где M1 представляет собой XOR первых 128 10-байтовых ключей,
аM2 - XOR вторых 128 10-байтовых ключей.
3)Для шифрования 10-байтового блока:
а) Выполнить XOR для первого байта блока данных и первого байта M1. Выбрать ключ из таблицы ключей, рассчитанной на 1 этапе, используя вычисленное значение в качестве индекса таблицы. Выполнить XOR каждого, кроме первого, байта блока данных с соответствующим байтом выбранного ключа.
б) Выполнить XOR для второго байта блока данных и второго байта M1. Выбрать ключ из таблицы ключей, рассчитанной на 1 этапе, используя вычисленное значение в качестве индекса таблицы. Выполнить XOR каждого, кроме второго, байта блока данных с соответствующим байтом выбранного ключа.
в) Продолжать для всего блока данных (для байтов с 3 по 10), пока каждый байт не будет использован для выбора ключа из таблицы после выполнения для него XOR с соответствующим значением M1. Затем выполнить XOR с ключом для каждого, кроме использованного для выбора ключа, байта.
г) Повторить для M2 этапы (а) – (в).
2
Создание таблицы ключей
Таблица ключей, используемая в алгоритме шифрования REDOC III, строится на основании секретного ключа и генератора псевдослучайных чисел (ГПСЧ).
Заполнение таблицы осуществляется циклически и состоит из 35 шагов.
На каждом шаге объединяются пары двух символов секретного ключа по порядку в одно 2 байтовой значение, причем одна пара за один шаг. Полученное значение используется для инициализации ГПСЧ.
После того, как ГПСЧ инициализирован, производится циклическое заполнение таблицы ключей, состоящей из 2560 элементов. Каждый последующий элемент является псевдослучайным числом, сгенерированным ГПСЧ. Сгенерированное число записывается по индексу k n, где k – номер шага заполнения, а n – простое число, выбранное из табл.1 по номеру шага создания таблицы ключей.
|
|
|
|
|
|
Таблица 1 |
|
1 |
3 |
5 |
7 |
11 |
13 |
|
17 |
19 |
23 |
29 |
31 |
37 |
41 |
|
43 |
47 |
53 |
59 |
61 |
67 |
71 |
|
73 |
79 |
83 |
89 |
97 |
101 |
103 |
|
107 |
109 |
113 |
127 |
131 |
137 |
139 |
|
149 |
Алгоритм расшифрования REDOC III
Алгоритм расшифрования заключается в последовательном выполнении описанных в алгоритме зашифрования действий.
1)Создать таблицу ключей из 256 10-байтовых ключей, используя секретный ключ.
2)Создать два 10-байтовых блока маски M1 и M2, где M1 представляет собой XOR первых 128 10-байтовых ключей,
аM2 - XOR вторых 128 10-байтовых ключей.
3