Standard de criptare avansat

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
AES
AES-SubBytes.svg
Pasajul SubBytes , primul dintre cele patru din AES.
General
Designeri Vincent Rijmen și Joan Daemen
Prima publicație 1998
Provin de la Pătrat
Succesori Crypton , Anubis , GRAND CRU
Detalii
Dimensiunea cheii 128, 192 sau 256 biți
Dimensiunea blocului 128 biți
Structura Rețea de substituție și permutare
Numărul de pase 10, 12 sau 14 (în funcție de dimensiunea cheii)
Criptanaliză mai bună
Un atac bazat pe cheie a forțat AES cu o tastă de 256 biți, cu 9 runde. Un atac care a cunoscut textul a forțat o cheie de 192 de biți și 256 de biți cu 8 runde și o tastă de 128 de biți cu șapte runde. (Ferguson și colab., 2000). Atacul XSL pare capabil să simplifice căutarea exhaustivă.

În criptografie , Advanced Encryption Standard ( AES ), cunoscut și sub numele de Rijndael ( [ˈrɛindaːl] ), [1] [2] dintre care mai corect este o implementare specifică, [2] este un algoritm de cifrare a blocului de chei simetric , utilizat ca standard de către guvernul Statelor Unite ale Americii .

Având în vedere securitatea și specificațiile sale publice, se presupune că în viitorul apropiat va fi utilizat în întreaga lume așa cum i s-a întâmplat predecesorului său, Standardul de criptare a datelor (DES), care și-a pierdut apoi eficacitatea din cauza vulnerabilităților intrinseci. AES a fost adoptat de Institutul Național de Standarde și Tehnologie (NIST) și US PUB FIPS în noiembrie 2001 [3] după 5 ani de studiu, standardizare și selecție finală printre diferiții algoritmi propuși.

Algoritmul ales a fost dezvoltat de doi criptografi belgieni , Joan Daemen și Vincent Rijmen , care l-au prezentat procesului de selecție pentru AES sub numele de "Rijndael", derivat din numele inventatorilor. Rijndael, în flamandă , se pronunță aproximativ „rèin-daal”.

Descriere

Rijndael este o evoluție a primului algoritm dezvoltat de Daemen și Rijmen, Square . Square a fost dezvoltat pentru SHARK .

Spre deosebire de DES, Rijndael este o rețea de substituție și permutare , nu o rețea Feistel , care încă implementează principiul criptografic al Shannon de „ confuzie și răspândire ”. AES este rapid atât dacă este dezvoltat în software, cât și dacă este dezvoltat în hardware [4], este relativ simplu de implementat, necesită puțină memorie și oferă un nivel bun de protecție / securitate, motive care, în general, l-au preferat celorlalți algoritmi propuși.

Noul standard de criptare înlocuiește standardele anterioare și popularitatea sa continuă să crească. În mod formal, AES nu este echivalent cu Rijndael (deși în practică sunt interschimbabile), deoarece Rijndael gestionează diferite dimensiuni de bloc și cheie . În AES, blocul este în loc de dimensiune fixă ​​(128 biți ) și cheia poate fi 128, 192 sau 256 biți, în timp ce Rijndael specifică doar că blocul și cheia trebuie să fie un multiplu de 32 biți cu 128 biți ca minim și 256 de biți ca maxim.

AES funcționează utilizând tablouri de 4 × 4 octeți numite stări . Când algoritmul are blocuri de 128 biți în intrare, matricea de stare are 4 rânduri și 4 coloane; dacă numărul de blocuri de intrare devine cu 32 de biți mai lung, o coloană este adăugată la starea și așa mai departe până la 256 de biți. În practică, împărțiți numărul de biți ai blocului de intrare la 32, iar coeficientul specifică numărul de coloane.

Există un pas inițial:

  1. AddRoundKey - Fiecare octet al tabelului este combinat cu cheia de sesiune, cheia de sesiune este calculată de managerul de chei .

Ulterior, sunt prevăzute mai multe runde sau cicluri de procesare pentru a cripta: fiecare rundă (fază) a AES (cu excepția ultimei) constă din următorii patru pași:

  1. SubBytes - Înlocuirea neliniară a tuturor octeților care sunt înlocuiți conform unui tabel specific.
  2. ShiftRows - Shift al octeților unui anumit număr de poziții în funcție de rândul de care aparțin.
  3. MixColumns - Combinând octeți cu o operație liniară, octeții sunt tratați câte o coloană la rând.
  4. AddRoundKey - Fiecare octet al tabelului este combinat cu cheia de sesiune, cheia de sesiune este calculată de managerul de chei.

Numărul de runde sau cicluri de procesare / procesare criptografice din cele patru etape anterioare este de 10, ultima rundă MixColumns pasul MixColumns . Mai jos este descrierea fiecărui pas.

