AES este un cifru de criptare a cheilor simetrice și este în general considerat „standardul de aur” pentru criptarea datelor.


AES este certificat NIST și este utilizat de guvernul SUA pentru protejarea datelor „sigure”, ceea ce a dus la o adoptare mai generală a AES ca cifru standard cheie la alegere de aproape toată lumea. Este un standard deschis care este liber de utilizat pentru orice utilizare publică, privată, comercială sau non-comercială.

O introducere la criptarea AES

AES este un cifru de criptare a cheilor simetrice. Aceasta înseamnă că aceeași cheie folosită pentru criptarea datelor este utilizată pentru a decripta. Aceasta creează o problemă: cum trimiteți cheia într-un mod sigur?

Sistemele de criptare asimetrice rezolvă această problemă prin securizarea datelor folosind o cheie publică care este pusă la dispoziția tuturor. Acesta poate fi decriptat doar de către un destinatar destinat care deține cheia privată corectă.

Acest lucru face ca criptarea asimetrică să fie mult mai bună la securizarea datelor în tranzit, deoarece expeditorul nu trebuie să știe cheia privată a destinatarului. Un bun exemplu este criptarea RSA, care este utilizată pentru a securiza schimburile de chei TLS necesare la conectarea la un site web HTTPS sigur..

Prin urmare, cifrele simetrice precum AES sunt mult mai bune la securizarea datelor în repaus - cum ar fi atunci când sunt stocate pe hard disk. În acest scop, acestea sunt superioare cifrelor asimetrice, deoarece:

  • Ele necesită mult mai puțină putere de calcul. Acest lucru face criptarea și decriptarea datelor cu criptarea simetrică mult mai rapid decât cu criptarea asimetrică. În perspectivă, cifrele simetrice sunt, în general, citate ca fiind de aproximativ 1000 de ori mai rapide decât cele asimetrice.
  • Și pentru că sunt mai rapide, cifrele simetrice sunt mult mai utile pentru criptarea în vrac a unor cantități mari de date. Criptoarele asimetrice, cum ar fi RSA, sunt utilizate într-adevăr numai pentru criptarea unor cantități mici de date, cum ar fi tastele utilizate pentru a securiza criptarea simetrică a cheilor.

Desigur, în lumea conectată de astăzi, datele care stau doar pe hard disk sunt de o utilizare limitată. Din fericire, acesta poate fi transferat în siguranță pe internet în combinație cu criptarea asimetrică, care a folosit pentru a gestiona schimburile de chei de la distanță necesare pentru conectarea sigură la un server de la distanță.

OpenVPN, de exemplu, securizează datele brute cu un cifru asimetric - de obicei AES în aceste zile. Pentru a transfera datele criptate în siguranță între computerul dvs. și serverul VPN, se folosește un schimb de cheie TLS asimetric pentru a negocia o conexiune sigură la server.

Este criptarea AES cel mai bun tip de criptare?

AES este considerată pe scară largă ca fiind cea mai sigură cifră de criptare a cheilor simetrice inventată încă. Există și alte cifre simetrice, care sunt considerate a fi foarte sigure, precum Twofish, care a fost co-inventat de renumitul criptograf Bruce Schneier.

Astfel de cifre nu au fost testate în luptă în modul în care AES are. Și hei, dacă guvernul american consideră că AES este cea mai bună cifră pentru a proteja datele sale „sigure”, cine se ceartă? Există însă unii care văd acest lucru ca o problemă. Vă rugăm să consultați secțiunea din NIST de mai jos.

Adoptarea pe scară largă a beneficiat de AES în alte moduri. Majoritatea producătorilor de CPU au integrat acum instrucțiunile AES setate în procesoarele lor. Sporul hardware îmbunătățește performanțele AES pe multe dispozitive, precum și îmbunătățește rezistența lor la atacurile cu canal lateral.

Se poate sparge criptarea AES pe 128 de biți?

