Алгоритм RC6,RC5, Шифрование информации. Структура алгоритма

Пользователям

Вебмастерам

Безминималки

Автовыплота

Карта сайта

 

Главная страница

Меню :

Главная страница +

Криптография -

Rijndael

ГОСТ №28147-89

Akelare

Anubis

Mars

RC6

Blowfish

Skipjack

Square

Статьи +

Документальные фильмы +

Экстракт здоровья +

 

      RC6.

       Алгоритм RC6 был разработан в 1998 г. рядом специалистов научного подразделения фирмы RSA Data Security — RSA Laboratories: Рональдом Ривестом (Ronald Rivest), Мэттом Робшоу (Matt Robshaw), Рэем Сидни (Ray Sidney) и Икван Лайзой Ин (Yiqun Lisa Yin) специально для участия в конкурсе AES. Алгоритм во многом унаследовал черты предыдущего алгоритма Рональда Ривеста — 64-битного блочного шифра RC5, разработанного в 1997 г. Фактически, алгоритм претерпел два принципиальных изменения:
      - в отличие от RC5, в алгоритме используется умножение по модулю 232;
      - для сохранения 32-битных вычислений вместо разбиения шифруемого блока данных (128 бит согласно принципиальному требованию конкурса AES) на два 64-битных субблока выполняется его разбиение на 4 32-битных субблока и их обработка по несколько измененной схеме.

 

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

 

      Как и алгоритм RC5, RC6 имеет гибкую структуру: помимо секретного ключа, параметрами алгоритма являются следующие:
      - размер слова w; RC6 шифрует блоками по 4 слова;
      - количество раундов алгоритма R;
      - размер секретного ключа в байтах b.

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

 

Рисунок 1. Структура алгоритма RC6.

 

      Как было сказано выше, в алгоритме используется 20 раундов преобразований, перед которыми выполняется частичное входное отбеливание:
B = B + K0 mod
D = D + K1 mod

где A, B, C, D — текущие значения обрабатываемых 32-битных субблоков,
K0...K43 — фрагменты расширенного ключа.


      Аналогичным образом выполняется частичное выходное отбеливание:
A = A + K42 mod ,
C = C + K43 mod .


      В каждом раунде алгоритма выполняются следующие действия:

t1 = f(B) <<< 5,
t2 = f(D) <<< 5,
A = ((A XOR t1) <<< t2) + K2i mod ,
C = ((C XOR
t2) <<< t1) + K2i+1 mod ,

где t1 и t2 — временные переменные,
количество бит вращения на переменное число бит определяется значением 5 младших бит параметра (t1 или t2),
функция f() выполняет следующее квадратичное преобразование:

f(x) = x * (2x + 1) mod .


      В конце каждого раунда выполняется сдвиг субблоков — см. рис. 1.

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

Рисунок 2. Расшифрование алгоритмом RC6.

      

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

      

      Процедура расширения ключа RC6 аналогична RC5, за исключением того, что RC6 требуется существенно больше сгенерированных подключей, а именно 2R+4, то есть K0...K43 для 20 раундов. Рассмотрим данную процедуру для алгоритма RC6 в варианте для конкурса AES, то есть с указанными выше фиксированными параметрами.

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

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

K0 = P32,
Ki+1 = Ki + Q32 mod ,

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

P32 = B7E15163,
Q32 = 9E3779B9,


Авторы алгоритма утверждают, что выбор данных значений не является важным. Соответственно при необходимости создания реализации алгоритма RC6, не совместимой со стандартной, следует изменить значения P32 и Q32.


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

A = Ki = (Ki + A + B mod ) <<< 3,
B = KIj = (KIj + A + B mod ) <<< (A + B),
i = i + 1 mod 44,
j = j + 1 mod c,

где i, j, A и B — временные переменные, их начальные значения равны нулю,
KI — исходный ключ шифрования, представленный в виде c 32-битных слов.
Выполняется 3c итераций цикла.

 

О Сущности, Разуме и многом другом... – сайт академика Николая Левашова. Этот сайт содержит Знания. Уникальные Знания, которые, до сих пор, не были доступны всем желающим. Это Знания о загадках Жизни, о строении Вселенной, о Сущности, Разуме и многом другом...    ->

Яндекс.Метрика