Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР4-5_ПРО3_ЗИ_2020-21.doc
Скачиваний:
6
Добавлен:
25.11.2022
Размер:
5.56 Mб
Скачать

2.3Алгоритм rc5

Алгоритм разработан известнейшим криптологом Рональдом Ривестом - одним из разработчиков асимметричной системы RSA. Аналогично предыдущим алгоритмам шифрования Рона Ривеста RC2 и RC4 (является потоковым шифром), алгоритм RC5 получил весьма широкое распространение.

На преобразованиях, используемых в RC5, основана последующая разработка компании RSA - алгоритм RC6, который стал финалистом конкурса AES по выбору нового стандарта шифрования США.

2.3.1 Структура алгоритма

Часть основных параметров алгоритма RC5 являются переменными. Помимо секретного ключа, параметрами алгоритма являются следующие:

  • размер слова w (в битах); RC5 шифрует блоками по два слова; допустимыми значениями w являются 16, 32 или 64, причем 32 является рекомендуемым;

  • количество раундов алгоритма R в качестве значения допустимо любое целое число от 0 до 255 включительно;

  • размер секретного ключа в байтах b - любое целое значение от 0 до 255 включительно.

Наиболее часто для уточнения параметров алгоритма, используемых в его конкретной реализации, применяется обозначение RC5-w/R/b; например, RC5-32/12/16 обозначает RC5 с 64-битным блоком, 12 раундами и 128-битным (16-байтным) ключом.

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

Предусмотрена в алгоритме и проблема совместимости реализаций RC5 с различными параметрами - каждое зашифрованное сообщение рекомендуется предварять заголовком, содержащим список значений основных параметров алгоритма - предполагается, что в этом случае для расшифровывания сообщения следует установить параметры из заголовка, после чего (при наличии корректного ключа) сообщение легко будет расшифровано.

Рис. 45. Структура алгоритма RC5

Структура алгоритма представлена на рис. 45. Алгоритм представляет собой сеть Фейстеля, в каждом раунде которой выполняются следующие операции:

(29)

, (30)

где r - номер текущего раунда, начиная с 1,

- фрагмент расширенного ключа,

n - операция циклического сдвига на х битов влево, где x - значение младших log2w битов п.

Перед первым раундом выполняются операции наложения двух первых фрагментов расширенного ключа на шифруемые данные:

, (31)

(32)

Под словом «раунд» в описании алгоритма понимаются преобразования, соответствующие двум раундам обычных алгоритмов, структура которых является сетью Фейстеля (рис.З).

То есть раунд алгоритма RC5 обрабатывает блок целиком, тогда как типичный раунд сети Фейстеля обрабатывает только один субблок - обычно половину блока.

Алгоритм поразительно прост - в нем используются только операции сложения по модулю 2 и по модулю 2w, а также сдвиги на переменное число битов. Сдвиг на переменное число битов является весьма просто реализуемой операцией, которая, однако, существенно усложняет дифференциальный и линейный криптоанализ алгоритма. Простота алгоритма может рассматриваться как его важное достоинство - простой алгоритм легче реализовать и легче анализировать на предмет возможных уязвимостей.

Расшифровывание выполняется применением обратных операций в обратной последовательности, т.е. в каждом раунде r (с обратной последовательностью раундов) выполняются следующие операции:

(33)

(34)

где »п - аналогичная описанной выше («п) операция побитового циклического сдвига вправо.

Соответственно, после R раундов выполняются следующие операции:

(35)

(36)

Алгоритм RC5 и некоторые его варианты являются запатентованными.