А.Винокуров. Серия "Энциклопедия блочных шифров".


Rijndael. Общая схема.

На домашнюю страничку Список алгоритмов Основные параметры Основные параметры


Шифр Rijndael выполнен в архитектуре "Квадрат" (Square), получившей свое название от первого построенного в соответсвии с ее принципами криптоалгоритма. В Rijndael Блоки открытых и зашифрованных данных, соответственно T и T', представляются в виде массивов из 16, 24 или 32 байтов:

T = (t1, t2,...,tN)
T' = (t'1, t'2,...,t'N)
t | = | t' | = 8, N[in]{16, 24, 32}.

В соответсвии с использованными архитектурными принципами в ходе криптографических преобразований исходный и зашифрованный блоки данных, а также все промежуточные результаты процесса шифрования интерпретируются как матрицы байтов размером 4*n, откуда получаем n = N/4, n[in]{4, 6, 8}. Матрицы заполняются байтами входного блока (открытых данных при зашифровании и зашифрованных данных при расшифровании соответсвенно) по столбцам сверху вниз и слева направо, и в точно таком же порядке извлекаются байты из матрицы-результата:

[формура] ,    [формула] .

Схема преобразования данных при зашифровании показана на рисунке 1, схема соответсвующего алгоритма - на русунке 2.

[схема преобразования данных]

Рис. 1. Цикл шифрования Rijndael - схема преобразования данных.

  [схема алгоритма]

Рис. 2. Цикл шифрования Rijndael - схема алгоритма.

На рисунках использованы следующие обозначения:
T, T' - открытый и зашифрованный блоки данных соответственно;
ki - i-тый ключевой элемент;
F, F' - регулярное нелинейное преобразование и преобразование последнего раунда соответсвенно;
Xi - промежуточное состояние шифруемого блока после прибавления i-того ключевого элемента.

Как видно из рисунков 1 и 2, процесс зашифрования состоит из чередующихся прибавлений ключевых элементов к блоку данных и нелинейного преобразования этого блока:

T' = EK(T) = kR+1 (+) F'(kR (+) F(kR-1 (+) ... F(k2 (+) F(k1 (+) T))...)).

Число R раундов шифрования переменное и зависит от размера блока данных и ключа. Прибавление ключевых элементов, которым начинается и заканчивается процесс шифрования, а также некоторые другие операции раундового преобразования выполняется побайтно в конечном поле Галуа GF(28), полевой операцией сложения в нем является побитовое суммирование по модулю 2. Соответсвенно, каждый ключевой элемент является байтовой матрицей того же самого размера, что и блок данных. За один раунд шифрования преобразуется полный блок данных, а не его часть, как в сетях Файстеля. На последнем раунде функция нелинейного преобразования отличается от аналогичной функции, используемой в остальных раундах - это сделано для обеспечения алгоритмической эквивалентности прямого и обратного преобразований шифрования.

Процесс расшифрования блока данных алгоритмически идентичен процессу его зашифрования и, следовательно, рисунки 1 и 2 также справедливы и для него, если через T обозначить блок зашифрованных данных, а через T' - открытых. Однако различия между этими двумя процедурами в архитектуре "Квадрат" несколько более существенны, чем в сетях Файстеля - они различаются не только порядком использовани ключевых элементов в раундах шифрования, но и самими этими элементами, и некоторыми другими константами, используемыми в алгоритме. Соответсвующие вопросы рассмотрены ниже.

На домашнюю страничку Список алгоритмов Основные параметры Основные параметры


[Список алгоритмов] [Основные характеристики] [Общая схема] [Нелинейное преобразование] [Расшифрование] [Эквивалентность за- и расшифрования] [Выработка ключевых элементов]
 
[Начало осмотра] [Что нового] [Статьи] [Выпуски в "Байтах"] [Что скачать] [Криптоалгоритмы] [Глоссарий] [Ссылки] [Гостевая книга] [Форум] [Напиши мне]

Подготовлено 08.06.01. (c) 2001 Андрей Винокуров.