ВУЗ:
Составители:
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), т.е.
параллельно с зашифрованием данных.
Авторы алгоритма указывают также, что не следует задавать напрямую
Страницы
- « первая
- ‹ предыдущая
- …
- 113
- 114
- 115
- 116
- 117
- …
- следующая ›
- последняя »
