Criptarea AES-256 explicată: ce înseamnă pentru datele tale

Criptarea AES-256 explicată: ce înseamnă pentru datele tale

AES-256 explicat: cum funcționează cifrul, de ce contează cheile de 256 de biți, ce adaugă modul GCM și ce să verifici când o aplicație afirmă că folosește criptare AES-256.


Ce este AES-256?

AES-256 este un cifru simetric pe blocuri: Advanced Encryption Standard folosit cu o cheie de 256 de biți. Aceeași cheie criptează și decriptează. Procesează datele în blocuri de 128 de biți, în 14 runde, iar NIST l-a standardizat ca FIPS 197 în 2001.

Numele adună trei fapte. AES numește algoritmul, ales de NIST în 2001 dintre propuneri, pe baza lui Rijndael. 256 este lungimea cheii în biți, care stabilește câte chei trebuie să încerce un atacator prin forță brută. Un mod precum GCM sau CBC, scris de obicei după nume, ca în AES-256-GCM, decide cum se înlănțuie blocurile și dacă textul cifrat este verificat împotriva modificărilor. AES-256 singur îți spune cifrul și dimensiunea cheii. Nu îți spune modul și nu îți spune cine deține cheia.

AES-256 este Advanced Encryption Standard cu o cheie de 256 de biți, standardizat de NIST ca FIPS 197 în 2001. Este algoritmul de criptare simetrică folosit de guvernul SUA pentru informații clasificate, de bănci pentru tranzacții financiare și de aplicațiile axate pe securitate pentru protejarea datelor în repaus și în tranzit. AES-256 are 2^256 chei posibile, un număr mai mare decât numărul estimat de atomi din universul observabil. Niciun atac cunoscut nu reduce acest spațiu de chei la o căutare fezabilă computațional.

Acest ghid explică ce face de fapt AES-256, de ce contează dimensiunea cheii, ce înseamnă modurile diferite (ECB, CBC, GCM) și ce să cauți când o aplicație afirmă că folosește criptare AES-256.

Ce face de fapt AES

AES este un cifru simetric pe blocuri. „Simetric” înseamnă că aceeași cheie criptează și decriptează. „Cifru pe blocuri” înseamnă că procesează datele în blocuri de dimensiune fixă, de 128 de biți (16 octeți).

Algoritmul ia datele tale (textul în clar), le combină cu o cheie și produce un rezultat amestecat (textul cifrat) printr-o serie de transformări matematice. Aceste transformări (substituție, deplasare, amestecare și adăugarea cheii) se repetă un număr fix de runde. AES-256 folosește 14 runde.

Fiecare rundă aplică patru operații:

  1. SubBytes: fiecare octet este înlocuit folosind un tabel fix de substituție (S-box), care introduce neliniaritate.
  2. ShiftRows: octeții din fiecare rând sunt deplasați cu decalaje diferite, ceea ce împrăștie datele între poziții.
  3. MixColumns: coloanele sunt amestecate prin înmulțire de matrice într-un câmp finit, ceea ce difuzează schimbările între octeți.
  4. AddRoundKey: cheia rundei (derivată din cheia principală) este combinată cu datele prin XOR.

După 14 runde, textul în clar este complet amestecat. Inversarea acestor operații cu cheia corectă recuperează datele originale. Fără cheie, textul cifrat nu poate fi deosebit de zgomotul aleatoriu.

De ce contează cei 256 de biți

„256” din AES-256 se referă la lungimea cheii: 256 de biți. Aceasta stabilește numărul de chei posibile pe care un atacator trebuie să le încerce ca să spargă criptarea prin forță brută.

Dimensiunea cheii Chei posibile Timp pentru forța brută (1 trilion de încercări/sec)
56 de biți (DES) 7.2 x 10^16 ~20 de ore
128 de biți (AES-128) 3.4 x 10^38 10^13 ani (10 trilioane de ani)
256 de biți (AES-256) 1.16 x 10^77 10^51 ani

