Алгоритм RC6
В RC6 предусматривается использование четырех рабочих регистров, а также введена операция целочисленного умножения, позволяющая существенно увеличить возмущения, вносимые каждым циклом шифрования, что приводит к увеличению стойкости и/или возможности сократить число циклов.
RC6 является полностью параметризованным алгоритмом шифрования. Конкретная версия RC6 обозначается как RC6-w/r/b, где w обозначает длину слова в битах, r - ненулевое количество итерационных циклов шифрования, а b - длину ключа в байтах.
Во всех вариантах RC6-w/r/b работает с четырьмя w-битовыми словами, используя шесть базовых операций, обозначаемых следующим образом:
a + b - целочисленное сложение по модулю ;
a - b - целочисленное вычитание по модулю ;
a b - побитовое "исключающее ИЛИ" w-битовых слов;
a x b - целочисленное умножение по модулю ;
a << b - циклический сдвиг w-битового слова влево на величину, заданную log2w младшими битами b;
a >> b - циклический сдвиг w-битового слова вправо на величину, заданную log2w младшими битами b.
Структура шифра RC6 является обобщением сети Фейстела. Блок текста разбивается не на 2, а на 4 подблока, и на каждой итерации изменяются 2 подблока из четырех. При этом в конце итерации шифрования производится циклический сдвиг подблоков влево (при расшифровании, соответственно, вправо). Однако, такое обобщение привело к тому, что было утеряно свойство инвариантности блоков шифрования и расшифрования, хотя это и не является определяющим в оценке данного алгоритма.
АИСС БКБ, www.orioncom.ru, tel (495) 783-5510