This is an old revision of the document!
AES
AES (Advanced Encryption Standard), također poznat pod svojim originalnim nazivom Rijndael, je sustav simetrične kriptografije temeljen na supstitucijsko-permutacijskim poljima.
AES koristi fiksiranu veličinu bloka od 128 bitova te veličinu ključa od 128, 192 ili 256 bitova. Provodi se nad matricom 4×4, odnosno nad pravokutnim nizom bajtova u 4 retka i 4 stupca. Na sličan način tretira se i ključ koji je pohranjen u 4 retka i N stupaca, gdje je N ovisan o veličini ključa te može biti u iznosu od 4,6 ili 8. AES pri enkripciji koristi operacije zamjene znakova, posmicanja redova, miješanja stupaca te dodavanja podključa.
Funkcije koje AES koristi matematički su opisane u nastavku:
1) Zamjena znakova
znak = Sbox[znak]
2) Dodaj podključ
blok = blok ⊕ podključ[i]
3) Posmakni redove
Rotira (kružno posmiče) znakove ulijevo, i to u svim retcima osim prvog, za unaprijed poznati broj mjesta koji je ovisan o N.
4) Pomiješaj stupac bloka
Množi se stupac po stupac bloka s fiksnim polinomom:
a(x) = 03Hx3 + 01Hx2 + 01Hx + 02H mod x4+1
Odnosno, za svaki stupac bloka računa se stupac novog stanja:
AES se koristi u raznim načinima kriptiranja koji određuju način na koji primjenjujemo AES kod kriptiranja poruka proizvoljne duljine, točnije kako se ulazni podatci dijele u blokove, kako se blokovi kriptiraju i kombiniraju te kako enkripcija upravlja problemima kao što su integritet podataka ili inicijalizacijski vektori.
Često korišteni AES načini kriptiranja su:
1) ECB (Electronic Codebook)
- Svaki blok teksta kriptira se odvojeno s istim ključem
- Identični blokovi jasnog teksta rezultiraju identičnim blokovima skrivenog teksta
- Nije siguran za enkripciju većih količina ulaznih podataka zbog mogućnosti ponavljanja uzoraka
- Korištenje ovog načina kriptaranja se ne preporuča
2) CBC (Cipher Block Chaining)
- Svaki blok jasnog teksta se XORa sa skrivenim tekstom prošle runde enkripcije
- Potreban je inicijalizacijski vektor IV koji se mora izabrati nasumično
- IV se šalje zajedno sa skrivenim tekstom
- Potrebno nadopuniti poruku tako da je duljina višekratnik veličine bloka
- Sigurna enkripcija pod razumnim pretpostavkama
3) CFB (Cipher Feedback) i OFB (Output Feedback)
- Slični protočnoj enkripciji, tj. jednokratnoj bilježnici
- Dekripcija jednaka enkripciji
- Valja svaki put koristiti različiti IV
4) CTR (Counter Mode)
- slični protočnoj enkripciji, tj. jednokratnoj bilježnici
- na temelju ključa i IV se izračuna niz bitova koji se XOR-a s jasnim tekstom
- može se paralelizirati
- ne zahtijeva nadopunjavanje poruke (padding)
Generalno se ne preporuča koristiti način kriptiranja ECB. IV se ne smije ponavljati i treba biti generiran slučajno, a ne smije se ponavljati stalno niti isti simetrični ključ.
Izvori
[1] Christof Paar, Jan Pelzl, Understanding Cryptography, Springer-Verlag Berlin Heidelberg, 2009.
[2] https://platforma.hacknite.hr/challenges
[3] Kriptografija i kriptoanaliza, predavanja, FER
[4] Budin, L.; Golub, M; Jakobović, D., Jelenković, L (2010.) (2013.), Operacijski sustavi, Element, Zagreb
[5] https://csrc.nist.gov/csrc/media/projects/cryptographic-standards-and-guidelines/documents/aes-development/rijndael-ammended.pdf