Un generator hardware de numere aleatorii ( generator de numere aleatoare adevărate ) este un dispozitiv care generează o secvență de numere aleatorii bazate pe parametrii măsurați, care se schimbă haotic, ai unui proces fizic în curs. Funcționarea unor astfel de dispozitive se bazează adesea pe utilizarea unor surse fiabile de entropie , cum ar fi zgomotul termic, zgomotul de împușcare , efectul fotoelectric , fenomenele cuantice etc. Aceste procese sunt absolut imprevizibile în teorie, dar în practică numerele aleatoare obținute din ele sunt verificate cu ajutorul unor teste statistice speciale .
Generatoarele hardware de numere aleatorii sunt utilizate în principal pentru testarea statistică și în criptografie , unde sunt folosite pentru a genera chei criptografice pentru transmiterea datelor criptate. De asemenea, astfel de dispozitive sunt utilizate pe scară largă în cazinourile online pentru a simula, de exemplu, ruleta . Dar, din cauza complexității implementării și a relative lente, utilizarea unor astfel de generatoare depinde de nevoile unui anumit domeniu și de proiectarea generatorului în sine.
Zarurile simple , utilizate pe scară largă în jocurile de noroc în trecut și în jocurile de societate astăzi, sunt cel mai simplu generator de numere aleatoare adevărate. În 1890, cercetătorul englez Francis Galton a descris o metodă de utilizare a zarurilor pentru a genera numere aleatorii în scopuri științifice [1] .
O dezvoltare ulterioară a generatoarelor hardware de numere aleatorii poate fi considerată dispozitive speciale - aparate de loterie , utilizate pentru a genera numere la loto și keno . Acestea constau în principal dintr-un tambur care amestecă bilele cu numere și un dispozitiv care le scoate din el unul câte unul. Cu toate acestea, această metodă de generare este foarte lentă și nepotrivită pentru generarea automată de matrice mari de date [2] .
Pentru sarcinile aplicate, au fost necesare cantități mari de date. În 1939 , M. J. Kendall și B. Babington-Smith au construit prima mașină de generare de numere aleatoare pentru a construi un tabel 100.000 de numere aleatoare. Și după 16 ani, corporația RAND , folosind dispozitive speciale, a construit un tabel cu un milion de numere aleatorii. În ciuda renașterii metodei tabulare în 1996 de către J. Marsaglia , care a construit 650 MB de numere aleatoare, domeniul de aplicabilitate a unor astfel de tabele este foarte îngust [3] .
Mult mai răspândite sunt generatoarele de numere aleatorii care le generează în timp real. În 1951, în computerul Ferranti Mark 1 a fost inclus un program care genera numere aleatorii folosind zgomotul rezistenței . Ideea creării acestui program i-a aparținut lui A. Turing [4] . Și în 1957, a fost inventată mașina ERNIE (Echipament electronic cu indicator al numărului aleatoriu) , a cărei versiune a patra a fost introdusă în 2004. Acest dispozitiv a fost conceput inițial pentru a genera numere de obligațiuni câștigătoare la loteria britanică [5] .
Generatoarele hardware de numere aleatoare pot fi bazate pe procese aleatoare macroscopice folosind obiecte precum o monedă, o matriță sau o roată de ruletă. Prezența impredictibilității în date este explicată prin teoria sistemelor dinamice instabile și teoria haosului . Chiar și sistemele macroscopice complet definite de ecuațiile lui Newton în practică au o ieșire imprevizibilă, deoarece depinde de detaliile microscopice ale condițiilor inițiale [6] .
Dispozitivele bazate pe procese aleatoare macroscopice nu pot oferi viteza de obținere a numerelor aleatoare suficientă pentru problemele aplicate. Prin urmare, AGNG-urile moderne se bazează pe o sursă de zgomot din care sunt extrași biți aleatori . Sursele de zgomot se împart în două tipuri: având natură cuantică și nu utilizează fenomene cuantice [7] [8] .
O consecință a legilor fizicii cuantice este faptul că unele fenomene naturale (de exemplu, dezintegrarea radioactivă a atomilor) sunt absolut aleatorii și nu pot fi prezise în principiu (unul dintre primele experimente care demonstrează natura probabilistică a unor fenomene poate fi considerat experimentul Davisson-Germer ). De asemenea, din mecanica statistică rezultă că la o temperatură care nu este egală cu zero absolut , fiecare sistem are fluctuații aleatorii ale parametrilor săi.
Deoarece unele procese mecanice cuantice sunt complet aleatorii, ele sunt „standardul de aur” pentru AGNG. Fenomenele utilizate în generatoare includ:
Fenomenele non-cuantice sunt mai ușor de detectat, dar AGNG-urile bazate pe acestea vor depinde puternic de temperatură (de exemplu, cantitatea de zgomot termic este proporțională cu temperatura ambientală). Printre procesele utilizate în AGNG, se pot observa:
Există mai multe abordări pentru a obține o secvență de biți aleatori dintr-un proces fizic aleatoriu . Una dintre ele este că raportul semnal-zgomot recepționat este amplificat, filtrat și alimentat la intrarea unui comparator de tensiune de mare viteză pentru a obține un semnal logic . Duratele stărilor de comparație vor fi aleatoare, ceea ce vă permite să creați o secvență de numere aleatoare prin măsurarea duratelor acestor stări. În astfel de sisteme, trebuie avut în vedere faptul că, pe lângă generatorul de zgomot utilizat, acesta poate fi introdus și de alte componente ale sistemului (de exemplu, linia de câmp ), ceea ce poate afecta foarte mult parametrii statistici ai bitului generat. secvența [11] [8] .
O altă abordare este că un semnal aleatoriu este alimentat la intrarea unui convertor analog-digital (pot fi utilizate atât dispozitive speciale, cât și intrarea audio pentru computer), ca urmare, semnalul digitizat va fi o secvență de numere aleatorii care poate fi procesate programatic . Există, de asemenea, metode de combinare a unui generator rapid de numere pseudo-aleatoare cu un generator hardware lent [11] [8] .
Generatoarele de numere aleatorii care utilizează procese fizice aleatorii produc numere aleatorii bune, dar producția lor este relativ dificilă și costisitoare (în special pentru AGNG-urile bazate pe dezintegrare radioactivă ), dar există surse mai accesibile de aleatorie [12] :
Cele mai neobișnuite generatoare includ lucrări care folosesc camere video digitale care înregistrează fenomene macroscopice . De exemplu, echipa de la Silicon Graphics a folosit imagini ale unei lămpi de lavă pentru a genera numere aleatorii, deoarece ceara din lampă își schimbă forma aleatoriu. De asemenea, bulele dintr- un acvariu sau panglicile din fluxul de aer de la un ventilator pot fi folosite ca subiect pentru fotografiere [13] .
Principala problemă a generatoarelor hardware de numere aleatoare este funcționarea lor relativ lentă în comparație cu generatoarele de secvențe pseudo-aleatoare . De asemenea, multe dintre ele se degradează treptat (de exemplu, din cauza scăderii radioactivității substanței în timp), așa că trebuie testate pentru aleatoritatea statistică înainte de fiecare utilizare (multe dintre ele sunt testate în timp real ) [8] .
O altă problemă asociată cu generatoarele de numere aleatoare hardware este compensarea așteptării matematice a secvenței de biți de ieșire (atunci când există mai multe numere în secvență decât altele, de exemplu, există mai multe unități decât zerouri în sistemul binar ). Este cauzată de particularitățile proceselor fizice utilizate în generatoarele de zgomot. Această problemă este rezolvată cu ajutorul unor algoritmi speciali care vă permit să egalizați numărul de zerouri și unii în medie într-un eșantion suficient de lung de numere [14] [8] .
J. Neumann a fost unul dintre primii care a propus un algoritm simplu pentru corectarea așteptării distorsionate într-o secvență. Algoritmul este că biții sunt considerați în perechi: dacă există două valori identice în pereche, atunci perechea este eliminată; dacă biții sunt diferiți, atunci se scrie doar primul bit din această pereche în loc de pereche. Dezavantajul acestui algoritm este că aproximativ 75% din biți sunt aruncați și, ca urmare, rata de generare aleatorie a biților scade semnificativ [14] .
O altă metodă este utilizarea funcțiilor hash criptografice (de exemplu SHA-1 ), deoarece acestea îndeplinesc cerințele stricte de putere criptografică . Dar, în ciuda vitezei relative a acestei metode, ele sunt dificil de reprodus în hardware din cauza neliniarității funcțiilor hash și din cauza dependenței puternice a unui astfel de generator de calitatea funcției hash în sine [14] .
De asemenea, pentru a reduce părtinirea așteptărilor matematice, se folosesc generatoare de secvențe pseudo-aleatoare puternice criptografic , al căror flux de biți, folosind operația XOR , este adăugat fluxului de biți de la generatorul hardware. Principalul avantaj al acestei metode este că poate fi implementată în întregime în hardware, de exemplu, pe un FPGA [14] .
Profesorul de biofizică Shnol Simon Elievich a descoperit în studiile din 1985-2002 o schimbare regulată în structura fină a distribuțiilor statistice, reflectând rezultatele măsurătorilor obținute în studiul proceselor de natură variată. El a arătat că forma histogramelor corespunzătoare în aceeași oră locală este foarte probabil să fie similară atunci când se măsoară procese de natură diferită în diferite locații geografice și că se modifică cu o perioadă egală cu o zi sideală (23 ore 56 minute), de la care a concluzionat că natura cosmofizică fundamentală a acestui fenomen.