Методы и средства криптографической защиты информации. Жданов О.Н - 115 стр.

UptoLike

115
каждом раунде алгоритма. Таким образом, в процессе расширения ключа
формируется 4*(R+1) слов.
Расширение ключа выполняется в два этапа, на первом из которых
производится инициализация слов расширенного ключа (обозначаемых как
W
i
): первые Nk (Nkразмер исходного ключа шифрования K в словах, т.е. 4,
6 или 8) слов W
i
(т.е. i = 0…Nk-1) формируются их последовательным
заполнением байтами ключа (см. рис. 6).
Рис. 6. Инициализация первых слов расширенного ключа.
Последующие слова W
i
формируются следующей последовательностью
операций для каждого i = Nk…4*(R+1)-1:
Шаг 1. Инициализируется временная переменная T: T = W
i-1
.
Шаг 2. Данная переменная модифицируется следующим образом:
если i кратно Nk, то: T = SubWord(RotWord(T))  RC
i/Nk
;
операции SubWord, RotWord будут описаны ниже, а константы
RC
n
представляют собой слова, в которых все байты, кроме
первого являются нулевыми, а первый байт имеет значение 2
n-1
mod 256;
если Nk = 8 и (i mod Nk) = 4, то: T = SubWord(T);
в остальных случаях модификация переменной T не выполняется.
Шаг 3. Формируется i-е слово расширенного ключа: W
i
= W
i-Nk
T.
Операция SubWord выполняет над каждым байтом входного значения
табличную замену, которая была описана вышесм. операцию SubBytes.
Операция RotWord побайтно вращает входное слово на 1 байт влево.
Как видно, процедура расширения ключа является достаточно простой
по сравнению со многими другими современными алгоритмами шифрования.
Процедура расширения ключа имеет также несомненное достоинство в том,
что
расширение ключа может быть выполнено «на лету» (on-the-fly), т.е.
параллельно с зашифрованием данных.
Авторы алгоритма указывают также, что не следует задавать напрямую