AES în sine este de rupere atunci când este pus în aplicare corect.

În 2011, cel mai rapid supercomputer din cuvânt a fost Fujitsu K. Acesta a fost capabil de o viteză maximă Rmax de 10,51 petaflops. Pe baza acestei cifre, ar fi nevoie de Fujitsu K 1,02 x 10 ^ 18 - aproximativ un miliard de miliarde de euro (un cvintillion) - ani pentru a sparge cu forță o cheie AES pe 128 de biți. Aceasta este mai veche decât vârsta universului (13,75 miliarde de ani).

Cel mai puternic supercomputer din lume în 2017 a fost Sunway TaihuLight din China. Această bestie este capabilă de o viteză maximă de 93,02 petaflops. Acest lucru înseamnă că cel mai puternic computer din lume ar mai dura vreo 885 de sferturi de ani pentru a forța bruta o cheie AES pe 128 de biți.

Numărul de operații necesare forțării brute a unui cifru de 256 biți este 3,31 x 10 ^ 56. Aceasta este aproximativ egală cu numărul de atomi din univers!

În 2011, cercetătorii în criptografie au identificat o slăbiciune în AES care le-a permis să crape algoritmul de patru ori mai rapid decât a fost posibil anterior. Dar, după cum a menționat unul dintre cercetători la acea vreme:

„Pentru a pune acest lucru în perspectivă: pe un trilion de mașini, că fiecare ar putea testa un miliard de chei pe secundă, pentru a recupera o cheie AES-128, ar fi nevoie de mai mult de două miliarde de ani.”

Ca răspuns la acest atac, au fost adăugate alte patru runde (a se vedea mai târziu) la procesul de criptare AES-128 pentru a-i crește marja de siguranță.

Atacuri de canal lateral

Așadar, pentru toate intențiile și scopurile, AES în sine este de neîntrerupt atunci când este pus în aplicare corect. Dar nu a fost întotdeauna implementat corect.

Atacurile cu canal lateral caută indicii din sistemul informatic care implementează criptarea AES pentru a afla informații suplimentare. Acest lucru poate fi util în reducerea numărului de combinații posibile necesare forței brute AES.

Aceste atacuri folosesc informații de sincronizare (cât durează computerul pentru a efectua calcule), scurgeri electromagnetice, indicii audio și chiar indicii optice culese folosind o cameră de înaltă rezoluție pentru a descoperi informații suplimentare despre modul în care sistemul procesează criptarea AES..

Un bine-cunoscut atac de canal lateral împotriva AES a dedus cu succes cheile de criptare AES-128, monitorizând cu atenție utilizarea comună a criptelor a tabelelor de cache ale procesoarelor..

AES implementat în mod corespunzător atenuează atacurile de canal lateral, prin prevenirea unor moduri posibile de scurgere a datelor (care este în cazul în care utilizarea setului de instrucțiuni AES bazat pe hardware ajută) și prin utilizarea tehnicilor de randomizare pentru a elimina relația dintre datele protejate de cifru și orice date scurse care ar putea fi colectate folosind un atac de canal lateral.

Parole nesigure

Criptarea AES este la fel de sigură ca cheia sa. Aceste chei sunt securizate invariabil ele însele folosind parole și știm cu toții cât de îngrozitori suntem noi oamenii folosind parole sigure. Keylogger-urile introduse de viruși, atacuri de inginerie socială și altele asemenea pot fi, de asemenea, modalități eficiente de a compromite parolele care securizează cheile AES.

Utilizarea managerilor de parole atenuează foarte mult această problemă, la fel ca utilizarea firewall-urilor cu două sensuri, a unui software antivirus bun și a unei educații sporite despre problemele de securitate..

Un scurt istoric de criptare AES

Când erai copil, ai jucat jocul în care ai creat un „mesaj secret” prin înlocuirea unei litere a mesajului cu alta? Înlocuirea a fost făcută după o formulă aleasă de dvs..

