Cronograma chave AES - AES key schedule

O AES usa uma programação chave para expandir uma chave curta em uma série de chaves redondas separadas. As três variantes AES têm um número diferente de rodadas. Cada variante requer uma chave redonda de 128 bits separada para cada rodada e mais uma. A programação de chave produz as chaves redondas necessárias a partir da chave inicial.

Constantes redondas

Valores de rc i em hexadecimal
eu 1 2 3 4 5 6 7 8 9 10
rc eu 01 02 04 08 10 20 40 80 1B 36

A constante redonda rcon i para a rodada i da expansão chave é a palavra de 32 bits:

onde rc i é um valor de oito bits definido como:

onde é o operador XOR bit a bit e constantes como 00 16 e 11B 16 são fornecidas em hexadecimal . Equivalentemente:

onde os bits de rc i são tratados como os coeficientes de um elemento do corpo finito , de modo que eg representa o polinômio .

O AES usa até rcon 10 para AES-128 (já que são necessárias 11 chaves redondas), até rcon 8 para AES-192 e até rcon 7 para AES-256.

O cronograma chave

Programação de chave AES para uma chave de 128 bits.

Definir:

  • N como o comprimento da chave em palavras de 32 bits: 4 palavras para AES-128, 6 palavras para AES-192 e 8 palavras para AES-256
  • K 0 , K 1 , ... K N -1 como as palavras de 32 bits da chave original
  • R como o número de chaves redondas necessárias: 11 chaves redondas para AES-128, 13 chaves para AES-192 e 15 chaves para AES-256
  • W 0 , W 1 , ... W 4 R -1 como as palavras de 32 bits da chave expandida

Defina também RotWord como um deslocamento circular à esquerda de um byte :

e SubWord como uma aplicação do AES S-box para cada um dos quatro bytes da palavra:

Então para :

Notas

Referências

links externos