Ключевой график AES - AES key schedule

AES использует расписание ключей, чтобы преобразовать короткий ключ в несколько отдельных раундовых ключей. Три варианта AES имеют разное количество раундов. Для каждого варианта требуется отдельный 128-битный ключ раунда для каждого раунда плюс еще один. Расписание ключей производит необходимые раундовые ключи из начального ключа.

Круглые константы

Значения rc i в шестнадцатеричном формате
я 1 2 3 4 5 6 7 8 9 10
rc я 01 02 04 08 10 20 40 80 1B 36

Константа раунда rcon i для раунда i раскрытия ключа представляет собой 32-битное слово:

где rc i - восьмибитовое значение, определяемое как:

где - побитовый оператор XOR, а такие константы, как 00 16 и 11B 16 , даны в шестнадцатеричном формате . Эквивалентно:

где биты rc i рассматриваются как коэффициенты элемента конечного поля , так что eg представляет полином .

AES использует до rcon 10 для AES-128 (поскольку требуется 11 раундовых ключей), до rcon 8 для AES-192 и до rcon 7 для AES-256.

Ключевой график

Расписание ключей AES для 128-битного ключа.

Определять:

  • N как длина ключа в 32-битных словах: 4 слова для AES-128, 6 слов для AES-192 и 8 слов для AES-256
  • K 0 , K 1 , ... K N -1 как 32-битные слова исходного ключа
  • R как необходимое количество ключей раунда: 11 ключей раунда для AES-128, 13 ключей для AES-192 и 15 ключей для AES-256
  • W 0 , W 1 , ... W 4 R -1 как 32-битные слова расширенного ключа

Также определите RotWord как однобайтный левый круговой сдвиг :

и SubWord как приложение S-блока AES к каждому из четырех байтов слова:

Тогда для :

Примечания

использованная литература

внешние ссылки