S-ar putea, de exemplu, să înlocuiți fiecare literă a mesajului original cu una din trei litere în spatele alfabetului. Dacă altcineva ar ști care este această formulă sau a fost capabil să o elaboreze, atunci vor putea citi „mesajul tău secret”.

În jargonul criptografic, ceea ce făceai era „criptarea” mesajului (datelor) conform unui algoritm matematic foarte simplu.

Criptarea a fost folosită pentru a ascunde date sensibile încă din cele mai vechi timpuri, dar a venit cu adevărat în sine în timpul secolului al XX-lea. În timpul celui de-al Doilea Război Mondial, germanii și-au asigurat faimos comunicările folosind mașina Enigma, codul pentru care a fost la fel de faimos crapat de Alan Turing în Parcul Bletchley.

Ce este criptarea DES

Standardul de criptare a datelor (DES) a fost creat la mijlocul anilor ’70 pentru a asigura comunicațiile guvernamentale americane. A devenit primul algoritm de criptare modern, public, disponibil liber și, astfel, a creat aproape singură disciplina modernă a criptografiei.

Deși dezvoltat de IBM, DES a fost creierul Biroului Național de Standarde (BNS, care a devenit ulterior NIST).

În ciuda îngrijorărilor cu privire la amestecul de către ANS, DES a fost adoptat de guvernul SUA în 1976 pentru "sensibil, dar neclasificat" trafic. Aceasta a inclus lucruri precum informații personale, financiare și logistice.

Deoarece nu exista nimic altceva ca la vremea respectivă, acesta a devenit rapid adoptat pe scară largă de companiile comerciale care au necesitat criptarea pentru a-și asigura datele. Ca atare, DES (care a folosit tastele pe 56 de biți) a devenit standardul de criptare standard de cod de lucru timp de aproape două decenii.

Această adopție aproape omniprezentă a fost foarte mult ajutată de faptul că DES a primit statutul de standarde federale de prelucrare a informațiilor (FIPS). Toate agențiile guvernamentale non-militare din SUA și contractorii guvernamentali civili trebuie să utilizeze numai standardele FIPS.

Cu toate acestea, la mijlocul anilor 1990, DES a început să-și arate vârsta. În acest moment, se credea în mare măsură că NSA ar putea crapa forța brută DES, un punct dovedit în 1998, când o mașină de 220.000 de dolari construită de Electronic Frontier Foundation (EFF) a reușit să se dezbrace cu forță în doar două zile. Era clar momentul pentru un nou standard.

Cum a apărut AES

În 1997, Institutul Național de Standarde și Tehnologie din Statele Unite (NIST) a anunțat că a fost în căutarea unui înlocuitor pentru DES. În noiembrie 2001, a anunțat că câștigătorul: AES, cunoscut anterior ca Rijndael după unul dintre co-creatorii săi.

La recomandarea NIST, noul cifrat a fost adoptat oficial de guvernul federal al SUA și a intrat în uz efectiv în mai 2002. Ca și DES înainte, AES a primit statutul de FIPS. Guvernul SUA consideră că toate dimensiunile cheilor AES sunt suficiente pentru informații clasificate până la "Secret" nivel, cu "Strict secret" informații care necesită AES-192 sau AES-256.

AES a înlocuit în totalitate DES în toată lumea ca standard de criptare simetrică standard de lucru.

Cum funcționează criptarea AES?

Algoritmul de criptare AES criptează și decriptează datele în blocuri de 128 biți. Poate face acest lucru folosind taste de 128 biți, 192 biți sau 256 biți. AES folosind taste de 128 biți este adesea denumit AES-128 și așa mai departe.

Diagrama următoare oferă o imagine de ansamblu simplificată a procesului AES ...

cum funcționează criptarea AES

Text simplu

Acestea sunt datele sensibile pe care doriți să le criptați.

