Puncte:1

Numere cu adevărat aleatorii la scară - Cipurile de memorie supraîncărcate generează numere cu adevărat aleatorii pentru criptare

drapel eg

De ani de zile, numerele cu adevărat aleatorii la scară au fost evazive. Astfel am citit această cercetare recentă https://www.newscientist.com/article/2303984-overloaded-memory-chips-generate-truly-random-numbers-for-encryption/ și https://cacm.acm.org/news/257835-overloaded-memory-chips-generate-truly-random-numbers-for-encryption cu mare intrigă, anticipare și entuziasm.

Prima mea întrebare: Care sunt dificultățile asociate cu generarea de numere aleatoare adevărate? Cost, aspecte practice, cum ar fi consumul de energie?

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?

A. Hersean avatar
drapel cr
Instrucțiunea `RDSEED` poate fi găsită pe orice microprocesor x64 recent.Vezi https://en.wikipedia.org/wiki/RDRAND De asemenea, cipurile ARM au de obicei capabilități [similare](https://stackoverflow.com/a/39390306/7035309), dar nu au fost standardizate.
Nathan Aw avatar
drapel eg
bine, e tare de știut! de ce oamenii nu profită de asta, deoarece este disponibil pe scară largă?
A. Hersean avatar
drapel cr
Ei fac. Linux CSPRNG (/dev/urandom și /dev/random) îl folosește (printre alte surse) atunci când este disponibil. Se presupune că Windows face acest lucru, dar din moment ce este sursă închisă, această informație nu este publică.
Puncte:2
drapel cn

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.

drapel us
„aleatorie este necesară doar pentru a însămânța un... (CSPRNG)... CSPRNG nu se distinge de **aleatoriu adevărat**” Nu fi de acord cu asta. O secvență de variabile aleatoare independente în conformitate cu definiția matematică întâlnește un cod de flux, care păstrează informațiile de intrare; acest lucru nu poate fi atins cu o sămânță mai scurtă decât vectorul de ieșire.
Gilles 'SO- stop being evil' avatar
drapel cn
@SamGinrich Acest site este despre criptografie. Mă refeream la imposibil de distins pentru un adversar cu o putere de calcul realistă, nu de nediferențiat din punct de vedere matematic.
drapel us
Sigur, înțeleg „nediferențiat”. Gândiți-vă că nu este nevoie să alocați „aleatoriu adevărat”, ceea ce un stream cipher este de fapt, în contrast cu o mașină de stări, realizând un algoritm aleatoriu seed.
Puncte:1
drapel cn
  1. Principala dificultate este de a găsi o sursă bună de entropie. Este o măsură a „aleatoriei”. Ei bine, dacă avem o valoare $sămânță$ astfel încât $H(sămânță)=n$, nu putem produce o secvență $x, |x|\geq|seed|$ cu entropie mai mare, adică $\forall x : x=f(sămânță)\land|x|\geq|sămânță|\implies H(x)\leq H(sămânță)$, Unde $f$ este un algoritm determinist (PRNG). Entropia este definită după cum urmează: $$ H(X)=-\sum_{x\ \in\ \text{Dom}(X)}\text{Pr}(x)\cdot\text{log}_2\text{Pr}(x) $$ Unde $X$ este o variabilă aleatorie. <removed>
    Cu alte cuvinte, în cel mai bun caz, obținem o secvență mai lungă cu aceeași cantitate de „aleatorie” în ea ca și în cea mai scurtă. Nu există nicio modalitate de a genera un potențial nemărginit secvență cu adevărat aleatorie folosind un algoritm dintr-o secvență finită fără nicio sursă suplimentară de entropie.
    UPD: nu este chiar corect să folosiți formula pentru secvențe. Dar sensul acestui paragraf rămâne valabil: nu poți crea „aleatorie” din nimic.

  2. Ei bine, aceasta este o întrebare bună, pentru că putem spune că dacă o secvență este aleatorie sau nu, cu o anumită probabilitate. Singura modalitate este de a folosi teste statistice. O secvență ideală (sau cu adevărat) aleatorie este definită după cum urmează: $$ X_\to=\{\zeta_1, \zeta_2, ..., \zeta_n,...\} $$ Unde $\zeta_i, i\in\{1,2,...\}$ sunt distribuite uniform pe un anumit set $X$ variabile aleatoare și în fiecare submult $\{\zeta_{i_1},...,\zeta_{i_k}\}$ toate variabilele sunt independente. Având o secvență arbitrară, singurul lucru pe care îl putem face este să-i testăm proprietățile statistice și să spunem că, cu o probabilitate mare (sau scăzută), aceste cerințe sunt valabile pentru aceste variabile. <redacted to make it more clear>.
    <removed>
    În toate articolele pe care le-am citit despre generatoarele cu adevărat aleatorii sunt testate statistic.Din păcate, nu pot citi articolul pe care l-ați menționat la întrebare, dar cred că va fi același tip de cercetare.