Pasul de decriptare nu este identic cu pasul de criptare, deoarece pașii sunt realizați în ordine inversă. Cu toate acestea, puteți defini un cifru invers echivalent cu pașii algoritmului utilizat pentru criptare, utilizând funcția inversă la fiecare pas și un program de chei diferit. Funcționează deoarece rezultatul nu se schimbă atunci când schimbați faza SubBytes cu faza ShiftRows și faza MixColumns cu o fază AddRoundKey suplimentară.

SubBytes

În trecerea SubBytes , fiecare octet al tabloului este schimbat prin intermediul cutiei S de 8 biți. Această operație oferă neliniaritate algoritmului. Cutia S utilizată este derivată dintr-o funcție inversă în câmpul finit GF ( 2 8 ), cunoscut pentru a avea proprietăți excelente de neliniaritate. Pentru a evita un atac potențial bazat pe proprietăți algebrice, caseta S este construită prin combinarea funcției inverse cu o transformare inversă afină . Cutia S a fost aleasă cu atenție pentru a nu avea nici puncte fixe, nici puncte fixe opuse.

În etapa SubBytes , fiecare octet al tabloului este înlocuit cu datele conținute în transformarea S ; b ij = S (a ij ) .

ShiftRows

Pasul ShiftRows oferă compensarea rândurilor matricei cu un parametru dependent de numărul rândului. În AES, primul rând rămâne neschimbat, al doilea este mutat un loc la stânga, al treilea cu două locuri și al patrulea cu trei. În acest fel, ultima coloană a datelor de intrare va forma diagonala matricei de ieșire. (Rijndael folosește un design ușor diferit datorită matricilor de lungime nedeterminată.)

Toate operațiunile sunt efectuate folosind indexul de coloane „ modul ” numărul de coloane.

În pasul ShiftRows , octeții fiecărui rând sunt deplasați la stânga ordinii rândurilor. A se vedea figura pentru mișcările individuale.

MixColumns

Pasul MixColumns ia cei patru octeți ai fiecărei coloane și le combină folosind o transformare liniară inversabilă. Utilizate împreună, ShiftRows și MixColumns asigură conformitatea cu criteriul confuziei și difuziei în algoritm ( teoria lui Shannon ). Fiecare coloană este tratată ca un polinom în GF (2 8 ) și se înmulțește modulul pentru un polinom fix .

În etapa MixColumns fiecare coloană de octeți este înmulțită cu un polinom fix c (x) .

AddRoundKey

Pasul AddRoundKey combină cheia de sesiune cu un XOR cu matricea obținută din pașii anteriori (State). O cheie de sesiune este obținută din cheia primară la fiecare rundă (cu pași mai mult sau mai puțin simpli, de exemplu o schimbare a poziției de biți) datorită programatorului de chei .

În pasul AddRoundKeys , fiecare octet al tabloului este combinat cu subcheia sa printr-o operație XOR .

Siguranță

Agenția Națională de Securitate (NSA) a raportat că toți finaliștii procesului de standardizare au fost echipați cu securitate suficientă pentru a deveni AES, dar că Rijndael a fost ales datorită flexibilității sale în tratarea cheilor de lungime diferită, datorită implementării sale simple în hardware și software și pentru cerințele sale de memorie redusă care permit implementarea acestuia chiar și pe dispozitive cu resurse limitate, cum ar fi cardurile inteligente .

AES poate fi utilizat pentru a proteja informațiile clasificate. O cheie de 128 de biți este suficientă pentru nivelul SECRET, în timp ce cheile de 192 sau 256 de biți sunt recomandate pentru nivelul Top Secret . Aceasta înseamnă că, pentru prima dată, publicul are acces la o tehnologie criptografică pe care NSA o consideră adecvată pentru a proteja documentele TOP SECRET. A fost discutată necesitatea utilizării tastelor lungi (192 sau 256 biți) pentru documentele TOP SECRET. Unii cred că acest lucru indică faptul că NSA a identificat un potențial atac care ar putea forța o cheie relativ scurtă (128 de biți), în timp ce majoritatea experților consideră că recomandările ANS se bazează în primul rând pe asigurarea unei marje ridicate de siguranță pentru următoarele câteva decenii împotriva unui potențial atac complet.

Majoritatea algoritmilor criptografici sunt forțați prin reducerea numărului de runde. AES efectuează 10 runde pentru tasta de 128 biți, 12 runde pentru tasta de 192 biți și 14 runde pentru tasta de 256 de biți. Începând din 2006, cele mai bune atacuri au reușit să spargă AES cu 7 runde și cheie pe 128 de biți, 8 runde și cheie pe 192 de biți și 9 runde și cheie pe 256 de biți. [5]

