You are on page 1of 20

AES Advanced Encryption Standard

Platica Ciprian Isaia Lucian Proiect pentru activitatea Coduri Secrete

Definitie si fondatori
AES (de la Advanced Encryption Standard - n limba englez, Standard Avansat de Criptare), cunoscut i sub numele de Rijndael, este un algoritm standardizat pentru criptarea simetric, pe blocuri, folosit astzi pe scar larg n aplicaii i adoptat ca standard de organizaia guvernamental american NIST. Standardul oficializeaz algoritmul dezvoltat de doi criptografi belgieni, Joan Daemen i Vincent Rijmen i trimis la NIST pentru selecie sub numele Rijndael.

DES (Data Encryption Standard)


DES este cifrul bloc arhetip - un algoritm care ia un ir de lungime fix de bii de text normal i l transform print-o serie de operaii complexe ntr-un ir de bii criptai de aceeai lungime. n cazul DES, mrimea blocului este de 64 bii. DES folosete de asemenea i o cheie pentru particularizarea transformrii, astfel nct numai cei care cunosc cheia folosit s poat efectua decriptarea. Cheia este format din 64 de bii; totui, numai 56 dintre ei sunt folosii propriu-zis de algoritm. Opti bii sunt utilizai ca bii de paritate i nu sunt necesari dup acest test. Deci cheia efectiv are doar 56 de bii, i aa este citat de obicei. Ca i alte cifruri bloc, DES nu este o cale sigur de criptare folosit de sine-stttor. El trebuie folosit ntr-un mod de operare.

Origine
Deoarece DES devenise vulnerabil din cauza lungimii prea mici a cheii, NIST a recomandat utilizarea 3DES, un algoritm care const n esen n aplicarea de trei ori a DES. Dei 3DES s-a dovedit a fi un algoritm puternic, el este relativ lent n implementrile software, motiv pentru care NIST a lansat n 1997 o cerere de propuneri pentru un algoritm care s-l nlocuiasc. S-a pornit de la 21 de propuneri acceptate iniial, apoi prin eliminri numrul lor a fost redus la 15, i apoi la 5, din care a fost ales n cele din urm algoritmul propus de doi criptografi belgieni, Joan Daemen i Vincent Rijmen. La votarea final, algoritmul, denumit de autorii si Rijndael, a nvins la vot patru alte propuneri, printre care i algoritmul RC6, propus de o echip de criptografi n care se afla i reputatul informatician Ron Rivest.

Criteriile pe baza crora au fost evaluate propunerile pentru AES au fost securitatea (rezistena la atacuri criptanalitice), costurile (eficiena computaional, complexitatea spaial, precum i licenierea liber i gratuit) i particularitile algoritmului (flexibilitatea, simplitatea, i uurina de realizare a implementrilor att software ct i hardware).

n propunerea avansat NIST, cei doi autori ai algoritmului Rijndael au definit un algoritm de criptare pe blocuri n care lungimea blocului i a cheii puteau fi independente, de 128 de bii, 192 de bii, sau 256 de bii. Specificaia AES standardizeaz toate cele trei dimensiuni posibile pentru lungimea cheii, dar restricioneaz lungimea blocului la 128 de bii. Astfel, intrarea i ieirea algoritmilor de criptare i decriptare este un bloc de 128 de bii. n publicaia FIPS numrul 197, operaiile AES sunt definite sub form de operaii pe matrice, unde att cheia, ct i blocul sunt scrise sub form de matrice.

La nceputul rulrii cifrului, blocul este copiat ntr-un tablou denumit stare (n englez state), primii patru octei pe prima coloan, apoi urmtorii patru pe a doua coloan, i tot aa pn la completarea tabloului. Algoritmul modific la fiecare pas acest tablou de numere denumit state, i l furnizeaz apoi ca ieire. Aici, Nb este numrul de coloane al strii, n varianta standardizat acesta fiind ntotdeauna 4. Se observ din descrierea algoritmului c o anumit secven este realizat iterativ, de un numr de Nrori. Acest Nr depinde de lungimea cheii i este 10, 12 sau 14, pentru chei pe 128, 192, respectiv 256 bii.

Pasul SubBytes
Pasul SubBytes este un cifru cu substituie, fr punct fix, denumit Rijndael S-box, care ruleaz independent pe fiecare octet din state. Aceast transformare este neliniar i face astfel ntreg cifrul s fie neliniar, ceea ce i confer un nivel sporit de securitate. Fiecare octet este calculat astfel:

unde bi este bitul corespunztor poziiei i din cadrul octetului, iar ci este bitul corespunztor poziiei i din octetul ce reprezint valoarea hexazecimal 63, sau, pe bii, 01100011. Maparea octeilor se poate reine ntr-un tabel, explicitat n FIPS PUB 197, n care este specificat rezultatul operaiei de mai sus efectuat pe fiecare din cele 256 de valori posibile reprezentabile pe un octet.

