8.6. AES (Advanced Encryption Standard)

1997-ben a NIST (National Institute of Standard and Technology) pályázatot írt ki új szimmetrikus titkosító szabvány készítésére, amelyet Advanced Encryption Standardnak röviden AES-nek neveztek el. Eredményt 2000 őszén hirdettek, a győztes a Rijndael fantázianevű algoritmus lett, amelynek alkotói Vincent Rijmen és Joan Daemen, két belga mérnök. A Rijndael a DES-szel és a GOST-tal ellentétben nem Feistel, hanem SP hálózatot alkalmaz a titkosításra.

Az AES 128/192/256 bites blokkokat 128/192/256 bites kulccsal titkosít, minden párosításban. Először csak a 128-128 bites párosítást, később mindegyiket elfogadták szabványnak. Az alábbiakban a 128 bites üzenetblokkokat, 128 bites kulccsal titkosító algoritmust ismertetjük. A Rijndaelról részletesen olvashatnak a Joan Daemen and Vincent Rijmen, "The Design of Rijndael: AES - The Advanced Encryption Standard." Springer-Verlag, 2002 könyvben.

A Rijndael a 128 bites input szót 16 bájtra bontja és ezeket egy 4x4-es táblázatba rendezi, amelyet állapotnak (state) nevez. Az eljárás függvényei az állapottáblázatokon operálnak. Négy függvényt használ, úgymint:

Az input szóra először az AddRoundKey függvényt alkalmazza, majd 9-szer a ByteSub, ShiftRow, MixColumn és AddRoundKey függvényekből álló blokkot. Az eljárást végül a ByteSub, ShiftRow és AddRoundKey blokk zárja. Látható, hogy az AES-nél a DES-szel szemben már az első lépésben megkezdődik a titkosítás a menetkulcs hozzáadásával. A kódolás során 11 menetkulcsot használ, amelyeket a mesterkulcsból számít ki. A paraméterek a fent idézett könyvben megtalálhatóak vagy az internetről letölthetőek.

Megjegyezzük, hogy a ByteSub függvényhez használt S-box (helyettesítés táblázat) előállításának módja szintén része a szabványnak. Úgy választották ki, hogy a helyettesítés a lehető legtávolabb legyen a lineáris leképezésektől. A DES-nél alkalmazott S-boxok előállításának algoritmusa ezzel szemben máig ismeretlen, ami miatt sok szakértő kritizálta is a tervezőket.