Klíčový plán AES - AES key schedule
AES používá a klíčový plán rozbalte krátkou klávesu na několik samostatných kulatých kláves. Tři varianty AES mají odlišný počet nábojů. Každá varianta vyžaduje pro každé kolo samostatný 128bitový kulatý klíč plus jeden další.[poznámka 1] Plán klíčů produkuje potřebné kulaté klíče z počátečního klíče.
Kulaté konstanty
i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
rci | 01 | 02 | 04 | 08 | 10 | 20 | 40 | 80 | 1B | 36 |
Kruhová konstanta rconi na kolo i klíčové expanze je 32bitové slovo:[poznámka 2]
kde rci je osmibitová hodnota definovaná jako:
kde je bitový XOR operátor a konstanty jako 0016 a 11B16 jsou uvedeny v hexadecimální. Ekvivalentně:
kde kousky rci jsou považovány za koeficienty prvku prvku konečné pole , takže např. představuje polynom .
AES používá až rcon10 pro AES-128 (je potřeba 11 kulatých klíčů), až rcon8 pro AES-192 a až rcon7 pro AES-256.[Poznámka 3]
Klíčový plán

Definovat:
- N jako délka klíče ve 32bitových slovech: 4 slova pro AES-128, 6 slov pro AES-192 a 8 slov pro AES-256
- K.0, K.1, ... K.N-1 jako 32bitová slova původního klíče
- R jako potřebný počet kulatých kláves: 11 kulatých kláves pro AES-128, 13 kláves pro AES-192 a 15 kláves pro AES-256[poznámka 4]
- Ž0, Ž1, ... Ž4R-1 jako 32bitová slova rozšířeného klíče[poznámka 5]
Také definujte RotWord jako jednobajtový levý kruhový posun:[poznámka 6]
a Dílčí slovo jako aplikace AES S-box na každý ze čtyř bajtů slova:
Pak pro :
Poznámky
- ^ Varianty jiné než AES Rijndael vyžadují až 256 bitů rozšířeného klíče na jedno kolo
- ^ Ve FIPS-197 value je nejméně významný bajt v indexu 0
- ^ Varianty Rijndael s větší velikostí bloků používají více těchto konstant, až rcon29 pro Rijndael se 128bitovými klíči a 256bitovými bloky (potřebuje 15 kulatých klíčů z každého 256bitového, což znamená 30 celých kol rozšíření klíče, což znamená 29 volání na klíčové jádro plánu pomocí kulatých konstant). Zbývající konstanty pro i ≥ 11 jsou: 6C, D8, AB, 4D, 9A, 2F, 5E, BC, 63, C6, 97, 35, 6A, D4, B3, 7D, FA, EF a C5
- ^ Jiné varianty Rijndael vyžadují max (N, B) + 7 kulaté klíče, kde B je velikost bloku ve slovech
- ^ Jiné varianty Rijndael vyžadují BR slova rozšířeného klíče, kde B je velikost bloku ve slovech
- ^ Rotace je opačná od směru pořadí bajtů. FIPS-197 bajtové adresy v polích se zvyšují zleva doprava[odkaz 1] v malém endianu, ale rotace je zprava doleva. V AES-NI[odkaz 2] a v linuxovém jádře lib / crypto / aes.c[odkaz 3], pořadí bajtů roste zprava doleva v malém endianu, ale rotace je zleva doprava.
Reference
- FIPS PUB 197: oficiální standard AES (PDF soubor)
- ^ „Publikace Federal Information Processing Standards Standard 197, 26. listopadu 2001, oznamující STANDARD POKROČILÉHO Šifrování (AES)“ (PDF). str. 8. Citováno 2020-06-16.
- ^ „Sada nových pokynů pro Intel® Advanced Encryption Standard (AES)“ (PDF). str. 13.
- ^ „aes.c“. Citováno 2020-06-15.
externí odkazy
- Popis klíčového plánu Rijndaela
- schematický pohled na klíčový plán pro 128 a 256 bitové klíče pro 160bitové klíče o kryptografii Stack Exchange