Pentru context: universul are aproximativ 1,38 x 10^10 ani. Spargerea AES-256 prin forță brută ar dura de aproximativ 10^41 ori mai mult decât vârsta universului, chiar și la un trilion de încercări pe secundă.

AES-128 este deja imposibil de spart computațional prin forță brută. AES-256 oferă o marjă suplimentară față de progresele viitoare ale calculului, inclusiv calculul cuantic. Algoritmul lui Grover (un atac de calcul cuantic) înjumătățește efectiv lungimea cheii, reducând AES-256 la echivalentul AES-128, care rămâne infezabil. AES-128 ar fi redus la o securitate efectivă de 64 de biți, care este potențial vulnerabilă. De aceea aplicațiile critice pentru securitate preferă AES-256.

Modurile AES: de ce contează

Singur, AES criptează doar câte un bloc de 128 de biți. Pentru date reale (poze, documente, clipuri video), ai nevoie de un „mod de operare” care tratează date mai mari de 16 octeți. Modul stabilește cum se înlănțuie blocurile și are implicații importante pentru securitate.

ECB (Electronic Codebook): nu îl folosi

Fiecare bloc este criptat independent, cu aceeași cheie. Blocuri identice de text în clar produc blocuri identice de text cifrat. Asta scurge tipare din date. Demonstrația clasică: criptarea unei imagini bitmap cu ECB păstrează structura imaginii în textul cifrat, iar conținutul rămâne recognoscibil. ECB face parte din standard, dar nu ar trebui folosit niciodată pentru date care au structură sau tipare repetitive (adică practic toate datele reale).

CBC (Cipher Block Chaining): moștenire

Fiecare bloc este combinat prin XOR cu blocul cifrat anterior înainte de criptare. Asta elimină scurgerea de tipare din ECB. CBC a fost modul standard timp de decenii, dar a fost înlocuit de GCM în majoritatea aplicațiilor. CBC cere un vector de inițializare (IV) aleatoriu și nu oferă autentificare integrată (nu poți detecta dacă textul cifrat a fost modificat).

GCM (Galois/Counter Mode): standardul actual

GCM combină criptarea în modul contor cu autentificarea în câmp Galois. Oferă criptare autentificată: criptează datele ȘI produce o etichetă de autentificare care detectează orice modificare a textului cifrat. Dacă se schimbă un singur bit, decriptarea eșuează în loc să producă text în clar corupt.

NIST a standardizat GCM în SP 800-38D (2007). Este modul recomandat pentru implementările noi.

AES-256-GCM este AES cu o cheie de 256 de biți în Galois/Counter Mode. Este ceea ce ar trebui să folosească aplicațiile critice pentru securitate și ce folosește Vaultaire pentru criptarea conținutului pozelor și al fișierelor.

Mod Scurgere de tipare Autentificare Recomandarea actuală
ECB Da (severă) Nu Nu îl folosi
CBC Nu Nu (cere un MAC separat) Moștenire; acceptabil cu HMAC
GCM Nu Da (integrată) Recomandat pentru implementările noi

Ce înseamnă AES-256 pentru stocarea pozelor

Când o aplicație-seif pentru poze afirmă că folosește „criptare AES-256”, trei lucruri ar trebui să fie adevărate:

  1. Conținutul fișierelor este criptat cu AES-256. Datele brute ale pozei (pixeli, metadate, miniatură) sunt transformate în text cifrat cu o cheie de 256 de biți.

  2. Fiecare fișier folosește un vector de inițializare (IV) unic. Dacă două poze identice sunt criptate cu aceeași cheie, textul cifrat ar trebui să difere. Asta cere un IV unic pentru fiecare fișier. Fără el, analiza statistică poate dezvălui tipare.

  3. Modul oferă autentificare (GCM sau echivalent). Fără autentificare, un atacator ar putea modifica textul cifrat fără să fie detectat. Rezultatul decriptat ar fi date corupte, nu o eroare.

