Algoritmul de criptografie AES
AES (de la Advanced Encryption Standard – in limba engleza, Standard Avansat de Criptare), cunoscut si sub numele de Rijndael, este un algoritm standardizat pentru criptarea simetrica, pe blocuri, folosit astazi pe scara larga in aplicatii si adoptat ca standard de organizatia guvernamentala americana NIST. Standardul oficializeaza algoritmul dezvoltat de doi criptografi belgieni, Joan Daemen si Vincent Rijmen si trimis la NIST pentru selectie sub numele Rijndael. Deoarece DES devenise vulnerabil din cauza lungimii prea mici a cheii, NIST a recomandat utilizarea 3DES, un algoritm care consta in esenta in aplicarea de trei ori a DES. Desi 3DES s-a dovedit a fi un algoritm puternic, el este relativ lent in implementarile software, motiv pentru care NIST a lansat in 1997 o cerere de propuneri pentru un algoritm care sa-l inlocuiasca. S-a pornit de la 21 de propuneri acceptate initial, apoi prin eliminari numarul lor a fost redus la 15, si apoi la 5, din care a fost ales in cele din urma algoritmul propus de doi criptografi belgieni, Joan Daemen si Vincent Rijmen. La votarea finala, algoritmul, denumit de autorii sai Rijndael, a invins la vot patru alte propuneri, printre care si algoritmul RC6, propus de o echipa de criptografi in care se afla si reputatul informatician Ron Rivest. Criteriile pe baza carora au fost evaluate propunerile pentru AES au fostsecuritatea (rezistenta la atacuri criptanalitice), costurile (eficienta computationala, complexitatea spatiala, precum si licentierea libera si gratuita) si particularitatile algoritmului (flexibilitatea, simplitatea, si usurinta de realizare a implementarilor atat software cat si hardware). Algoritmul In propunerea avansata NIST, cei doi autori ai algoritmului Rijndael au definit un algoritm de criptare pe blocuri in care lungimea blocului si a cheii puteau fi independente, de 128 de biti, 192 de biti, sau 256 de biti. Specificatia AES standardizeaza toate cele trei dimensiuni posibile pentru lungimea cheii, dar restrictioneaza lungimea blocului la 128 de biti. Astfel, intrarea si iesirea algoritmilor de criptare si decriptare este un bloc de 128 de biti. In publicatia FIPS numarul 197, operatiile AES sunt definite sub forma de operatii pe matrice, unde atat cheia, cat si blocul sunt scrise sub forma de matrice. La inceputul rularii cifrului, blocul este copiat intr-un tablou denumit stare (in engleza state), primii patru octeti pe prima coloana, apoi urmatorii patru pe a doua coloana, si tot asa pana la completarea tabloului. Algoritmul modifica la fiecare pas acest tablou de numere denumitstate, si il furnizeaza apoi ca iesire. Functionarea sa este descrisa de urmatorul pseudocod: Cipher(byte in[4*Nb], byte out[4*Nb], word w[Nb*(Nr+1)]) begin byte state[4,Nb] state = in AddRoundKey(state, w[0, Nb-1]) for round = 1 step 1 to Nr–1 SubBytes(state) ShiftRows(state) MixColumns(state) AddRoundKey(state, w[round*Nb, (round+1)*Nb-1]) end for SubBytes(state) ShiftRows(state) AddRoundKey(state, w[Nr*Nb, (Nr+1)*Nb-1]) out = state end Aici, Nb este numarul de coloane al starii, in varianta standardizata acesta fiind intotdeauna 4. Se observa din descrierea algoritmului ca o anumita secventa este realizata iterativ, de un numar de Nr ori. AcestNr depinde de lungimea cheii si este 10, 12 sau 14, pentru chei pe 128, 192, respectiv 256 biti. Pasul SubBytes Pasul SubBytes este un cifru cu substitutie, fara punct fix, denumitRijndael S-box, care ruleaza independent pe fiecare octet din state. Aceasta transformare este neliniara si face astfel intreg cifrul sa fie neliniar, ceea ce ii confera un nivel sporit de securitate. Fiecare octet este calculat astfel: unde bi este bitul corespunzator pozitiei i din cadrul octetului, iar ci este bitul corespunzator pozitiei i din octetul ce reprezinta valoarea hexazecimala 63, sau, pe biti, 01100011. Maparea octetilor se poate retine intr-un tabel, explicitat in FIPS PUB 197, in care este specificat rezultatul operatiei de mai sus efectuata pe fiecare din cele 256 de valori posibile reprezentabile pe un … Continuă lectura Algoritmul de criptografie AES
Copiază și plasează acest URL în site-ul tău WordPress pentru a-l îngloba
Copiază și plasează acest cod în site-ul tău pentru a-l îngloba