La pasul SubBytes, fiecare octet din blocul state este nlocuit cu un altul, conform unui cifru cu substituie .

Pasul ShiftRows
Pasul ShiftRows opereaz la nivel de rnd al matricii de stare state. Pasul const n simpla deplasare ciclic a octeilor de pe rnduri, astfel: primul rnd nu se deplaseaz; al doilea rnd se deplaseaz la stnga cu o poziie; al treilea rnd se deplaseaz la stnga cu dou poziii; al patrulea se deplaseaz la stnga cu trei poziii. Rezultatul acestui pas este c fiecare coloan din tabloul state rezultat este compus din octei de pe fiecare coloan a strii iniiale. Acesta este un aspect important, din cauz c tabloul state este populat iniial pe coloane, iar paii ulteriori, inclusiv AddRoundKey n care este folosit cheia de criptare, operaiile se efectueaz pe coloane.

Pasul MixColumns
n acest pas, fiecare coloan a tabloului de stare este considerat un polinom de gradul 4 peste corpul Galois. Fiecare coloan, tratat ca polinom, este nmulit, modulo x4 + 1 cu polinomul a(x) = 3x3 + x2 + x + 2. Operaia se poate scrie ca nmulire de matrice astfel:

unde sunt elementele de pe un vector coloan rezultate n urma nmulirii, iar si sunt elementele de pe acelai vector naintea aplicrii pasului.

Rezultatul are proprietatea c fiecare element al su depinde de toate elementele de pe coloana strii dinaintea efecturii pasului. Combinat cu pasul ShiftRows, acest pas asigur c dup cteva iteraii, fiecare octet din stare depinde de fiecare octet din starea iniial (tabloul populat cu octeii mesajului n clar). Aceti doi pai, mpreun, sunt principala surs de difuzie n algoritmul Rijndael. Coeficienii polinomului a(x) sunt toi 1, 2 i 3, din motive de performan, criptarea fiind mai eficient atunci cnd coeficienii sunt mici. La decriptare, coeficienii pasului corespunztor acestuia sunt mai mari i deci decriptarea este mai lent dect criptarea. S-a luat aceast decizie pentru c unele din aplicaiile n care urma s fie folosit algoritmul implic numai criptri, i nu i decriptri, deci criptarea este folosit mai des.

Pasul AddRoundKey i planificarea cheilor


Pasul AddRoundKey este pasul n care este implicat cheia. El const ntr-o simpl operaie de sau exclusiv pe bii ntre stare i cheia de rund (o cheie care este unic pentru fiecare iteraie, cheie calculat pe baza cheii secrete). Operaia de combinare cu cheia secret este una extrem de simpl i rapid, dar algoritmul rmne complex, din cauza complexitii calculului cheilor de rund (Key Schedule), precum i a celorlali pai ai algoritmului. Cheia de rund este calculat dup algoritmul urmtor:

n pasul AddRoundKey, se efectueaz o operaie de sau exclusiv pe bii ntre octeii strii i cei ai cheii de rund .

Acest algoritm lucreaz pe cheia algoritmului, de lungime Nk cuvinte de 4 octei (4, 6 sau 8, conform standardului), populnd un tabel de cuvinte, Nb fiind numrul de cuvinte al blocului (n versiunea standardizat, 4), iar Nr numrul de runde (iteraii), dependent de lungimea cheii. Algoritmul de planificare a cheilor folosete transformarea SubWord, care este o substituie a octeilor identic cu cea din pasul SubBytes. RotWord este o rotaie ciclic la stnga cu un octet a octeilor dintr-un cuvnt. Cu Rcon[i] se noteaz n algoritm un cuvnt format din octeii . Operaia de ridicare la putere este aici cea valabil n corpul Galois . Tabloul w conine la finalul prelucrrii cuvintele de pe coloanele cheilor de rund, n ordinea n care urmeaz s fie aplicate.

Securitatea
Rijndael, ca i toi ceilali algoritmi ajuni n etapa final de selecie pentru standardul AES, a fost revizuit de NSA i, ca i ceilali finaliti, este considerat suficient de sigur pentru a fi folosit la criptarea informaiilor guvernamentale americane neclasificate. n iunie 2003, guvernul SUA a decis ca AES s poat fi folosit pentru informaii clasificate. Pn la nivelul SECRET, se pot folosi toate cele trei lungimi de cheie standardizate, 128, 192 i 256 bii. Informaiile TOP SECRET (cel mai nalt nivel de clasificare) pot fi criptate doar cu chei pe 256 bii. Atacul cel mai realizabil mpotriva AES este ndreptat mpotriva variantelor Rijndael cu numr redus de iteraii. AES are 10 iteraii la o cheie de 128 de bii, 12 la cheie de 192 de bii i 14 la cheie de 256 de bii. La nivelul anului 2008, cele mai cunoscute atacuri erau accesibile la 7, 8, respectiv 9 iteraii pentru cele trei lungimi ale cheii.

You might also like