Advanced Encryption Standard
Wikipedia
Namn | AES |
Kryptotyp | Substitution-permutation |
Blockstorlek | 128 bit |
Nyckellängder | 128, 192, 256 bit |
Advanced Encryption Standard (AES) är en standardiserad krypteringsalgoritm fastslagen av NIST den 26 november 2001. Standarden bygger på krypteringsalgoritmen Rijndael framtagen av belgarna dr Joan Daemen och dr Vincent Rijmen.
AES är ett symmetriskt blockkrypto konstruerad för att kunna använda krypteringsnycklar med längderna 128, 192 och 256 bit där varje variant benämns AES-128, AES-192, respektive AES-256.
AES är inte ett Feistelkrypto utan ett substitutions-permutationskrypto och bygger därmed på förvanskning av texten genom en serie av omväxlande substitutioner och permutationer, där varje substitution-permuation är en runda (eng. round). Antalet rundor varierar beroende på nyckellängden så att AES-128 har 10 rundor, AES-192 har 12 rundor och AES-256 har 14 rundor. En runda består av fyra steg: Byte substitution, radskiftning, kolumnblandning och nyckeladdition. Undantaget är sista rundan där man hoppar över kolumnblandningen. Innan man börjar med rundorna måste man dock genomföra en nyckelexpansion.
AES är vinnaren av en internationellt utlyst tävling för att få fram en modern kryptoalgoritm. Till följd av tävlingsreglerna är algoritmerna väl genomlysta och dokumenterade, samt inte minst, befriade från patent eller andra immatrielrättsliga "rättigheter". Förutom kravet att vara en bra krypteringsalgortitm, är AES dessutom förhållandevis enkel att realisera i mjuk- eller hårdvara (Ett av kriterierna i tävlingen).
AES är inte symmetriskt, dvs kryptering/dekrypering är inte exakt likadana (om än liknande)räknat i processorkraft kräver dekrypteringen något mer beräkningar än krypteringen (Beroende på att ovan nämda kolumnblandning/"matrismultiplikation" kräver mer beräkningar åt ena hållet). Det finns emellertid inget som hindrar att man gör tvärtom, dvs använder dekrypteringsalgoritmen som kryptering och krypteringsalgoritmen som dekryptering.