Ce nu îți spune „AES-256” de pe o pagină de marketing

AES-256 este necesar, dar nu suficient. Mai mulți factori critici decid dacă criptarea îți protejează cu adevărat datele:

Contează derivarea cheii. Cum este generată cheia de 256 de biți? Dacă este derivată dintr-un PIN de 4 cifre cu un KDF slab, securitatea efectivă este de 4 cifre (10.000 de combinații), nu de 256 de biți. O implementare solidă folosește PBKDF2 cu un număr mare de iterații sau Argon2 cu parametri potriviți de memorie și timp. Vaultaire folosește PBKDF2 cu HMAC-SHA512 și 600.000 de iterații pentru a deriva o cheie de seif locală din modelul 5x5 ales și o sare a dispozitivului. PBKDF2 face fiecare încercare mai costisitoare; nu ridică entropia modelului la 256 de biți.

Contează stocarea cheii. Unde stă cheia? Dacă este stocată în clar în sandboxul aplicației, un malware cu acces la fișiere o poate citi. Secure Enclave de la Apple acceptă anumite operații cu chei neexportabile, nu chei AES arbitrare furnizate de aplicații. Designurile cu chei simetrice se pot baza în schimb pe Keychain și Data Protection, așa că documentația ar trebui să numească exact API-ul și clasa de protecție, nu doar să spună „susținut de hardware”.

Contează ce se criptează. Unele aplicații criptează conținutul fișierelor, dar lasă necriptate numele fișierelor, miniaturile și metadatele. Un examinator criminalistic poate să nu îți vadă poza, dar poate vedea „vacanta-plaja-2025.jpg” în lista de fișiere. O criptare completă acoperă separat și metadatele.

Contează ciclul de viață al cheii. Cât timp rămâne disponibil materialul decriptat al cheii? Vaultaire renunță la starea seifului activ și a cheii principale când se blochează sau se închide și cere o nouă deblocare. Octeții cheii simetrice există inevitabil în memoria aplicației cât timp un seif este deschis, iar Swift și iOS nu îi permit unei aplicații să dovedească faptul că fiecare copie temporară a fost suprascrisă.

AES-256 în practică: cine îl folosește

Entitate Caz de utilizare Mod
Guvernul SUA (NSA) Informații clasificate GCM (sau CTR cu autentificare separată)
Apple (iCloud ADP) Criptarea end-to-end iCloud GCM
Signal Criptarea mesajelor CBC (cu HMAC pentru autentificare)
Bănci Criptarea tranzacțiilor financiare GCM
1Password Seif de parole GCM
Vaultaire Seif pentru poze și fișiere GCM
VeraCrypt Criptarea discului XTS (optimizat pentru blocurile de disc)

Idei greșite frecvente

„Criptarea de nivel militar” nu înseamnă nimic anume. Paginile de marketing folosesc expresia pentru că sună impresionant. AES-256 este folosit de armate. La fel și AES-128. Expresia nu îți spune modul, derivarea cheii, stocarea cheii sau ce date sunt de fapt criptate.

„Criptare pe 256 de biți” poate să nu însemne AES-256. Și alte cifruri folosesc chei de 256 de biți (ChaCha20, Twofish, Serpent). Verifică ce algoritm este precizat. AES-256-GCM este standardul actual.

AES-256 nu te protejează de o parolă slabă. Dacă parola ta este „1234” și derivarea cheii este slabă, criptarea oferă efectiv securitatea a 4 cifre, indiferent de puterea cifrului. Lanțul se rupe la veriga cea mai slabă.

AES-256 nu protejează datele în uz. Când vezi o poză, ea trebuie decriptată în memorie. În acel moment, există în clar în RAM. Implementările corecte reduc această fereastră la minimum și șterg repede datele decriptate.

Întrebări frecvente

Ce înseamnă AES-256?

