Harmonogram kluczy AES - AES key schedule

AES korzysta z harmonogramu kluczy, aby rozszerzyć skrót na kilka oddzielnych kluczy okrągłych. Trzy warianty AES mają różną liczbę rund. Każdy wariant wymaga oddzielnego 128-bitowego okrągłego klucza dla każdej rundy plus jeszcze jednego. Zestawienie kluczy tworzy potrzebne okrągłe klucze z początkowego klucza.

Okrągłe stałe

Wartości rc i w systemie szesnastkowym
i 1 2 3 4 5 6 7 8 9 10
rc ja 01 02 04 08 10 20 40 80 1B 36

Stała round rcon i dla rundy i rozwinięcia klucza jest słowem 32-bitowym:

gdzie rc i jest wartością ośmiobitową zdefiniowaną jako:

gdzie jest bitowym operatorem XOR , a stałe, takie jak 00 16 i 11B 16, są podane w systemie szesnastkowym . Równoważnie:

gdzie bity rc i traktowane są jako współczynniki elementu ciała skończonego , tak że np. reprezentuje wielomian .

AES wykorzystuje do rcon 10 dla AES-128 (ponieważ potrzeba 11 okrągłych kluczy), do rcon 8 dla AES-192 i do rcon 7 dla AES-256.

Kluczowy harmonogram

Harmonogram kluczy AES dla klucza 128-bitowego.

Definiować:

  • N jako długość klucza w słowach 32-bitowych: 4 słowa dla AES-128, 6 słów dla AES-192 i 8 słów dla AES-256
  • K 0 , K 1 , ... K N -1 jako 32-bitowe słowa oryginalnego klucza
  • R jako liczba potrzebnych okrągłych kluczy: 11 okrągłych kluczy dla AES-128, 13 kluczy dla AES-192 i 15 kluczy dla AES-256
  • W 0 , W 1 , ... W 4 R -1 jako 32-bitowe słowa rozszerzonego klucza

Zdefiniuj także RotWord jako jednobajtowe przesunięcie kołowe w lewo :

i SubWord jako zastosowanie AES S-box do każdego z czterech bajtów słowa:

Następnie dla :

Uwagi

Bibliografia

Linki zewnętrzne