Puncte:2

Metoda de post-procesare pentru True Random Number Generator

drapel de

Găsesc metoda de post-procesare pentru a îmbunătăți caracterul aleatoriu al generatorului de numere aleatoare adevărate. În special, TRNG poate trece NIST SP 800-22 după aplicarea post-procesării.

Am încercat să aplic Enocoro-128_v2 Pseudo-Random Number Generator ca metodă de post-procesare pentru TRNG. TRNG va furniza sămânța pentru Enocoro. Apoi, Enocoro lucrează și generează ieșirea. După aplicarea acestei metode, rezultatul poate fi îmbunătățit. TRNG poate fi trecut de NIST SP 800-22.

Întrebarea mea: De ce generatorul de numere pseudo-aleatorie Enocoro-128_v2 poate îmbunătăți performanța TRNG?

SAI Peregrinus avatar
drapel si
Care este definiția ta pentru „generator de numere aleatoare adevărate”? Ce îl face „adevărat”, spre deosebire de un generator hardware obișnuit de numere aleatorii? IME a TRNG este o construcție ipotetică, la fel ca un oracol aleatoriu, care emite biți imprevizibili, necorelați, distribuiti perfect uniform, astfel încât nu ar fi nevoie să procesăm rezultatul. Sunt un construct util pentru demonstrarea unor teoreme, nu un dispozitiv real.
drapel de
True Random Number Generator înseamnă că folosim sursele fizice de zgomot (Ring Oscillator, PLL, Metastable,...) pentru a genera numărul aleator.
Puncte:0
drapel cn

Nu poate, chiar fără să știe cum funcționează „Generatorul de numere pseudo-aleatorie Enocoro-128_v2”, deoarece PRNG-ul va avea $H_{out} < H_{in}$

Se pare că aveți o sursă de entropie care probabil generează mostre aleatoare ale lui Kolmogorov. Acestea au o distribuție neuniformă pe care o veți putea vedea din funcția/histograma de masă de probabilitate și că eșuează SP 800-22. Și pot fi autocorelate. Asta inseamna $H_{\infty} \ll 1$ biți/bit. Rulați NIST 800 90b ea_iid test pentru a confirma.

Ungerea unui PRNG deasupra maschează pur și simplu entropia Kolmogorov subiacentă cu pseudoentropie previzibilă ($H_{\infty} =0 $ din perspectiva TRNG). Unii oameni au caracterizat o astfel de construcție drept a hardware PRNG. Cu toate acestea, pentru ca orice TRNG să fie demn de acest nume, trebuie să satisfacă cel mai important aspect al proiectării TRNG, și anume acea entropie generată > lungime. Mai formal: $H_{out} \ngtr H_{in}$.


Cu un pic de fudging PRNG, orice sursă de entropie poate produce entropie de ieșire la rate aproape infinite. De exemplu, Intel on-chip TRNG (RDRAND) se presupune că produce aproape 2 Gb/s. Clar Gunoi și gunoi. Acest cip are în mod clar $H_{out} \gg H_{in}$.

Deci post extracție, o sursă slab aleatorie pare să apară cu aleatorie mult mai bună și o părtinire îndepărtată de perfecțiune limitată de Lema Hash rămasă:-

$$ \epsilon = 2^{-(sn-k)/2} $$

unde avem $n$ = biți de intrare la $s$ biți/bit de entropie brută de la sursă, $k$ este numărul de biți de ieșire din extractor (și $<n$). $\epsilon$ este părtinirea de la o uniformitate perfectă $k$ șir de lungime de biți, adică $H(k) = 1 - \epsilon$ biți/bit. NIST acceptă asta $\epsilon < 2^{-64}$ pentru aplicații criptografice.

In orice caz, $\epsilon$ poate fi ușor de făcut mult mai mic. țintesc $2^{-128}$. Pentru extractor puteți folosi SHA-512 ($k=512$) pentru a minimiza pierderea de entropie. Poti vedea $n/k$ rapoarte și eficiențe relative în aceste diagrame: -

diagrama 1

diagrama 2


Deci, în concluzie, nu aveți nevoie/nu ar trebui să utilizați un PRNG deasupra sursei de entropie. Dacă faceți un TRNG, faceți-l un TRNG adecvat. Viteza nu este atât de importantă.

La urma urmei, ce poți face cu toate chestiile alea de Kolmogorov?

Maarten Bodewes avatar
drapel in
Exemplul Intel urmărea direct afirmația conform căreia entropia ar trebui să fie mai mare decât dimensiunea ieșirii. Am editat răspunsul, astfel încât să fie clar că Intel **nu** face asta. Rețineți că pentru Intel, RDRAND a fost definit ca „În ceea ce privește taxonomia RNG discutată mai sus, DRNG urmează modelul RNG de construcție în cascadă, folosind o sursă de entropie rezidentă a procesorului pentru a **sămânța în mod repetat un CSPRNG implementat hardware.**”. dacă vrei să ataci Intel, probabil că va trebui să ataci RDSEED, nu RDRAND (ceea ce se pare că faci în răspunsul tău legat).
Maarten Bodewes avatar
drapel in
Ați putea încerca, vă rog, să puneți un pic mai puțin emoție negativă în postările dvs.? Afirmații precum „... și nu-mi pasă” acum eliminate vor declanșa sentimente negative, care nu ajută la calitatea răspunsului. În mod similar, indicați că Intel are RDSEED „rubbisch”, în timp ce vă conectați doar la propriul răspuns. De ce să nu-l spunem „foarte discutabil”? Asta m-a condus la un vot negativ anterior, înainte de a decide că sunt de fapt de acord cu esența a ceea ce scrieți și am efectuat editarea pentru a o face mai ușor de înțeles / puțin mai formal.
Maarten Bodewes avatar
drapel in
Poate ați putea da un exemplu de dimensiune de intrare pentru SHA-512 w.r.t.numărul așteptat de biți generați de dispozitivul de entropie? Presupun că utilizați apoi concatenarea hashurilor generate?

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.