Ei bine, presupun că ar putea exista o metodă potențială pentru a demonstra că un generator produce o secvență cu entropia maximă posibilă, dar nu am văzut-o încă. Dar poate că este imposibil să existe o astfel de metodă. Daca exista unul, ma intereseaza sa citesc despre el :)

UPD: entropia maximă nu este necesară pentru caracterul aleatoriu adevărat. Iată câteva citate ale lui @Paul Uszak:

O astfel de secvență [cu adevărat aleatoriu] are nevoie doar de o cantitate monoton crescândă de complexitate Kolmogorov. Prejudecata/corelația este irelevantă.

TRNG-urile nu sunt testate pentru caracterul aleatoriu real. „Adevărul” lor provine dintr-o înțelegere a proceselor fizice nedeterministe care creează complexitatea ieșirii lui Kolmogorov.

UPD: Pe scurt: TRNG-urile folosesc unele evenimente fizice imprevizibile pentru a produce o secvență, PRNG-urile folosesc algoritmi de computer.

Paul Uszak avatar
drapel cn
Bună, dar câteva probleme. 0) Nu există surse de entropie în afara termodinamicii. Entropia criptografică este creată doar de observator în timpul eșantionării. 1) Formula Shannon se aplică numai datelor IID și nu se aplică în cazul general al eșantionării sursei de entropie. 2) Testele statistice testează doar uniformitatea și independența în aval de extractorul de aleatoriu. Niciun test nu poate face diferența între un TRNG și un RNG. `dieharder` va trece Mersenne Twister, iar `ent` și FIPS 140 trec orice arhivă .7z.
Paul Uszak avatar
drapel cn
3) Entropia maximă posibilă nu este necesară pentru o secvență cu adevărat aleatorie. O astfel de secvență are nevoie doar de o cantitate crescândă monoton de complexitate Kolmogorov. Prejudecata/corelația este irelevantă. 4) TRNG-urile nu sunt testate pentru adevărata aleatorie. „Adevărul” lor provine dintr-o înțelegere a proceselor fizice nedeterministe care creează complexitatea ieșirii lui Kolmogorov.
Puncte:-1
drapel cn

Care sunt dificultățile asociate cu generarea de numere aleatoare adevărate?

Nu există dificultăți tangibile în generarea de o mulțime de numere aleatoare adevărate. The Haveged demonul pretinde că generează megabiți/s de entropie adevărată fără niciun hardware extern. Nu sunt sigur ce înseamnă, în mod realist, „la scară”. Ciclul unei chei AES în fiecare minut este o rată Kolmogorov de <3 biți/s. Cu respect, aceasta este o joacă de copii chiar și pentru cei care fac bricolaj. Uită-te la acele fotografii de petrecere de noapte pe smartphone-ul tău și întrebă-te ce este tot acel zgomot de imagine. Daca ai ~3000 de euro poti Cumpără un TRNG de 240 Mbps care utilizează tehnologia de divizare a fasciculului. Dacă viața ta depindea de asta, 2600 de dolari sunt prea mult? Și yeolde /dev/random ar face >30 kB/h doar verificând e-mailul. Dublați-l dacă cercetați PornHub.

