Symetrické šifrování
12. Cvičení: Odvozujeme podklíče
Zadání
Nastíníme si problematiku generování podklíčů z klíče.
Klíč je zadáván jako 128 bitový řetězec. Do tabulky ho zapisujeme jako 16 bytů, které nám tedy vytvoří tabulku 4x4. Těchto 16 bytů také zapisujeme po sloupcích.
Je důležité uvědomit si, jak musí vypadat podklíče. Jelikož zde pracujeme s maticemi, musí být dodržována pravidla pro jednotlivé operace (například musí být dodržen stejný počet řádků a sloupců, pokud chceme matice mezi sebou násobit - vzpomínáte z předchozích článků?) Podklíče tedy všechny musí být uspořádány v matici 4x4.
Hlavní klíč máme zadán zatím pouze obecně:
K0 K1 K2 K3 K4 K5 K6 K7 K8 K9 K10 K11 K12 K13 K14 K15
Nyní se tedy budeme věnovat generování sloupců u prvního podklíče, který bude použit pro první rundu algoritmu AES. Sloupce si označíme W0, W1, W2, W3, jak je vidět na obrázcích, jinak se generují sloupce W4, W8, W12... a stejně by se pokračovalo pro sloupce, jejichž označení je násobkem čísla 4 a jejichž umístění je na první pozici nového podklíče; a odlišným způsobem se generují sloupce W5, W6, W7... které nejsou násobkem čísla 4.
Povšimněte si provázanosti mezi vznikem klíčů - bez sloupce W4 nelze generovat sloupec W5, analogicky bez sloupce W8 nelze generovat následující. Současně s tím nelze ani bez znalosti sloupců W6 generovat W7 atd.
Nebude tedy nic těžkého odvodit odpovídající podklíče, když hlavní klíč bude zadán třeba takto:
1A 7C 15 17 26 AE C1 A6 AB C5 05 90 09 CD 09 3C
1. zapište klíč v hexadecimální i binární podobě do matice
2. vygenerujte sloupec W4
3. následně vygenerujte sloupce W5, W6 a W7 - a máte vytvořený podklíč1
4. použijte sloupec W7 pro vytvoření sloupce W8
5. analogicky pro všech 10 podklíčů
Generování sloupců W4, W8.....

Generování sloupců W5, W6, W7, W9....

Obrázek 1. Generování sloupců W4, W8...
Tipy pro řešení
pozorně si přečtěte zadání
- podívejte se také na typovou ukázku, jak se generují jednotlivé sloupce
Návrh řešení
