Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 700218.doc
Скачиваний:
28
Добавлен:
01.05.2022
Размер:
1.36 Mб
Скачать

Шифрование данных в группе симметричных блочных алгоритмов redoc.

Цель работы: изучить методы шифрования данных в алгоритмах REDOC и освоить их практическое применение.

Теоретическое введение

REDOC представляет собой группу симметричных блочных алгоритмов, в которой используются 20-байтовый (160-битовый) ключ и 10 байтный (80-битовый) блок.

В алгоритме REDOC II все манипуляции - перестановки, подстановки и XOR (логическое исключающее ИЛИ) выполняются с байтами ключа, а не с битами как во многих других алгоритмах. Эта особенность позволяет его эффективно реализовать программно. В REDOC II используются переменные табличные функции. В REDOC II используются зависимые от ключа и открытого текста наборы таблиц (по сути, S-блоки). В REDOC II 10 этапов, каждый этап представляет собой сложную последовательность манипуляций с 10-байтовым блоком.

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

Алгоритм redoc III

С

2

уществует значительно упрощенная версия алгоритма 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 каждого, кроме первого, байта блока данных с соответствующим байтом выбранного ключа.

б

3

4

) Выполнить XOR для второго байта блока данных и второго байта M1. Выбрать ключ из таблицы ключей, рассчитанной на 1 этапе, используя вычисленное значение в качестве индекса таблицы. Выполнить XOR каждого, кроме второго, байта блока данных с соответствующим байтом выбранного ключа.

в) Продолжать для всего блока данных (для байтов с 3 по 10), пока каждый байт не будет использован для выбора ключа из таблицы после выполнения для него XOR с соответствующим значением M1. Затем выполнить XOR с ключом для каждого, кроме использованного для выбора ключа, байта.

г) Повторить для M2 этапы (а) – (в).