logo

Standard avansat de criptare (AES)

Advanced Encryption Standard (AES) este o specificație pentru criptarea datelor electronice stabilită de Institutul Național de Standarde și Tehnologie din SUA (NIST) în 2001. AES este utilizat pe scară largă astăzi, deoarece este mult mai puternic decât DES și triplu DES, în ciuda faptului că este mai greu. a implementa.

Puncte de reținut



  • AES este un cifru bloc.
  • Dimensiunea cheii poate fi de 128/192/256 biți.
  • Criptează datele în blocuri de 128 de biți fiecare.

Asta înseamnă că ia 128 de biți ca intrare și iese 128 de biți de text cifrat criptat ca ieșire. AES se bazează pe principiul rețelei de substituție-permutare, ceea ce înseamnă că este realizat folosind o serie de operațiuni legate care implică înlocuirea și amestecarea datelor de intrare.

servicii web java

Funcționarea cifrului:
AES efectuează operații pe octeți de date mai degrabă decât pe biți. Deoarece dimensiunea blocului este de 128 de biți, cifrul procesează 128 de biți (sau 16 octeți) de date de intrare la un moment dat.

Numărul de runde depinde de lungimea cheii, după cum urmează:



  • Cheie pe 128 de biți – 10 runde
  • Cheie pe 192 de biți – 12 runde
  • Cheie pe 256 de biți – 14 runde

Crearea tastelor rotunde:
Un algoritm Key Schedule este utilizat pentru a calcula toate cheile rotunde din cheie. Deci cheia inițială este folosită pentru a crea multe chei rotunde diferite care vor fi folosite în runda corespunzătoare de criptare.

Criptare:
AES consideră fiecare bloc ca o grilă de 16 octeți (4 octeți x 4 octeți = 128) într-un aranjament major de coloană.



 [ b0 | b4 | b8 | b12 | | b1 | b5 | b9 | b13 | | b2 | b6 | b10| b14 | | b3 | b7 | b11| b15 ]>

Fiecare rundă cuprinde 4 pași:

  • Subocteți
  • ShiftRows
  • MixColumns
  • Adăugați cheia rotundă

Ultima rundă nu are runda MixColumns.

SubBytes efectuează înlocuirea, iar ShiftRows și MixColumns realizează permutarea în algoritm.

Subocteți:
Acest pas implementează înlocuirea.

În acest pas, fiecare octet este înlocuit cu un alt octet. Se realizează folosind un tabel de căutare numit și S-box. Această înlocuire se face într-un mod în care un octet nu este niciodată înlocuit de el însuși și, de asemenea, nu este substituit de un alt octet care este un compliment al octetului curent. Rezultatul acestui pas este o matrice de 16 octeți (4 x 4 ) ca înainte.

Următorii doi pași implementează permutarea.

ShiftRows:
Acest pas este exact așa cum sună. Fiecare rând este deplasat de un anumit număr de ori.

  • Primul rând nu este deplasat
  • Al doilea rând este deplasat o dată la stânga.
  • Al treilea rând este deplasat de două ori spre stânga.
  • Al patrulea rând este deplasat de trei ori spre stânga.

(Se efectuează o schimbare circulară la stânga.)

 [ b0 | b1 | b2 | b3 ] [ b0 | b1 | b2 | b3 ] | b4 | b5 | b6 | b7 | ->| b5 | b6 | b7 | b4 | | b8 | b9 | b10 | b11 | | b10 | b11 | b8 | b9 | [ b12 | b13 | b14 | b15 ] [ b15 | b12 | b13 | b14 ]>>

MixColumns:
Acest pas este practic o multiplicare matriceală. Fiecare coloană este înmulțită cu o matrice specifică și astfel poziția fiecărui octet în coloană este modificată ca rezultat.

Acest pas este omis în ultima rundă.

 [ c0 ] [ 2 3 1 1 ] [ b0 ] | c1 | = | 1 2 3 1 | | b1 | | c2 | | 1 1 2 3 | | b2 | [ c3 ] [ 3 1 1 2 ] [ b3 ]>

