Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по методам и средствам ЗИ.doc
Скачиваний:
107
Добавлен:
23.09.2019
Размер:
831 Кб
Скачать
☆

Rijndael (aes). Основные параметры

Название/статус

Rijndael, AES. Федеральный стандарт шифрования США. Утвержден министерством торговли в качестве стандарта 4 декабря 2001 года, решение вступило в силу с момента опубликования в федеральном реестре (06.12.01).

Время/место разработки

1997 год, Бельгия.

Авторы

Йоан Дамен (Joan Daemen) Винсент Раймен (Vincent Rijnmen)

Архитектура

"Квадрат".

Параметры

pазмер блока, бит

128, 192, 256

pазмер ключа, бит

128, 192, 256

число раундов

10, 12, 14

pазмер ключевого элемента, бит

128, 192, 256 (равен размеру блока)

число ключевых элементов

11, 13, 15 (на 1 больше числа раундов)

Патент

Не запатентован

Особенности

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

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

Замечания

В качестве стандарта принят вариант шифра только с размером блока 128 бит.

Число раундов шифрования определяется в зависимости от размера блока и ключа по следующей таблице:

РАЗМЕР

БЛОКА

РАЗМЕР КЛЮЧА

128

192

256

ЧИСЛО РАУНДОВ

128

10

12

14

192

12

12

14

256

14

14

14

Иными словами, из двух размеров выбирается максимальный, и если он равен 128 бит, то используется 10 раундов, если 192 бита, то 12, и если 256 - то 14 раундов шифрования.

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

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

Tо = (t1, t2,...,tN) Tш = (t'1, t'2,...,t'N) | t | = | t' | = 8, N {16, 24, 32} - количество байтов в матрице.

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

t 1

t5

...

tN-3

t'1

t'5

...

t'N-3

T

=

t2

t6

...

tN-2

T'

=

t'2

t'6

...

t'N-2

t3

t7

...

tN-1

t'3

t'7

...

t'N-1

t4

t8

...

tN

t'4

t'8

...

t'N

Т

К1

F

X1

K2

F

X2

...

KR

F'

XR

KR+1

T'

i=2..R

Рис. 8.3. Схема преобразования Рис. 8.4. Схема алгоритма цикла

данных - цикл шифрования шифрования

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

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

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

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

Добавление материала ключа в каждом раунде производится операцией XOR.

a00

a01

a02

a03

k00

k01

k02

k03

b00

b01

b02

b03

a10

a11

a12

a13

k10

k11

k12

k13

=

b10

b11

b12

b13

a20

a21

a22

a23

k20

k21

k22

k23

b20

b21

b22

b23

a30

a31

a32

a33

k30

k31

k32

k33

b30

b31

b32

b33

Рис.8.5. Схема добавления материала ключа

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

Процесс расшифрования блока данных алгоритмически идентичен процессу его зашифрования и, следовательно, рисунки 8.3 и 8.4 также справедливы и для него, если через T обозначить блок зашифрованных данных, а через T' - открытых.