Advanced Encryption Standard, folosit cu o cheie de 256 de biți. AES este cifrul pe care NIST l-a standardizat ca FIPS 197 în 2001, după ce a ales designul Rijndael. 256 este lungimea cheii în biți. Un sufix precum AES-256-GCM adaugă modul de operare, care este o alegere separată de cifru și de dimensiunea cheii.

Poate fi spart AES-256?

Niciun atac cunoscut nu sparge AES-256 reducând întregul spațiu de chei. Cel mai bun atac cunoscut (un atac biclique al lui Bogdanov, Khovratovich și Rechberger, 2011) reduce AES-256 de la 2^256 operații la 2^254,4, o îmbunătățire teoretică fără nicio relevanță computațională în practică. AES-256 rămâne nespart.

Este AES-256 rezistent la calculul cuantic?

În mare măsură, da. Algoritmul cuantic al lui Grover înjumătățește lungimea efectivă a cheii: AES-256 devine echivalent cu o securitate de 128 de biți împotriva atacurilor cuantice. AES-128 ar fi redus la o securitate efectivă de 64 de biți, care este potențial vulnerabilă. O căutare Grover împotriva AES-256 ar avea nevoie tot de aproximativ 2^128 operații, ceea ce nu este practic.

Care este diferența dintre AES-128 și AES-256?

AES-128 folosește o cheie de 128 de biți (10 runde). AES-256 folosește o cheie de 256 de biți (14 runde). Ambele sunt considerate sigure împotriva atacurilor actuale. AES-256 oferă o marjă mai mare față de progresele viitoare, în special calculul cuantic. AES-256 este cu aproximativ 40% mai lent decât AES-128 din cauza rundelor suplimentare, dar accelerarea hardware face diferența neglijabilă pe dispozitivele moderne.

Îmi încetinește criptarea AES-256 telefonul?

Nu observabil, în utilizarea normală. Procesoarele Apple moderne oferă accelerare hardware pentru AES prin bibliotecile criptografice ale sistemului. Asta nu înseamnă că operația AES a unei aplicații rulează în Secure Enclave. Durata depinde totuși de dimensiunea fișierului, dispozitiv, stocare și implementare, așa că o afirmație de securitate ar trebui să se bazeze pe măsurători, nu pe o cifră universală în milisecunde.

Cum știu dacă o aplicație folosește cu adevărat AES-256?

Verifică documentația de securitate a aplicației, nu doar pagina de marketing. Caută algoritmul și modul exact, ierarhia cheilor, parametrii de derivare, folosirea exactă a Keychain sau a Secure Enclave, tratarea nonce-urilor, calea de recuperare și dacă sunt criptate și metadatele. Codul open-source și auditurile independente fac aceste afirmații mai ușor de verificat.

Concluzie

AES-256 este un cifru simetric larg folosit, standardizat de NIST, fără niciun atac practic cunoscut; un computer cuantic care rulează algoritmul lui Grover s-ar confrunta tot cu un efort de aproximativ 2^128. Când evaluezi aplicații care afirmă că folosesc criptare AES-256, privește dincolo de cifru: verifică modul (GCM), derivarea cheii (PBKDF2/Argon2 cu un număr mare de iterații), stocarea cheii (API-ul și clasa de protecție numite exact) și ce date sunt de fapt criptate (conținut + metadate).

Vaultaire folosește AES-256-GCM pentru conținutul fișierelor, antete, metadate, indexuri și miniaturi. PBKDF2 cu HMAC-SHA512 derivă o cheie de seif locală din model și dintr-o sare Keychain comună dispozitivului; acea cheie despachetează o cheie principală aleatorie folosită pentru criptarea fișierelor. Operațiile simetrice rulează în procesul aplicației prin CryptoKit, iar Keychain și Data Protection din iOS protejează starea de recuperare când dispozitivul este blocat. Ierarhia completă este documentată în modelul de securitate.

Referințe