De ani de zile, numerele cu adevărat aleatorii la scară au fost evazive.
Nu, acesta este 100% hype. Generarea de numere aleatorii este ușoară. Există o mulțime de tehnici cunoscute pentru a face acest lucru. âScaleâ nu este o problemă în ceea ce privește cantitatea de numere aleatoare, deoarece âtrueâ este nevoie doar de aleatorietatea, așa că înedăm un generator pseudoaleator criptografic (CSPRNG). Ieșirea unui CSPRNG nu se poate distinge de aleatoriu adevărat.
Prima mea întrebare: Care sunt dificultățile asociate cu generarea de numere aleatoare adevărate? Cost, aspecte practice, cum ar fi consumul de energie?
O dificultate cu generarea aleatorie este că necesită hardware dedicat, care costă o fracțiune semnificativă de un cent pentru a produce în masă. Aceasta este o preocupare pentru dispozitivele al căror preț este de ordinul mărimii unui cent pe unitate. Această dificultate este în mare măsură rezolvată în zilele noastre: prețurile au scăzut față de un deceniu în urmă și multe microcontrolere ieftine includ un TRNG.
De altfel, generarea de numere aleatorii prin intermediul procesorului și al jitterului de memorie este o tehnică binecunoscută care nu poate fi folosită în dispozitive foarte ieftine, deoarece sunt prea lente și stabile. Și nu este o tehnică foarte utilă pe dispozitive mai mari, deoarece pentru acestea costul incremental al unui TRNG dedicat este neglijabil. Toate procesoarele moderne de PC și smartphone includ un TRNG dedicat, de exemplu.
Consumul de energie nu este o problemă foarte mare, deoarece TRNG trebuie să funcționeze doar pentru o perioadă foarte scurtă de timp. Latența poate sa fi o problemă atunci când procesorul pornește.
În calitate de designer de sisteme încorporate care nu știe prea multe despre cum funcționează hardware-ul (munca mea este ferm la nivel de software și sistem), îmbunătățirile pe care aș dori să le văd în generarea aleatorie hardware sunt să fie mai ieftine de produs în masă (astfel încât să fie în fiecare dispozitiv), să aibă o latență mai mică și să fie mai fiabile la perturbațiile mediului (de exemplu, variațiile de temperatură și putere).
Dar, în practică, cea mai mare problemă cu generarea aleatorie nu este în hardware. Este în ecosistemul software care are probleme în a pune toți pașii dintre designul hardware și proiectarea aplicației. Problema sunt sistemele de operare și interfețele limbajului de programare în care obținerea de numere aleatoare nesigure este ușor, dar obținerea de numere aleatoare sigure este dificilă. Problema sunt sistemele și aplicațiile configurate greșit care trec teste funcționale, dar nu au avut o evaluare adecvată de securitate.
A doua întrebare: Ce și cine poate fi un arbitru asupra aleatoriei adevărate? adică cine decide că acest număr este generat cu adevărat aleatoriu?
Deoarece nu puteți spune cât de aleatoriu este un număr privind numărul, trebuie să vă uitați la procesul prin care este generat numărul.