13. Cvičení: Operace MixColumns

Zadání

Operace MixColumns je třetí a nejobsáhlejší operací v jedné rundě u algoritmu AES. Nyní se podíváme na její jednotlivé části.


Vstupem je zrotovaná matice po operaci ShiftRow. Dalším vstupem je poté mixovací matice, která je vždy stejná. Operujeme zde také s tzv. Galoisovým číslem, které je také neměnné a je potřebné pro zúžení bloku dat. Násobení matice maticí jsme již probírali - zde se ovšem násobení převání na polynomické násobení.


Mixovací matice zabezpečuje násobení. Násobení může probíhat třemi způsoby.

Násobení 1 - je klasické opsání čísla (jako u násobení klasického)

Násobení 2 - nám polynomicky vynásobí číslo dvěma (v případě potřeby je již zde aplikováno Galoisovo číslo pro zúžení počtu bitů)

Násobení 3 - uděláme jako násobení 2 a k výsledku ještě jednou modulo přičteme číslo, (v případě potřeby i zde aplikujeme Galoisovo číslo pro zúžení počtu bitů)


Galoisovo číslo se aplikuje na blok bitů pomocí logické funkce XOR.


Výsledné čtyři bloky dat se k sobě přičteme a získáme jednu buňku ve výsledné matici po operaci MixColumns.


Přehledně a srozumitelně je to vyobrazeno zde.

Všimněte si především doprovodných komentářů a vysvětlujících šipek.


Na základě tohoto návodu byste měli být schopni dopočítat všechny buňky ve výsledné matici.

Dbejte na správné pořadí matic (mixovací maticí násobíme zleva), je zapotřebí být opravdu pozorný při sepisování jednotlivých bloků pod sebe. Zvláště pak je důležité ovládat ooperace XOR a sčítání modulo.


Zadání tohoto cvičení tedy zní:

Dopočítejte všechny buňky výsledné matice.






Tipy pro řešení

  • důkladně si projděte přiložený návod, jak provést operaci MixColumns
  • je dobré si návodný obrázek opatřit vlastními poznámkami k dané problematice
  • velmi důležité je být pozorný jak při provádění sepisování, sčítání modulo a operace XOR, tak i u obyčejného opisování (kopírování) bloků dat z jednoho místa na druhý
  • všímejte si návodných šipek




Návrh řešení