Алгоритм RC6

был разработан в 1998 г. рядом специалистов научного подразделения известнейшей фирмы RSA Data Security — RSA Laboratories: Рональдом Ривестом (основатель RSA Data Security), Мэтом Робшоу, Рэем Сидни (Ray Sidney) и Икван Лайзой Ин специально для участия в конкурсе AES [389]. Алгоритм во многом унаследовал черты предыдущего алгоритма Рональда Ривеста— 64-битного блочного шифра RC5 (см. разд. 3.42), разработанного в 1997 г. [328]. Фактически алгоритм претерпел два принципиальных изменения:

?      в отличие от RC5, в алгоритме используется умножение только по модулю 2 ;

?     для сохранения 32-битных вычислений вместо разбиения шифруемого блока данных (128 битов согласно принципиальному требованию конкурса AES) на два 64-битных субблока выполняется его разбиение на 4 32-битных субблока и их обработка по несколько измененной схеме [389].

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

Как и RC5, алгоритм RC6 имеет гибкую структуру: помимо секретного ключа, параметрами являются:

?      размер слова w; алгоритм RC6 шифрует блоками по 4 слова;

?      количество раундов /?;

?      размер секретного ключа в байтах Ъ.

Аналогично RC5, для уточнения параметров алгоритма, используемых в его конкретной реализации, применяется обозначение RC6-w/R/b. Поскольку в конкурсе AES 128-битный блок являлся обязательным, значение w фиксировано и равно 32. В спецификации алгоритма [329] зафиксировано также количество раундов: R = 20. Поскольку конкурс AES допускал использование ключей трех фиксированных размеров, рассмотрим три следующих варианта алгоритма: RC6-32/20/16, RC6-32/20/24 и RC6-32/20/32, совокупность которых мы и будем далее иметь в виду, говоря об «RC6».

Структура алгоритма представлена на рис. 3.160. Как было сказано выше, в алгоритме используется 20 раундов преобразований, перед которыми выполняется частичное входное отбеливание:

где:

Процедура расширения ключа

Процедура расширения ключа алгоритма RC6 аналогична RC5, за исключением того, что алгоритму RC6 требуется несколько больше сгенерированных подключей, а именно 2/? +4, т. е. К0…К43 для 20 раундов. Рассмотрим данную процедуру для алгоритма RC6 в варианте для конкурса AES, т. е. с указанными выше фиксированными параметрами.

Расширение ключа выполняется в два этапа:

1. Инициализация массива расширенных ключей К0…К43 производится следующим образом:

где Р32 и (2з2 — псевдослучайные константы, образованные путем умножения на 2 2 дробной части и последующего округления до ближайшего нечетного целого двух математических констант и ф соответственно):

Авторы алгоритма в его спецификации [329] утверждают, что выбор данных значений не является важным. Соответственно, аналогично, например, алгоритму Twofish-FK (см. разд. 3.56), при необходимости создания реализации алгоритма RC6, не совместимой со стандартной, следует изменить значения Р32 и Q32

2. Циклически выполняются следующие действия:  где:

•                 /, у, А и В — временные переменные, их начальные значения равны нулю;

•                 KI— исходный ключ шифрования, представленный в виде с 32-битных слов.

Выполняются Зс итераций цикла.

Достоинства и недостатки алгоритма

Сравнительный анализ достоинств и недостатков алгоритмов — финалистов конкурса AES приведен в разд. 2.1.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100