Cheie secreta

Aceasta este o variabilă pe 128 biți, 192 biți sau 256 biți creată de un algoritm.

Cifru

Apoi, cifrul AES efectuează o serie de transformări matematice folosind textul în text și cheia secretă ca punct de plecare. În ordine, acestea sunt:

  1. Extindere cheie. Aceasta folosește cheia secretă originală pentru a obține o serie de noi „taste rotunde” folosind algoritmul de programare a cheilor Rijndael..
  2. Amestecarea. Fiecare cheie rotundă este combinată cu textul complet folosind algoritmul XOR aditiv.

    AES Encryption roundKey

  3. Înlocuirea datelor rezultate utilizând un tabel de substituție. Această etapă este foarte similară în principiu (dacă este mult mai complexă în practică) cu cifrele de substituție pe care le-ați creat ca copil.Criptare AES SubBytes

  4. Shift rânduri. În care fiecare octet din coloana de 4 x 4 din șaisprezece octeți care formează un bloc de 128 de biți este mutat la dreapta.AES Schimbare de criptare AES

5. Amestecă coloane. Un algoritm suplimentar este aplicat fiecărei coloane.

Creșteți și repetați. Procesul se repetă de mai multe ori, fiecare repetare fiind cunoscută sub numele de rundă. Fiecare rundă este criptată folosind una dintre tastele rotunde generate în timpul extinderii tastei (pasul 1).

Numărul de runde efectuate depinde de lungimea cheii utilizate. AES-128 folosește zece runde, AES-192 folosește douăsprezece runde, iar AES-256 folosește paisprezece runde.

Fiecare rundă suplimentară reduce șansa unui atac scurt de tipul celui care a fost folosit pentru a ataca AES-128 din 2011. După cum sa menționat deja, ca urmare a acestui atac, au fost adăugate patru runde suplimentare la AES-128 pentru a-și îmbunătăți marjele de siguranță..

Textul Cipher

Aceasta este ieșirea criptată din cifră după ce a trecut prin numărul specificat de runde.

Cum decriptați criptarea AES

Decriptarea AES este simplă - întoarceți doar toți pașii de mai sus, începând cu tasta rotundă inversă. Desigur, trebuie să aveți cheia secretă originală pentru a inversa procesul folosind fiecare tastă rotundă inversă.

Criptarea unui fișier îl face mai mare?

Da. De obicei. AES folosește o dimensiune de bloc fixă ​​de 16 biți. Dacă un fișier nu este multiplu de dimensiunea unui bloc, AES folosește căptușirea pentru a completa blocul.

În teorie, acest lucru nu înseamnă neapărat o creștere a dimensiunii datelor criptate (a se vedea furtul cu cifră de text), ci doar adăugarea de date în blocul de bloc este de obicei mult mai ușoară. Ceea ce crește cantitatea de date care sunt criptate.

Dovezile anecdotice sugerează că fișierele mai mari de 1 MB criptate cu AES tind să fie cu aproximativ 35% mai mari decât înainte de criptare.

Cât de importante sunt dimensiunile cheilor în criptarea AES?

Cea mai crudă modalitate de a măsura puterea unui cifru este prin mărimea cheii sale. Cu cât este mai mare cheia, cu atât sunt mai multe combinații posibile.

AES se poate folosi cu dimensiuni de chei de 126 biți, 192 biți sau 256 biți. Cifrarea Rijndael originală a fost proiectată pentru a accepta lungimi suplimentare de cheie, dar acestea nu au fost adoptate în AES.

Atacuri de forță brută

Cu cât algoritmul este mai complex, cu atât cifrul este mai greu să crape folosind un atac de forță brută. Acest atac de formă foarte primitiv este cunoscut și ca o căutare exhaustivă a cheilor. Practic implică încercarea fiecărei combinații de numere posibile până când se găsește cheia corectă.