Adăugați chei rotunde:
Acum rezultatul etapei anterioare este XOR-ed cu cheia rotundă corespunzătoare. Aici, cei 16 octeți nu sunt considerați ca o grilă, ci doar ca 128 de biți de date.

burak ozcivit

După toate aceste runde, 128 de biți de date criptate sunt returnați ca ieșire. Acest proces se repetă până când toate datele de criptat sunt supuse acestui proces.

Decriptare:
Etapele din runde pot fi anulate cu ușurință, deoarece aceste etape au un opus, care, atunci când sunt efectuate, anulează modificările. Fiecare 128 de blocuri trece prin cele 10, 12 sau 14 runde, în funcție de dimensiunea cheii.

Etapele fiecărei runde în decriptare sunt următoarele:

  • Adăugați cheia rotundă
  • Inverse MixColumns
  • ShiftRows
  • Suboctet invers

Procesul de decriptare este procesul de criptare efectuat invers, așa că voi explica pașii cu diferențe notabile.

Inverse MixColumns:
Acest pas este similar cu pasul MixColumns în criptare, dar diferă în matricea utilizată pentru a efectua operația.

 [ b0 ] [ 14 11 13 9 ] [ c0 ] | b1 | = | 9 14 11 13 | | c1 | | b2 | | 13 9 14 11 | | c2 | [ b3 ] [ 11 13 9 14 ] [ c3 ]>

Subocteți inversați:
Cutia S inversă este folosită ca tabel de căutare și prin care octeții sunt înlocuiți în timpul decriptării.

Aplicatii:

AES este utilizat pe scară largă în multe aplicații care necesită stocare și transmisie sigură a datelor. Unele cazuri comune de utilizare includ:

    Securitate wireless: AES este utilizat în securizarea rețelelor wireless, cum ar fi rețelele Wi-Fi, pentru a asigura confidențialitatea datelor și pentru a preveni accesul neautorizat. Criptare baze de date: AES poate fi aplicat pentru a cripta datele sensibile stocate în bazele de date. Acest lucru ajută la protejarea informațiilor personale, înregistrărilor financiare și a altor date confidențiale împotriva accesului neautorizat în cazul unei încălcări a datelor. Comunicații sigure: AES este utilizat pe scară largă în protocoale precum comunicațiile prin internet, e-mailul, mesageria instantanee și apelurile vocale/video. Se asigură că datele rămân confidențiale. Stocarea datelor: AES este folosit pentru a cripta datele sensibile stocate pe hard disk, unități USB și alte medii de stocare, protejându-le de accesul neautorizat în caz de pierdere sau furt. Rețele private virtuale (VPN): AES este utilizat în mod obișnuit în protocoalele VPN pentru a securiza comunicarea dintre dispozitivul unui utilizator și un server la distanță. Se asigură că datele trimise și primite prin VPN rămân private și nu pot fi descifrate de cei care intervin cu urechea. Stocarea sigură a parolelor: criptarea AES este folosită în mod obișnuit pentru a stoca parolele în siguranță. În loc să stocați parolele cu text simplu, versiunea criptată este stocată. Acest lucru adaugă un nivel suplimentar de securitate și protejează acreditările utilizatorului în cazul accesului neautorizat la stocare. Criptare fișiere și disc: AES este folosit pentru a cripta fișiere și foldere de pe computere, dispozitive de stocare externe și stocare în cloud. Protejează datele sensibile stocate pe dispozitive sau în timpul transferului de date pentru a preveni accesul neautorizat.

Rezumat :
Setul de instrucțiuni AES este acum integrat în CPU (oferă un debit de câțiva GB/s) pentru a îmbunătăți viteza și securitatea aplicațiilor care utilizează AES pentru criptare și decriptare. Chiar dacă au trecut 20 de ani de la introducerea sa, nu am reușit să spargem algoritmul AES, deoarece este imposibil chiar și cu tehnologia actuală. Până în prezent, singura vulnerabilitate rămâne în implementarea algoritmului.