Când vine vorba de securitatea cibernetică, AES este unul dintre acele acronime pe care le vedeți apărând peste tot. Acest lucru se datorează faptului că a devenit standardul global de criptare și este utilizat pentru a menține în siguranță o cantitate semnificativă din comunicațiile noastre.
Standardul avansat de criptare (AES) este o formă rapidă și sigură de criptare care ține ochii îndepărtați de datele noastre. Îl vedem în aplicații de mesagerie de genul WhatsApp și Semnal, programe de genul VeraCrypt și WinZip, într-o gamă de hardware și o varietate de alte tehnologii pe care le folosim tot timpul.
De ce a fost dezvoltat AES?
Cele mai vechi tipuri de criptare au fost simple, folosind tehnici precum schimbarea fiecărei litere într-o propoziție cu cea care vine după ea în alfabet. Sub acest tip de cod, propoziția anterioară devine:
După cum vedeți, acest cod simplu îl face complet ilizibil. În ciuda inițialității nelegibile, dacă ai avea timp și ai ști că este un cod și nu doar o mulțime de caractere aruncate pe pagină, nu va fi prea dificil să descoperi în cele din urmă..
Pe măsură ce oamenii s-au îmbunătățit la fisurarea codurilor, criptarea trebuia să devină mai sofisticată astfel încât mesajele ar putea fi păstrat secret. Această cursă a armelor de a veni cu metode din ce în ce mai sofisticate, în timp ce alții și-au depus eforturile pentru ruperea lor au dus la tehnici din ce în ce mai complicate, cum ar fi mașina Enigma inventată de germani în primul război mondial.
Creșterea comunicării electronice a fost, de asemenea, un element favorabil pentru criptare. În anii ’70, Biroul Național de Standarde al SUA (BNS) a început să caute un mijloc standard care să poată fi utilizat pentru criptarea informațiilor guvernamentale sensibile. Rezultatul căutării lor a fost adoptarea unui algoritm cheie simetric dezvoltat la IBM, care acum este numit Standard de criptare a datelor (DES). DES a servit scopul său relativ bine pentru următoarele câteva decenii, dar în anii 90, unele probleme de securitate au început să apară.
DES are doar un 56-bit cheie (comparativ cu maxim 256 biți în AES, dar vom ajunge la asta mai târziu), astfel încât tehnologia și metodele de fisurare s-au îmbunătățit, atacurile împotriva acesteia au început să devină mai practice. Primul mesaj criptat DES care a fost deschis în 1997 a fost proiectul DESCHALL într-un an Concurența sponsorizată de RSA Security.
Anul următor, Electronic Frontier Foundation (EFF) a construit un cracker DES care ar putea forța o forță cheie în puțin peste două zile. În 1999, FEP și primul colectiv de calcul pe internet, distributed.net, a colaborat pentru a reduce acest timp sub 24 de ore.
Deși aceste atacuri au fost costisitoare și imposibil de montat, ei au început să arate că domnia DES este întrucât standardul de criptare trecând la sfârșit. Cu putere de calcul crescând exponențial conform Legea lui Moore, a fost doar o chestiune de timp până când DES nu mai putea fi bazat pe.
Guvernul SUA și-a propus o misiune de cinci ani să evalueze o varietate de metode de criptare diferite pentru a găsi un nou standard care să fie sigur. Institutul Național de Standarde și Tehnologie (NIST) a anunțat că a făcut selecția în cele din urmă la sfârșitul anului 2001.
Alegerea lor a fost un subset specific al cifrei de bloc Rijndael, cu un bloc fix de 128 biți și dimensiuni cheie de 128, 192 și 256 biți. A fost dezvoltat de Joan Daemen și Vincent Rijmen, doi criptografi din Belgia. În mai 2002, AES a fost aprobată să devină Standardul federal al SUA și a devenit rapid algoritmul standard de criptare și pentru restul lumii.
Legate de: Ghidul unui începător pentru criptografie
De ce a fost ales acest cifru pentru AES?
Cu orice fel de criptare, există întotdeauna compromisuri. Puteți avea cu ușurință un standard care este exponențial mai sigur decât AES, dar ar dura prea mult timp pentru a cripta și decripta pentru a fi de orice folos practic. În cele din urmă, Cifrarea blocului Rijndael a fost aleasă de NIST pentru abilitățile sale în toată lumea, inclusiv performanțele sale atât pe hardware cât și pe software, ușurința de implementare și nivelul său de securitate.
Cum funcționează AES?
Fiți conștienți că următorul exemplu este o simplificare, dar vă oferă o idee generală despre modul în care funcționează AES. Din păcate, nu există suficientă cafea în lume pentru a face ca majoritatea oamenilor să vrea să treacă prin aspectele mai complicate ale AES. În mod normal, procesul se realizează în mod binar și sunt mult mai mulți matematică.
În primul rând, datele sunt împărțite în blocuri.
În cadrul acestei metode de criptare, primul lucru care se întâmplă este că textul dvs. de text (care este informația pe care doriți să o criptați) este separat în blocuri. Mărimea blocului AES este de 128 biți, deci separă datele într-o coloană patru câte patru de șaisprezece octeți (există opt biți într-un octet și 16 x 8 = 128).
Dacă mesajul dvs. a fost „cumpărați-mi niște chipsuri de cartofi vă rog”, primul bloc arată astfel:
b | m | o | p |
u | e | m | o |
y | e | T | |
s | A |
Vom omite restul mesajului pentru acest exemplu și ne vom concentra doar pe ceea ce se întâmplă cu primul bloc, deoarece este criptat. În mod normal, „… la cipuri vă rugăm” să fie adăugat la următorul bloc.
Extindere cheie
Extinderea cheii presupune luarea cheii inițiale și utilizarea acesteia pentru a veni cu o serie de alte chei pentru fiecare rundă a procesului de criptare. Aceste noi chei rotunde pe 128 de biți sunt derivate din programul de chei al lui Rijndael, care este în esență un mod simplu și rapid de a produce noi cifre de chei. Dacă cheia inițială a fost „tastele sunt plictisitoare1”:
k | eu | ||
e | A | b | n |
y | r | o | g |
s | e | r | 1 |
Apoi, fiecare dintre tastele noi ar putea arăta așa ceva odată ce programul de chei al lui Rijndael a fost utilizat:
14 | 29 | 1h | s5 |
H9 | 9f | Sf | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Deși arată ca niște caractere aleatorii (și exemplul de mai sus este format doar), fiecare dintre aceste chei este derivată dintr-un proces structurat atunci când se aplică efectiv criptarea AES. Vom reveni la ce sunt folosite mai târziu aceste taste rotunde.
Adăugați cheia rotundă
În acest pas, deoarece este prima rundă, cheia noastră inițială este adăugată la blocul mesajului nostru:
b | m | o | p |
u | e | m | o |
y | e | T | |
s | A |
+
k | eu | ||
e | A | b | n |
y | r | o | g |
s | e | r | 1 |
Acest lucru se realizează cu un cifru XOR, care este un algoritm de criptare aditiv. Deși se pare că nu puteți adăuga aceste lucruri împreună, fiți conștienți de faptul că acestea sunt realizate în mod binar. Personajele sunt doar un stand-in pentru a încerca să facă lucrurile mai ușor de înțeles. Să spunem că această operație matematică ne oferă un rezultat al:
h3 | jd | zu | 7s |
S8 | 7d | 26 | 2n |
dj | 4b | 9d | 9c |
74 | el | 2h | hg |
Octeți înlocuitori
În această etapă, fiecare octet este substituit în conformitate cu un tabel predeterminat. Acesta este exemplul de la începutul articolului, în care propoziția a fost codată schimbând fiecare literă în cea care vine după ea în alfabet (buna devine ifmmp).
Acest sistem este puțin mai complicat și nu are neapărat logică în acest sens. În schimb, există un tabel stabilit care poate fi analizat de algoritm, care spune, de exemplu, că h3 devine jb, S8 devine 9f, dj devine 62 si asa mai departe. După acest pas, să spunem că tabelul predeterminat ne oferă:
jb | n3 | ce faci | n2 |
9f | jj | 1h | js |
74 | Wh | 0min | 18 |
hs | 17 | d6 | px |
Shift rânduri
Rândurile Shift este un nume simplu, iar acest pas este în esență ceea ce v-ați aștepta. Al doilea rând este mutat un spațiu spre stânga, al treilea rând este mutat două spații spre stânga, iar al patrulea rând este mutat trei spații spre stânga. Aceasta ne oferă:
jb | n3 | ce faci | n2 |
jj | 1h | js | 9f |
0min | 18 | 74 | Wh |
px | hs | 17 | d6 |
Se amestecă coloane
Acest pas este puțin complicat de explicat. Pentru a decupa majoritatea matematicii și a simplifica lucrurile, să spunem doar că fiecare coloană are o ecuație matematică aplicată pentru a o difuza în continuare. Să spunem că operațiunea ne dă acest rezultat:
ls | J4 | 2n | ma |
83 | 28 | ke | 9f |
9W | xm | 3l | m4 |
5b | a9 | cj | ps |
Adăugați tasta rotundă (din nou)
Vă amintiți acele taste rotunde pe care le-am făcut la început, folosind cheia inițială și programul de chei al lui Rijndael? Ei bine, aici începem să le folosim. Luăm rezultatul coloanelor noastre mixte și adăugăm prima cheie din care am derivat:
ls | J4 | 2n | ma |
83 | 28 | ke | 9f |
9W | xm | 3l | m4 |
5b | a9 | cj | ps |
+
14 | 29 | 1h | s5 |
H9 | 9f | Sf | 9f |
gt | 2h | hq | 73 |
ks | dj | df | hb |
Să presupunem că această operație ne oferă următorul rezultat:
9d | 5b | 28 | sf |
ls | df | hf | 3b |
9t | 28 | CP | 8f |
62 | 7d | 15 | Ah |
Mai multe runde …
Dacă ați crezut că nu, nici măcar nu suntem aproape. După adăugarea ultimei taste, aceasta revine la stadiul de substituție a octeților, unde fiecare valoare este modificată în funcție de un tabel prestabilit. După ce ați terminat, este din nou să schimbați rândurile și să mutați fiecare rând la stânga de unul, două sau trei spații. Apoi trece din nou prin ecuația coloanelor mix. După aceea, se adaugă o altă tastă rotundă.
Nu se oprește nici acolo. La început, s-a menționat că AES are dimensiuni cheie de 128, 192 sau 256 biți. Când se utilizează o cheie pe 128 de biți, există nouă dintre aceste runde. Când se folosește o cheie de 192 biți, există 11. Când se folosește o cheie de 256 biți, există 13. Deci datele trec prin substituția de octeți, rândurile de schimb, coloanele de amestec și pașii rotunzi de până la treisprezece ori fiecare, fiind modificat în fiecare etapă.
După aceste nouă, 11 sau 13 runde, există o rundă suplimentară în care datele sunt prelucrate doar prin înlocuirea octeților, rândurile de schimbare și adăugarea pașilor rotunde, dar nu etapa coloane de mix. Etapa de coloane de mix este efectuată deoarece, în această etapă, ar fi consumat puterea de procesare fără a modifica datele, ceea ce ar face ca metoda de criptare să fie mai puțin eficientă.
Pentru a clarifica lucrurile, întregul proces de criptare AES merge:
Extindere cheie
Adăugați cheia rotundă
Înlocuirea octeților
Shift rânduri
Se amestecă coloane
Adăugați cheia rotundă
x 9, 11 sau 13 ori, în funcție de dacă cheia este 128, 192 sau 256 biți
Înlocuirea octeților
Shift rânduri
Adăugați cheia rotundă
Odată ce datele au trecut prin acest proces complex, originalul dvs. „Cumpărați-mi niște chipsuri de cartofi vă rog” iese în căutarea a ceva de genul „Ok23b8a0i3j 293uivnfqf98vs87a”. Pare un șir de caractere complet aleatoriu, dar după cum puteți vedea din aceste exemple, acesta este de fapt rezultatul multor operații matematice diferite care i se aplică iar și iar.
Care este scopul fiecăruia dintre acești pași?
Multe lucruri se întâmplă atunci când datele noastre sunt criptate și este important să înțelegem de ce. Cheie extinderea este o critică pas, pentru că ne oferă cheile noastre pentru rundele ulterioare. În caz contrar, aceeași cheie ar fi adăugată în fiecare rundă, ceea ce ar facilita fisurarea AES. În prima rundă, se adaugă cheia inițială pentru a începe modificarea textului simplu.
etapa de substituție a octeților, unde fiecare dintre punctele de date este modificat în funcție de un tabel predeterminat, îndeplinește, de asemenea, un rol esențial. Modifică datele într-un mod neliniar, pentru a aplica confuzia informațiilor. Confuzia este un proces care ajută la ascunderea relației dintre datele criptate și mesajul original.
Rândurile de schimbare sunt, de asemenea, critice, efectuarea a ceea ce este cunoscut sub numele de difuzie. În criptografie, difuzarea înseamnă în esență transpunerea datelor pentru a adăuga complicații. Prin mutarea rândurilor, datele sunt mutate din poziția inițială, contribuind în continuare la întunecarea acestora. Se amestecă coloane acționează într-un mod similar, modificând datele pe verticală, mai degrabă decât pe orizontală.
La sfârșitul unei runde, se adaugă o nouă cheie rotundă care a fost derivată din cheia inițială. Acest lucru adaugă o confuzie mai mare la date.
De ce sunt atât de multe runde?
Procesele de adăugarea tastelor rotunde, substituire de byte, schimbarea rândurilor și amestecând coloane modifică datele, dar acestea pot fi încă fisurate prin criptanaliză, care este o modalitate de a studia algoritmul criptografic pentru a le rupe.
Atacuri rapide sunt unul dintre amenințări cheie. Acestea sunt atacuri care pot sparge criptarea cu mai puțin efort decât forțarea brută. Când AES a fost proiectat, atacuri de scurtătură au fost găsite pentru până la șase runde din procesul său. Din această cauză, au fost adăugate patru runde în plus pentru minimum AES pe 128 de biți ca marjă de securitate. Cele 10 runde rezultate oferă metodei de criptare suficient spațiu pentru picioare pentru a preveni atacurile de scurtături în conformitate cu tehnicile și tehnologia de astăzi.
De ce nu adăugăm mai multe runde pentru a îmbunătăți securitatea?
Cu cele mai multe lucruri în securitate, trebuie să existe un compromis între puterea defensivă pură, capacitatea de utilizare și performanța. Dacă ați pune zece uși de oțel cu blocaje în fiecare dintre punctele de intrare în casa dvs., cu siguranță ar fi mai sigur. De asemenea, este nevoie de o perioadă de timp nerezonabilă pentru a intra și a ieși, motiv pentru care nu vedem niciodată pe nimeni.
La fel este vorba despre criptare. Am putea face mai sigur adăugând mai multe runde, dar ar fi, de asemenea, mai lent și mult mai puțin eficient. Cele 10, 12 și 14 runde ale AES au fost soluționate pentru că oferă un compromis bun între aceste aspecte concurente, cel puțin în peisajul tehnologic actual.
Decriptarea AES
Dacă ați reușit să vă orientați în jurul procesului de criptare explicat mai sus, decriptarea este relativ simplă. Pentru a trece de la textul de text înapoi la textul complet al mesajului inițial, totul se face invers.
Dacă începem cu rezultatul nostru criptat din „Ok23b8a0i3j 293uivnfqf98vs87a” și aplicați inversul fiecărei etape de criptare, aceasta începe cu tasta rotundă inversă, apoi rândurile de schimb invers și substituția de octet invers, înainte de a intra în inversul celor 9, 11 sau 13 runde. Arată astfel:
„Ok23b8a0i3j 293uivnfqf98vs87a”
Inverse se adaugă cheia rotundă
Rânduri de schimb invers
Înlocuire inversă a octeților
Inverse se adaugă cheia rotundă
Coloane de amestec invers
Rânduri de schimb invers
Înlocuire inversă a octeților
x 9, 11 sau 13 ori, în funcție de dacă cheia este 128,192 sau 256 biți
Inverse se adaugă cheia rotundă
După acest proces de decriptare, terminăm din nou cu mesajul original: „Cumpărați-mi niște chipsuri de cartofi vă rog”
128 vs 192 vs AES 256 biți
AES are trei lungimi diferite de cheie. Diferența principală este numărul de runde prin care trece datele în procesul de criptare, respectiv 10, 12 și 14. În esență, 192-bit și 256-bit furnizeaza un marja de securitate mai mare decât 128-bit.
În peisajul tehnologic actual, AES pe 128 de biți este suficient pentru cele mai multe scopuri practice. Date extrem de sensibile, gestionate de cei cu un nivel de amenințare extremă, cum ar fi Documente de TOP SECRET controlat de către armată, ar trebui probabil prelucrat cu oricare 192 sau AES de 256 biți.
Dacă sunteți paranoic, poate preferați să folosiți 192 sau 256-bit criptare, acolo unde este posibil. Acest lucru este în regulă dacă vă face mai ușor să dormiți noaptea, dar chiar nu este necesar în majoritatea situațiilor. Nu este lipsit de costuri nici cu cele patru runde în plus Criptare de 256 biți ceea ce îl face cu aproximativ 40 la sută mai puțin eficient.
Probleme de securitate AES
Criptografii testează în mod constant AES pentru slăbiciuni, încearcă să vină cu noi tehnici și valorificând tehnologia care le iese. Acest lucru este esențial, pentru că dacă nu a fost testat în profunzime de către academicieni, atunci infractorii sau statele naționale ar putea găsi în cele din urmă o modalitate de a-l crăpa fără ca restul lumii să știe. Până acum, cercetătorii au descoperit doar pauze teoretice și atacuri de canal lateral.
Atac legat de cheie
În 2009, au fost descoperite o serie de atacuri legate de cheie. Acestea sunt un tip de criptanaliză care presupune observarea modului în care un cifru operează sub diferite chei. Atacurile legate de cheile pe care le-au descoperit cercetătorii nu sunt de mare îngrijorare; acestea sunt posibile numai împotriva protocoalelor care nu sunt implementate corect.
Atac distinctiv cu cheie cunoscută
Din nou în 2009, a existat un atac distinctiv cu cheie cunoscută împotriva unei versiuni de opt runde a AES-128. Aceste atacuri folosesc o cheie care este deja cunoscută pentru a descoperi structura inerentă a cifrului. Deoarece acest atac a fost doar împotriva unei versiuni de opt runde, nu este prea mult să vă faceți griji pentru utilizatorii de zi cu zi de AES-128.
Atac de canal lateral
Au existat mai multe alte atacuri teoretice, dar în baza tehnologiei actuale, ar mai fi nevoie de miliarde de ani pentru a crapa. Aceasta înseamnă că AES în sine este în esență de neîntrerupt în acest moment. În ciuda acestui fapt, AES poate fi în continuare vulnerabilă dacă nu a fost pusă în aplicare în mod corespunzător, în ceea ce este cunoscut sub numele de atac lateral-canal.
Atacuri de canal lateral apar atunci când un sistem scurge de informații. Atacatorul ascultă sunetul, informațiile de sincronizare, informațiile electromagnetice sau consumul de energie pentru a aduna inferențe din algoritmul care poate fi apoi folosit pentru ruperea acesteia.
Dacă AES este pus în aplicare cu atenție, aceste atacuri pot fi prevenite fie prin eliminarea sursei scurgerii de date, fie prin asigurarea existenței unei relații aparente între datele scurse și procesele algoritmice.
Ultima slăbiciune este mai generală decât cea specifică AES, dar utilizatorii trebuie să fie conștienți de faptul că AES nu face automat ca datele lor să fie în siguranță. Chiar și AES-256 este vulnerabil dacă un atacator poate accesa cheia unui utilizator. Acesta este motivul pentru care AES este doar un aspect al păstrării securității datelor. Gestionarea eficientă a parolelor, firewall-urile, detectarea virusului și educarea împotriva atacurilor de inginerie socială sunt la fel de critice în propriile lor modalități.
Este suficient AES?
În epoca actuală, cu toții transmitem o mare parte din datele noastre sensibile online, AES a devenit o parte esențială a securității noastre. Deși a trecut prin 2001, procesul repetat de adăugare de taste, înlocuire de octeți, schimbare de rânduri și mixare de coloane s-a dovedit a fi testul timpului.
În ciuda atacurilor teoretice actuale și a eventualelor atacuri de canal lateral, AES în sine rămâne sigur. Este un standard excelent pentru securizarea comunicării noastre electronice și poate fi aplicat în multe situații în care informațiile sensibile trebuie protejate. Judecând după nivelul actual de tehnologie și tehnici de atac, ar trebui să te simți încrezător folosind-o bine în viitorul previzibil.
De ce avem nevoie de criptare?
Acum că am trecut prin detaliile tehnice ale AES, este important să discutăm de ce este importantă criptarea. La nivelul său de bază, criptarea ne permite codificarea informațiilor, astfel încât doar cei care au acces la cheie pot decripta datele. Fără cheie, pare a fi gibris. Cu ajutorul cheii, mormăiala personajelor aparent aleatorii se întoarce în mesajul său original.
Criptarea a fost folosită de guverne și militari de milenii pentru a evita ca informațiile sensibile să nu cadă în mâinile greșite. De-a lungul anilor s-a transformat din ce în ce mai mult în viața de zi cu zi, mai ales că o parte atât de mare din relațiile noastre personale, sociale și de muncă au migrat acum în lumea online.
Gândește-te doar la toate date pe care le introduceți pe dispozitivele dvs.: parole, date bancare, ta mesaje private și mult mai mult. Fără niciun fel de criptare, aceste informații ar fi mult mai ușor pentru oricine să le intercepteze, fie că sunt criminali, nebuni sau guvern.
Atât de mult informațiile noastre sunt valoroase sau sensibile, deci este clar că trebuie protejat într-un mod astfel încât doar noi și cei pe care îi autorizăm să îi putem accesa. Acesta este motivul pentru care avem nevoie de criptare. Fără aceasta, lumea online nu ar putea funcționa. Am fi dezbrăcați complet de orice confidențialitate și securitate, trimițându-ne viețile online într-un haos absolut.
Vezi si:
Instrument generator de parole
Resurse de criptare: o listă mare de instrumente și ghiduri
Coduri și cifre celebre prin istorie
Statisticile privind securitatea cibernetică & fapte
„Hacking, infracțiuni informatice” de jaydeep_ licențiat sub CC0
AES este cu siguranță unul dintre cele mai importante acronime în ceea ce privește securitatea cibernetică. Este impresionant să vedem cât de mult a evoluat criptarea de-a lungul timpului, de la simplele schimbări de litere la algoritmi avansați precum AES. Este important să ne protejăm datele și comunicările, iar AES este un instrument valoros în acest sens. Este interesant să vedem cum a fost dezvoltat și cum funcționează, precum și problemele de securitate cu care se confruntă. În orice caz, AES este un standard global și este folosit într-o varietate de tehnologii, ceea ce demonstrează importanța sa în lumea digitală de astăzi.