După cum știm sigur, calculatoarele efectuează toate calculele folosind numere binare: zerouri și altele. Și după cum am văzut, complexitatea unui cifru depinde de mărimea cheii sale în biți - numărul brut al celor și zerourilor necesare pentru a-și exprima algoritmul, unde fiecare zero sau unul este reprezentat de un singur bit.

Aceasta este cunoscută sub numele de lungime cheie și reprezintă, de asemenea, fezabilitatea practică de a efectua cu succes un atac de forță brută asupra oricărui cifru dat.

Numărul de combinații posibile (și, prin urmare, dificultatea forței brute) le crește exponențial cu dimensiunea cheii. Pentru AES:

Așa cum am discutat deja, ar fi nevoie de cel mai rapid supercomputer din lume mai lung decât vârsta universului pentru a fisura chiar și o cheie AES-128 cu forța!

Rundele de criptare

Așa cum am discutat, cu cât este mai lungă cheia folosită de AES, cu atât ea trece prin criptare. Acest lucru este în principal pentru a preveni atacurile de scurtături care pot reduce complexitatea computationară a cifrelor și, prin urmare, ușurează forțarea brută a cifrării.

După cum spunea criptograful renunțat Bruce Schneier despre atacul de scurtături din 2011 pe AES-128,

„Criptografia se referă la marjele de siguranță. Dacă puteți rupe n runda unui cifru, îl proiectați cu 2n sau 3n rotunde. "

El a recomandat introducerea mai multor runde pentru fiecare dimensiune de cheie în AES, dar NIST consideră că nivelurile actuale sunt suficiente.

Deci, de ce să folosiți mai mult decât AES-128?

Toate acestea punând întrebarea: dacă ar fi nevoie de mai mult decât vârsta universului pentru a sparge chiar și AES-128, de ce să vă deranjezi să folosiți AES-192 sau AES-256? După cum a remarcat Schneier:

„Sugerez că oamenii nu utilizează AES-256. AES-128 oferă mai mult decât suficientă marjă de securitate pentru viitorul previzibil. Dar dacă utilizați deja AES-256, nu există niciun motiv să vă schimbați. "

Într-adevăr, Schneier a susținut în trecut că AE-128 este, de fapt, mai sigur decât AES, deoarece are un program cheie mai puternic decât AES-256.

Deci, de ce este păstrat AES-256 ca standard de aur pentru criptarea cheilor simetrice?

Marje de siguranță

Atacul de comenzi rapide din 2011 demonstrează că, oricât de siguri consideră experții un algoritm criptografic, oamenii inventivi vor găsi întotdeauna modalități la care nimeni nu s-a gândit să le slăbească.

Ca și în cazul numărului de runde utilizate, o dimensiune mai mare a cheii oferă o marjă de siguranță mai mare împotriva impiedicării.

Bling

Efectul comercializării nu trebuie ignorat atunci când se ia în considerare omniprezența criptării AES-256. Simplul fapt că AES-256 este considerat pe scară largă drept cel mai sigur cifru de criptare simetric din lume, face ca alegerea numărul unu pentru mulți.

Adică, dacă AES-128 este bun, atunci trebuie doar să motivăm că AES-256 trebuie să fie mai bun, nu?

Faptul că guvernul american folosește AES-256 pentru a-și asigura cele mai sensibile date nu face decât să adauge valoarea sa „bling” și permite companiilor VPN și altele asemenea să pretindă că folosesc criptarea „grad militar”..

Având în vedere că această „percepție blingă” este (în mare parte) exactă, în popularitatea AES-256 există un prejudiciu redus (deși vezi notele de pe NIST mai jos).

AES și OpenVPN

Utilizatorii VPN, în special, însă, ar trebui să fie atenți. Majoritatea serviciilor VPN folosesc AES-256 pentru securizarea datelor transmise prin protocolul OpenVPN, dar acesta este unul dintre diferitele mecanisme utilizate de OpenVPN pentru a păstra securitatea datelor.