Unii criptografi au subliniat că diferența dintre rundele AES și rundele maxime înainte ca algoritmul să nu mai fie aplicabil este mică (în special cu cheile scurte). Se tem că îmbunătățirile tehnicilor de analiză le pot permite să forțeze algoritmul fără a verifica toate cheile. În prezent, o căutare exhaustivă este impracticabilă: cheia pe 128 de biți produce 3,4 × 10 38 combinații diferite. Unul dintre cele mai bune atacuri de forță brută a fost efectuat de proiectul distribuit.net pe o cheie pe 64 de biți pentru algoritmul RC5 ; atacul a durat aproape 5 ani, folosind timpul liber al mii de procesoare voluntare. Chiar și având în vedere că puterea computerelor crește în timp, va dura mult timp pentru ca o cheie de 128 de biți să fie atacată cu metoda forței brute . Multe bănci furnizează chei de 256 de biți pentru serviciile bancare la domiciliu ale clienților lor, rezultând o criptare care este obținută de 2 ^ 128 ori mai sigură decât cea de 128 de biți, deși aceasta din urmă poate fi considerată extrem de sigură și de netrecut prin computerele moderne. .

O altă îndoială cu privire la AES provine din structura sa matematică. Spre deosebire de majoritatea algoritmilor de bloc, există o descriere matematică aprofundată pentru AES [6] . Deși nu a fost niciodată folosit pentru a efectua un atac personalizat, acest lucru nu exclude faptul că în viitor această descriere nu va fi utilizată pentru a efectua un atac pe baza proprietăților sale matematice.

În 2002 , atacul teoretic numit atac XSL anunțat de Nicolas Courtois și Josef Pieprzyk a arătat o potențială slăbiciune a AES (și a altor cifre). Deși atacul este corect din punct de vedere matematic, este impracticabil în realitate datorită timpului enorm al mașinii necesare pentru a-l pune în practică. Îmbunătățirile atacului au redus timpul necesar mașinii și, prin urmare, în viitor, acest atac poate deveni viabil. În ultimul timp, unii experți au făcut observații asupra autorilor atacului. Se pare că au făcut unele erori teoretice și că, de fapt, estimările lor sunt optimiste. În prezent, pericolul real al atacului XSL este un semn de întrebare. Cu toate acestea, în prezent, AES este considerat un algoritm rapid și sigur, iar atacurile, prezentate până acum, s-au dovedit a fi studii teoretice interesante, dar de puțin folos în practică.

Un atac legat de cea mai bună cheie a metodei forței brute a fost publicat la 1 iulie 2009 [7] pe toate rundele AES-256 și AES-192. Atacul în cauză este totuși, prin admiterea propriilor autori (așa cum este clarificat în concluziile studiului), să fie încă teoretic fezabil și nu ar trebui să afecteze în niciun fel securitatea aplicațiilor actuale care folosesc acest cifru . Conform lui Bruce Schneier [8], însă, această descoperire ar putea afecta negativ alegerea AES, deoarece elementul de bază al noului algoritm hash fiind definit SHA-3 .

Notă

  1. ^ (EN) Rijndael , pe searchsecurity.techtarget.com. Accesat la 9 martie 2015 ( arhivat la 25 ianuarie 2018) .
  2. ^ A b (EN) Joan Daemen și Vincent Rijmen, Propunerea AES: Rijndael (PDF) pe csrc.nist.gov, Institutul Național de Standarde și Tehnologie, 9 martie 2003, p. 1. Accesat la 21 februarie 2013 (arhivat din original la 5 martie 2013) .
  3. ^ (RO) Anunțarea STANDARDULUI DE CIFRARE AVANSAT (AES) (PDF), în publicația 197 privind standardele de prelucrare a informațiilor federale, Institutul Național al Standardelor și Tehnologiei (NIST) din Statele Unite, 26 noiembrie 2001. Accesat la 2 octombrie 2012 (depus de „ adresa URL originală la 12 martie 2017) .
  4. ^ (EN) Bruce Schneier, John Kelsey, Doug Whiting, David Wagner, Chris Hall, Niels Ferguson, Tadayoshi Kohno și Mike Stay, Comentariile finale ale echipei Twofish despre selecția AES (PDF) pe schneier.com, mai 2000 ( depus pe 2 ianuarie 2010) .
  5. ^ John Kelsey , Stefan Lucks , Bruce Schneier , Mike Stay , David Wagner și Doug Whiting , Criptanaliza îmbunătățită a lui Rijndael , Criptare rapidă a software-ului , 2000 pp. 213–230 Copie arhivată , pe schneier.com . Adus la 6 martie 2007 ( arhivat la 23 februarie 2007) .
  6. ^ Sean Murphy
  7. ^ https://www.cryptolux.org/images/1/1a/Aes-192-256.pdf
  8. ^ Schneier on Security: New Attack on AES

Bibliografie

  • Nicolas Courtois, Josef Pieprzyk, "Criptanaliza blocurilor cifrate cu sisteme de ecuații supradefinite". pp267-287, ASIACRYPT 2002.
  • Joan Daemen și Vincent Rijmen, „The Design of Rijndael: AES - The Advanced Encryption Standard”. Springer-Verlag, 2002. ISBN 3-540-42580-2 .
  • Niels Ferguson, John Kelsey, Stefan Lucks, Bruce Schneier, Michael Stay, David Wagner și Doug Whiting: Criptanaliza îmbunătățită a lui Rijndael. FSE 2000, pp213-230

Elemente conexe

Alte proiecte

linkuri externe

Implementări