V kriptografiji je napredni šifrirni standard (AES) algoritem blokovne šifre s simetričnim ključem, ki ga je leta 2001 izbral Nacionalni inštitut za standarde in tehnologijo (NIST). Izbran je bil za šifriranje podatkov. Pogosto se uporablja po vsem svetu. Napredni standard šifriranja je nadomestil standard šifriranja podatkov (DES).
Od leta 2008 je AES eden izmed najbolj priljubljenih algoritmov, ki se uporabljajo v kriptografiji s simetričnim ključem. Programerjem in širši javnosti je na voljo z različnimi programskimi paketi.
Osnovne značilnosti
- Blokovna velikost: AES vedno uporablja blok velikosti 128 bitov.
- Dolžine ključev: podprtih je več dolžin ključev: 128, 192 in 256 bitov — pogosto zapisano kot AES-128, AES-192 in AES-256.
- Število krogov (rounds): odvisno od dolžine ključa: 10 krogov pri AES-128, 12 pri AES-192 in 14 pri AES-256.
- Izvor: algoritem izhaja iz šifre Rijndael, ki sta jo razvila Joan Daemen in Vincent Rijmen; kasneje je bil standardiziran kot AES (FIPS 197).
- Notranja struktura: uporablja kombinacijo zamenjav (SubBytes), permutacij (ShiftRows), linearnih mešanj (MixColumns) in XOR z rundnimi ključi (AddRoundKey).
Glavne operacije v algoritmu
- SubBytes: nebinarna zamenjava bajtov preko S-zamenjave (S-box), ki zagotavlja nelinearnost.
- ShiftRows: ciklično premikanje vrstic stanja, kar širi podatke po bloku.
- MixColumns: mešanje stolpcev s linearnimi transformacijami za dodatno difuzijo (ni uporabljeno v zadnjem krogu).
- AddRoundKey: XOR trenutnega stanja z rundnim ključem, pridobljenim iz glavnega ključa z razširitvijo ključev.
Načini delovanja (modes) in pogoste uporabe
AES sam po sebi šifrira posamezne bloke; v praksi se uporablja v kombinaciji z načini delovanja (modes), ki omogočajo šifriranje podatkov poljubne dolžine in zagotavljajo dodatne lastnosti:
- ECB: enostaven, a nezanesljiv — naj se ga izogibamo, ker enaki bloki dajejo enak izhod.
- CBC: zahteva inicializacijski vektor (IV); primeren za številne primere, vendar ne nudi avtentičnosti.
- CTR: pretvarja blokovno šifro v pretočno, omogoča paralelizacijo in je priljubljen v nekaterih protokolih.
- GCM (Galois/Counter Mode): zagotavlja tako zaupnost kot avtentičnost (AEAD) in je zelo pogosto priporočena izbira.
- CCM: tudi AEAD način, uporaben v vgrajenih sistemih in protokolih z omejenimi viri.
Praktične uporabe AES vključujejo TLS za varne povezave, IPsec, SSH, šifriranje diskov (BitLocker, LUKS), brezžične varnostne protokole (npr. WPA2 uporablja AES-CCMP), ter različne aplikacije in knjižnice kot so OpenSSL, mbed TLS ipd.
Varnost in priporočila za uporabo
- Kriptografska moč: AES je široko preizkušen in se šteje za varen proti znanim klasičnim kriptanalitičnim napadom; za sedanje standardne grožnje so ključne dolžine 128+ varne.
- Groverjev algoritem (kvantni računalniki): lahko teoretično zmanjša varnost na približno polovico bitne dolžine (torej AES-256 bi dal varnost podobno AES-128 glede na kvantni napad), zato nekateri priporočajo AES-256 za dolgoročno odpornost.
- Stranski kanali: napadi, kot so merjenje časa, porabe energije ali elektromagnetnih emisij, lahko razkrijejo skrivne ključe, če implementacija ni odporna; zato so pomembne zaščite na ravni implementacije (constant-time, masking, strojna podpora).
- Uporaba avtentičnih načinov (AEAD): priporočljivo je uporabljati načine, ki zagotavljajo tudi integriteto in avtentičnost (npr. AES-GCM ali AES-CCM), namesto ločenih MAC shem ali CBC brez preverjanja integritete.
- Upravljanje ključev in IV/nonce: pravilno generiranje in varno shranjevanje ključev ter uporaba unikatnih IV/nonce za vsako sporočilo sta ključnega pomena za varnost.
- Posodabljanje in knjižnice: uporabljajte priznane, vzdrževane kriptografske knjižnice in izkoristite strojno pospeševanje (npr. AES-NI), ki je pogosto varnejše in hitrejše od lastnih implementacij.
Zaključek
AES ostaja standard izbire za simetrično šifriranje podatkov zaradi svoje učinkovitosti, varnosti in široke podpore v strojni ter programski opremi. Kljub moči samega algoritma so varnostni vidiki, kot so pravilno upravljanje ključev, uporaba ustreznih načinov delovanja (AEAD), in zaščita pred stranskimi kanali, odločilni za varno uporabo AES v praksi.