O conexiune TLS asigură transferul cheilor de criptare utilizate de AES pentru securizarea datelor când se utilizează OpenVPN. Deci, dacă setările OpenVPN TLS (canal de control) sunt slabe, datele pot deveni compromise, în ciuda faptului că sunt criptate folosind AES-256. Pentru mai multe detalii, consultați Ghidul nostru final de criptare VPN.

AES-CBC vs AES-GCM

Până de curând, singurul cifru AES pe care probabil că l-ai întâlnit în lumea VPN a fost AES-CBC (înlănțuirea blocului de cifre). Aceasta se referă la modul de criptare bloc, un subiect complex care nu merită să intri aici.

Deși teoretic CBC poate avea anumite vulnerabilități, consensul este că CBC este sigur. CBC este, într-adevăr, recomandat în manualul OpenVPN.

OpenVPN acceptă acum și AES-GCM (Galios / Counter Mode). GCM asigură autentificarea, eliminând necesitatea unei funcții HHAC SHH. De asemenea, este puțin mai rapid decât CBC, deoarece folosește accelerația hardware (prin filetarea în mai multe nuclee de procesor).

AES-CBC rămâne cel mai frecvent mod de utilizare generală, dar AES-GCM crește în popularitate. Având în vedere avantajele GCM, această tendință este probabil să continue. Totuși, din perspectivă criptografică, atât AES-CBC, cât și AES-GCM sunt foarte sigure.

NIST

AES este un standard certificat NIST. Acesta este un organism care, prin admitere, lucrează îndeaproape cu ANS în dezvoltarea cifrelor sale.

Având în vedere ceea ce știm acum despre eforturile sistematice ale ANS de a slăbi sau a încorpora în aer liber în standardele internaționale de criptare, există toate motivele pentru a pune sub semnul întrebării integritatea algoritmilor NIST. Desigur, NIST respinge cu tărie aceste afirmații:

„NIST nu ar slăbi în mod intenționat un standard criptografic.”

De asemenea, a invitat participarea publicului la o serie de viitoare standarde de criptare propuse, într-o acțiune menită să consolideze încrederea publicului.

The New York Times, însă, a acuzat ANS că eludează standardele de criptare aprobate de NIST, fie prin introducerea unor părți din spate nedetectabile, fie prin inversarea procesului de dezvoltare publică pentru a slăbi algoritmii.

Această neîncredere a fost sporită și mai mult atunci când RSA Security (o divizie a EMC) le-a spus clienților în mod privat să înceteze să folosească un algoritm de criptare care, probabil, conține un defect conceput de NSA. Acest algoritm a fost, de asemenea, aprobat de NIST.

Mai mult, Dual_EC_DRBG (Generator de bituri aleatorii aleatorului curbului eliptic Dual_lipic) este un standard de criptare conceput de NIST. Se știe că este nesigur de ani buni.

În 2006, Universitatea de Tehnologie Eindhoven din Olanda a remarcat că un atac împotriva acesteia a fost destul de ușor de lansat pe „un computer obișnuit”. Inginerii Microsoft au semnat, de asemenea, o suspectă backdoor în algoritm..

În ciuda acestor preocupări, unde conduce NIST, industria urmează. Acest lucru se datorează în mare parte faptului că respectarea standardelor NIST este o condiție prealabilă pentru obținerea de contracte guvernamentale americane (FIPS).

Standardele criptografice certificate NIST, cum ar fi AES, sunt aproape omniprezente în toată lumea, în toate domeniile industriei și afacerilor care se bazează pe confidențialitate. Acest lucru face ca toată situația să fie mai degrabă rece.

Poate tocmai pentru că se bazează atât de mult pe aceste standarde, experții în criptografie nu au dorit să facă față problemei.

Credit imagine: xkcd.com/538.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me