Алгоритм RC6

 

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

RC6 является полностью параметризованным алгоритмом шифрования. Конкретная версия RC6 обозначается как RC6-w/r/b, где w обозначает длину слова в битах, r - ненулевое количество итерационных циклов шифрования, а b - длину ключа в байтах.

Во всех вариантах RC6-w/r/b работает с четырьмя w-битовыми словами, используя шесть базовых операций, обозначаемых следующим образом:

ball1.gif (146 bytes)    a + b - целочисленное сложение по модулю 2w.gif (913 bytes);

ball1.gif (146 bytes)    a - b - целочисленное вычитание по модулю 2w.gif (913 bytes);

ball1.gif (146 bytes)    a +.jpg (781 bytes) b - побитовое "исключающее ИЛИ" w-битовых слов;

ball1.gif (146 bytes)    a x b - целочисленное умножение по модулю 2w.gif (913 bytes);

ball1.gif (146 bytes)    a << b - циклический сдвиг w-битового слова влево на величину, заданную log2w младшими битами b;

ball1.gif (146 bytes)    a >> b - циклический сдвиг w-битового слова вправо на величину, заданную log2w младшими битами b.

Структура шифра RC6 является обобщением сети Фейстела. Блок текста разбивается не на 2, а на 4 подблока, и на каждой итерации изменяются 2 подблока из четырех. При этом в конце итерации шифрования производится циклический сдвиг подблоков влево (при расшифровании, соответственно, вправо). Однако, такое обобщение привело к тому, что было утеряно свойство инвариантности блоков шифрования и расшифрования, хотя это и не является определяющим в оценке данного алгоритма.

 

01LEFT.JPG (1550 bytes)01RIGHT.JPG (1552 bytes)

АИСС БКБ, www.orioncom.ru, tel (495) 783-5510