Cel mai probabil motiv intangibil în care nu trebuie să intru se reflectă în următoarele; Sportivii sunt sfătuiți să folosească telefoane arzătoare în Beijing.

Ce și cine poate fi un arbitru asupra aleatoriei adevărate?

Doar tu.

Există o linie foarte faimoasă pentru site-uri web care spune âEntropia sigură? Entropia ta.â Conceptul de indistingere computațională înseamnă că ieșirea lui Mersenne Twister seamănă aproape cu cea a /dev/random. Aceasta este preluarea de aici.

Generatorul de numere aleatoare hardware pe cip Intel pare aleatoriu, dar nimeni din comunitatea *nix nu are încredere în el. Și așa că nu ar trebui să dea NOBUS confirmat public2 politică. Și, din păcate pentru tine/noi, este imposibil să faci inginerie inversă a unei matrițe de siliciu multistrat cu miliarde de tranzistori.

Această parte a răspunsului meu ar putea continua pentru mii de șoarece, așa că voi încheia încercând să vă conving să vă construiți o sursă de entropie cu puțin diodă (£2.08 + TVA/20).


2 Ia o pălărie de tablă. Tipul de curcan de Crăciun cu adevărat gros. Intrarea NOBUS a fost ștearsă de pe Wikipedia. Trageți propriile concluzii. Așa că vă îndrept către WAPO articol cu șeful CIA/NSA (același tip).

poncho avatar
drapel my
Nu am înțeles niciodată prea bine oamenii care nu au încredere în trng-ul Intel, dar au încredere în tot ce construiește Intel. Dacă NSA poate convinge intel să pună o ușă din spate în trng, atunci îi poate convinge și să construiască un procesor care detectează când rulează anumite secvențe de instrucțiuni (cum ar fi un cod rng OpenSSL) și să interpreteze greșit în mod deliberat acele instrucțiuni.
drapel us
@poncho Sunt unul dintre acești sceptici :) Când vine vorba de securitate, nu-mi pasă de performanță: nu există NSA, Windows, Intel, OpenSSL și oameni didactici cu atitudinea „Niciodată să nu creați sisteme de securitate. de la tine"
Paul Uszak avatar
drapel cn
@SamGinrich Ascultă, auzi! Ceea ce comentatorul anterior nu a realizat este că critica lui este ilogică. Ne putem convinge că un procesor Intel funcționează corect, deoarece poate fi verificat conform specificațiilor sale prin testare. Testare de milioane de utilizatori, în toate țările, la toate nivelurile de competență tehnică. Indistincbilitatea computațională exclude din punct de vedere matematic verificarea faptului că presupusul TRNG Intel generează orice fel de aleatoriu lui Kolmogorov. [Mai mult...](https://crypto.stackexchange.com/a/71584/23115).
drapel us
@Paul Ei bine, nu mă opun comentariului lui poncho: Dacă ai un șarpe cu două capete, nu este plauzibil să nu te încrezi într-un cap și să speri că celălalt nu te va mușca. La fel, încercarea dvs. de monitorizare este în regulă; ceea ce trebuie să-ți dai seama, este o implementare independentă de monitorizare și fără încredere în corporații, de ex. care l-a dezamăgit pe domnul Snowden.
forest avatar
drapel vn
@poncho Cred că este foarte puțin probabil. PoC||GTFO a avut un articol bun despre cum se poate face acest lucru (într-un emulator, cel puțin) și s-a dovedit _mult_ mai complicat și mai fragil decât un TRNG cu ușă în spate care doar combina un adevărat număr aleatoriu de 64 de biți și un secret 128- biți valoarea backdoor și a folosit-o ca sămânță. Cred că Paul are dreptul să fie sceptic față de RDRAND/RDTSC.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.