Yuichiro Chino / Getty Images
Criptografie #4: La voia întâmplării23 min read
Ți-ai lăsa parolele și alte informații sensibile într-o bază de date protejată cu numere aleatorii și irepetabile? Uneori, securitatea nu stă numai în matematică sofisticată, ci și în (im)probabil.
Câtă siguranță îți inspiră un proces stochastic? Prin însăși definiția termenului, care trimite la originile latinești, la zarurile aruncate, aleatoriul îți oferă cel mult o șansă, o posibilitate – dacă ai noroc. Totuși, dezordinea pe care o aduc numerele generate (aproape) aleatoriu este esențială în designul celor mai importante sisteme criptografice ale prezentului și ale viitorului.
Securitatea digitală se bazează pe un echilibru între probleme de matematică foarte dificile și implementarea lor într-un sistem informatic sub o formă asimetrică: efortul și costul computațional pentru decriptare trebuie să fie cu mult mai mari decît cele necesare criptării.
Indiferent de aplicație și de complexitate, sistemele criptografice folosesc numere prime. Pentru că nu se cunoaște exact distribuția lor, găsirea următorului număr prim este o competiție deschisă, pentru matematicieni și informaticieni deopotrivă, în care se investesc milioane de dolari. Cu toate astea, faptul că există o definiție și mai multe caracterizări ale numerelor prime le face, într-un fel, previzibile.
CITEȘTE ȘI: Criptografie #1: Secretul numerelor prime
În plus, toate criptosistemele moderne sunt publice, astfel încât algoritmii pot fi aflați de oricine prin doar câteva clickuri. Puterea de calcul adusă de computerele cuantice sugerează că nu mai durează mult până ce hackerii vor prelua controlul. Dar în afară de metode matematice riguroase și tot mai sofisticate, incluse în așa-numita criptare post cuantică, experții în securitate digitală mai au o metodă de apărare, subtilă și aproape incontrolabilă, cu origini surprinzătoare.
Dezordinea materiei
Studiul materiei, sub toate stările de agregare, alcătuiește una dintre cele mai vechi ramuri ale fizicii: termodinamica. Înainte ca teorii despre atomi și molecule să devină populare în explicații pentru fenomene naturale diverse, termodinamica se ocupa cu proprietăți macroscopice ale substanțelor: presiune, volum, temperatură.
În secolul XVII, studiile amănunțite despre vid și presiune atmosferică ale lui Otto von Guericke contrazic dictonul milenar al lui Aristotel, conform căruia „natura disprețuiește vidul“, iar germanul reușește construcția primei pompe de vid. Perspectiva nouă în termodinamică a venit odată cu metodele statistice din anii 1850, prin James Clerk Maxwell, Ludwig Boltzmann, Rudolf Clausius, Josiah W. Gibbs și alții.
Teoriile lor, parțial matematice, parțial postulate, arată că mărimile macroscopice ale gazelor, lichidelor și solidelor se datorează mișcărilor și proprietăților la nivel molecular. De exemplu, temperatura este explicată de agitația termică a particulelor – cu cât moleculele sunt mai agile, cu atât temperatura este mai mare –, iar presiunea apare din ciocnirile dintre molecule și cu pereții vasului care conține substanța.
În aparență, astfel de explicații reduc studiul presiunii, temperaturii și volumului la mecanică, prin așa-numita teorie cinetico-moleculară. Însă noutatea apare când Boltzmann, Maxwell și Gibbs introduc metode statistice. Comportamentul observabil dintr-un vas cu lichid este imposibil de pus pe seama mișcărilor și ciocnirilor individuale ale moleculelor (despre care Amedeo Avogadro arătase că sunt în număr uriaș, de ordinul 1023 particule în doar câteva grame de substanță) și apare, mai degrabă, ca un rezultat statistic. Importanța individuală lasă loc majorității, studiată prin medie, mediană și alte instrumente de calcul stochastic.
Clausius publică în 1850 o lucrare despre căldură, forma termodinamică a energiei, în care exprimă unul dintre cele mai importante și, totodată, dezbătute principii ale fizicii clasice: legea a doua a termodinamicii. La prima vedere, ea arată un fapt evident: este imposibil ca un corp cald să se încălzească sau unul rece să se răcească fără o intervenție exterioară (de unde să primească energie sau lucru mecanic, ca în cazul plitelor sau frigiderelor).
Implicațiile acestei legi au ajuns însă mult mai departe, cu ajutorul interpretărilor matematice și statistice. Boltzmann, Maxwell și Gibbs, principalii teoreticieni ai metodelor statistice în termodinamică, împreună cu Clausius însuși, au arătat că, în respectarea legii a doua a termodinamicii, natura creează o cantitate ciudată: entropia.
Noutatea conceptului și dificultatea înțelegerii lui au fost atît de mari, încît Leon Cooper, laureat Nobel pentru Fizică în 1972, spunea despre fizicieni că „au introdus un termen care înseamnă același lucru pentru toată lumea: nimic“.
Cea mai populară interpretare a entropiei este aceea de „dezordine“. Intuitiv, cu cât entropia este mai mare, cu atât un sistem are mai multe stări posibile, deci e cu atât mai greu să-i știi precis parametrii. Dar ca să înțelegi impactul acestei caracterizări, ai nevoie de una dintre cele mai importante descoperiri ale lui Boltzmann, atât de puternice, încât a ales să-i fie gravată pe piatra de mormânt: este în natura sistemelor fizice ca entropia să crească.
Altfel spus, indiferent de configurație, evoluția „de la sine“ a sistemelor termodinamice (și nu numai) este către mai multă dezordine. Te poți opune acestei tendințe doar limitat și cu un cost suplimentar de energie exterioară.
Informație și comunicare
La aproape un secol după Clausius, Boltzmann și Maxwell, americanul Claude Shannon găsește o interpretare nouă a entropiei și creează simultan o nouă ramură a științei. Perioada celui de-al doilea Război Mondial a accelerat dezvoltarea sistemelor de telecomunicații, iar mulți cercetători au adus inovații în electronică digitală și teoria semnalelor. Însă formarea de matematician a lui Shannon l-a îndrumat către o abordare diferită. În 1948 publică articolul // Îl poți citi pe people.math.harvard.edu // prin care începe, în sens riguros și matematic, studiul teoriei informației.
Dacă emițătorul și receptorul știu deja mesajul, atunci transmiterea informației devine fără sens – pentru că s-a făcut deja, instantaneu și cu fidelitate maximă. Dar teoria semnalelor și, cu atât mai mult implementarea electronică, făceau inevitabile distorsiunile, zgomotul pe canalul de transmisie, care, la rândul lui, are o capacitate limitată.
Shannon propune astfel o teorie care să funcționeze și în cele mai imprevizibile condiții: când mesajul transmis este aleatoriu. După ce emițătorul alege, cu o anumită probabilitate, un mesaj dintr-o listă de posibilități, îl va transmite cu respectarea electronicii și teoriei semnalelor, care sunt precise și cunoscute. Mai trebuie doar o metodă prin care alegerea mesajului să devină controlabilă, pentru că altfel, destinatarul nu are cum să știe cît din ce a recepționat e mesaj și cât zgomot sau cât s-a pierdut pur și simplu.
Inspirația îl face pe Shannon să descrie, în articolul din 1948, o mărime care să conțină această imprecizie în alegerea mesajului, pe care o numește, deloc întâmplător, entropie. Paralela este evidentă: la fel cum entropia unui sistem termodinamic măsoară „dezordinea“, adică incertitudinea în a cunoaște stările moleculelor, la fel și în teoria informației, entropia este o măsură a posibilităților în alegerea mesajului de transmis.
Entropia nulă apare când un singur mesaj dintre toate are probabilitate de 100%, fiindcă nu mai e nimic de ales, iar maximum de entropie este cînd toate mesajele sunt la fel de probabile – așa-numita distribuție uniformă.
Ce importanță au aceste metode de măsurare a dezordinii într-un domeniu în care lipsa controlului poate însemna fisuri prin care se scurg informații prețioase?
Aleatoriu, dar controlat
Puterea unui algoritm criptografic stă în rezistența la atacuri de orice fel: bine calculate, cu forță brută, prin manipulare sau chiar noroc. De aceea, criptarea trebuie să conțină și un grad de aleatoriu, chiar dacă asta înseamnă îngreunarea sarcinii inclusiv pentru cei care transmit mesajul.
Dar ce înseamnă, de fapt, „aleatoriu“? Mai este aleatoriu un eveniment care se produce în urma unei specificații, oricât de ambiguă? Zarul sau moneda aruncate sunt influențate de factori fizici, iar site-ul random.org funcționează pe baza unui algoritm. Șansa perfectă pare că nu există, pentru că orice constrângere în descrierea sau implementarea ei înseamnă o doză de control, opusă hazardului.
De aceea, în criptografie și nu numai, se folosesc așa-numitele // // PRNG, Pseudo Random Number Generators // ele sunt rezultatul unor algoritmi specificați, dar caracterul (pseudo)aleatoriu se referă la dificultatea de a-l prezice pe următorul și raritatea repetărilor. De exemplu, după cel mult șapte aruncări ale unui zar, numărul apărut se va repeta, fiindcă posibilitățile sunt doar de la 1 la 6.
Majoritatea algoritmilor care generează numere pseudoaleatorii funcționează pe baza unui input inițial, numit seed. Fie că este introdus de utilizator sau computerul îl alege singur, acest pas este necesar, ca „prima cheie“ dată unei mașini.
Istoric vorbind, prima metodă de tip PRNG este atribuită matematicianului de geniu John von Neumann. În 1946, el a descris un algoritm, numit „pătratul din mijloc“ (middle square method), care generează un număr suficient de mare (cîteva zeci de cifre), apoi cifrele din mijlocul numărului devin seed pentru următorul număr, obținut prin ridicare la pătrat.
De exemplu, dacă primul număr este 12345, primul seed ar putea fi 234, iar din el se generează 2342 = 54756. Mai departe, se ia de aici seed-ul următor, 475 ș.a.m.d. Astăzi, metoda are doar importanță istorică, pentru că la nivelul curent al puterii de calcul din 2025, abia numere cu câteva sute de cifre sunt sigure.
Unele dintre cele mai interesante metode PRNG – deși nu neapărat sigure – sunt cele bazate pe hardware, adică pe echipament suplimentar sau chiar pe componente ale computerului pe care rulează. De exemplu, unii algoritmi din limbaje de programare folosesc drept seed inițial ceasul intern al computerului. Alte metode, și mai creative, se bazează pe lămpi decorative cu lichid, numite (impropriu) lava lamps. În fine, în laboratoare performante se folosesc inclusiv efecte cuantice, fiindcă lumea subatomică are un comportament bazat pe probabilități.
Unde găsești PRNG
Mulți algoritmi criptografici moderni au nevoie de un punct de pornire, o inițializare a procedurii care, ulterior, aplică metode matematice tot mai complicate pînă la rezultatul final.
Un caz special este Veracrypt, o aplicație pentru securizarea datelor de pe hard disk. Cheile de criptare sunt obținute direct printr-un PRNG: aplicația îndeamnă utilizatorul să miște mouse-ul viguros și astfel generează entropie – dezordine și imprevizibil –, din care extrage un seed.
Alte situații în care sunt necesare metode de tip PRNG sunt așa-numitele chei de unică folosință sau nonce. Cu siguranță ai întâlnit astfel de sisteme când ai apelat la autentificarea cu doi (sau mai mulți) factori. O aplicație de mobil îți trimite un cod unic prin SMS sau prin interfața aplicației, pe care îl introduci pentru a finaliza autentificarea. Codul respectiv expiră în câteva minute și este, pentru toate scopurile, de unică folosință, așa că nu sunt necesare foarte multe precauții de securitate.
Aleatoriul are un rol decisiv și într-o procedură denumită amuzant: adăugarea de sare la un cod. Multe sisteme criptografice stochează informații sensibile sub formă de hash: transformă textul clar introdus de utilizator ca username, parolă sau mesaje (dacă e vorba de un sistem criptat ca WhatsApp sau Signal) în caractere modificate irecuperabil, printr-o procedură numită hashing. Atunci când operatorii de date spun că nici ei nu pot recupera contul sau mesajele unui client, (de obicei) nu mint; hash-ul este făcut în așa fel încât să nu poată fi inversat, decât cu ambiguitate: obții cel mult o listă de posibile mesaje și nicio metodă prin care să-ți dai seama care este cel original.
Dar lucrurile se pot complica și mai tare cu ajutorul „sării“, care protejează împotriva unui atac simplu, bazat pe lungimea cuvintelor. De exemplu, dacă în textul criptat apar des grupuri de cîte trei caractere, eventual aceleași, poți începe să ghicești că ele corespund unui cuvânt comun ca „azi“, „joi“, „iau“, „dau“ ș.a.m.d.
Adăugarea de sare (salted hash) împiedică acest atac, făcând toate cuvintele de aceeași lungime: de exemplu, cinci caractere. Dacă cuvântul inițial nu are deja cinci caractere, se adaugă aleatoriu (printr-un PRNG) caracterele lipsă. Dacă, dimpotrivă, cuvântul are prea multe caractere, se sparge în blocuri de lungime cinci și blocurilor mai scurte li se adaugă, tot prin PRNG, caractere lipsă. Astfel, cifrul rezultat va avea doar „cuvinte“ de câte cinci caractere și este imposibil de știut dacă s-a adăugat sare sau nu, fiindcă decriptarea unui hash nu se poate face unic.
Apărute inițial pentru automatizări perfecte, adică eliminarea oricărei urme de decizie umană, metodele PRNG au evoluat mult din anii 1950, iar exemplele de aici abia deschid subiectul, atât în general, cât și în aplicații criptografice. În prezent, securitatea bazată pe numere aleatorii și procedurile PRNG sunt reglementate de organisme precum NIST (National Institute of Standards and Technology), FIPS (Federal Information Processing Standard) sau ANSI (American National Standards Institute).
Realitatea este că, indiferent de complexitatea matematică a metodei criptografice și chiar de puterea de calcul a unui atacator, nimic nu poate învinge un sistem care alege numerele pur și simplu la întâmplare.