Puncte:1

Is it possible that PracRand did not detect looping of the generator?

drapel tf
Tom

I'm testing my own PRNG generator which should has period $2^{38}$ bytes. So after exactly $2^{38}$ bytes it should start repeat. But PractRand find no anomalies after $2^{39}$ bytes.

Could it be that PractRand wouldn't detect this, or I had miscount something and the generator does not loop after that number of bytes?

Paul Uszak avatar
drapel cn
L-ai rulat pe 500 GB?
Tom avatar
drapel tf
Tom
Nu, puteți utiliza numerele din programul dvs. și le puteți redirecționa direct către PractRand în consolă. Exemplu: python3 Mygenerator.py | ./RNG_test stdin. Apoi PractRand pornește și testează până când nu reușește.
Paul Uszak avatar
drapel cn
Dar ați rulat peste $2^{39}$ octeți?
Tom avatar
drapel tf
Tom
@PaulUszak Da, da. Funcționează acum aproape 3 zile și tot nu a eșuat. Ceea ce, desigur, nu este neobișnuit, mulți generatori pot face acest lucru.
Puncte:1
drapel cn

Nu pot vorbi în numele generatorului tău pentru că nu l-am văzut. Este sigur din punct de vedere criptografic (pentru că este puțin dificil de scris și doar pentru că nu poți recupera sămânța nu înseamnă pentru un moment că alții nu pot).

Nu sunt deloc surprins că PractRand nu detectează o buclă la >275 GB (vezi notele). Nu am experiență directă cu PractRand, dar indiferent de pedigree-ul său scăzut, toate testele „standard” au probleme. STS al NIST are un set foarte restrâns de statistici interne care limitează sever dimensiunile eșantionului acceptabil.diehard are infamul test de sume și alte teste slabe. Recent, s-a descoperit că mai diehard are distorsiuni ale testului KolmogorovâSmirnov (~ 8 TB probe). Și este limitat la ~250 GB de date. ent lipsesc în întregime câteva valori p. FIPS 140 este destul de slab. Testul U01 trebuie respectat cu parametri care pot fi ajustați (de ce?). PractRand nu va fi diferit, mai ales având în vedere numărul limitat de dezvoltatori care lucrează la el.

În rezumat, nicio serie de teste disponibile nu este perfectă, iar aleatorietatea este deranjantă. Totuși, asta avem în prezent. Aș sugera să folosiți o altă suită de teste pentru mostre <275 GB și să comparați. Se recomandă cel mai bun din trei curse. 275 GB de material cheie întins dintr-o singură sămânță ar trebui oricum să fie suficient pentru majoritatea cazurilor de utilizare


Note:

Pentru a testa testele PractRand, pur și simplu generați 100 GB din /dev/urandom, copiați-l și concatenați astfel formând un roll-over. Vezi ce se întâmplă cu tine.

Tocmai am diehardered un fișier concatenat ca 2 x 10 GB din /dev/urandom și a trecut cu două WEAK-uri:-

   sts_serial| 6| 100000| 100|0,99995833| SLAB
  diehard_dna| 0| 2097152| 100|0,99637872| SLAB

C'est la vie.

Tom avatar
drapel tf
Tom
Deci, este posibil să trișați acest tip de instrument de testare. Voi aștepta dacă generatorul eșuează testele după 2^40 de octeți. Asta ar însemna că întreaga secvență a fost buclă de 4 ori. Oricum, se pare că poate fi buclă de mai multe ori, atâta timp cât întreaga secvență are proprietăți statistice perfecte, se poate bucla de mai multe ori înainte ca abaterile statistice să fie detectate.
Paul Uszak avatar
drapel cn
@Tom Da, așa se pare. Dar asta poate nu este surprinzător. Fereastra de scanare a acestor teste nu este suficient de mare pentru mostre masive de date precum a ta. De asemenea, luați în considerare că `dieharder` derulează înapoi fișierele de date dacă acestea sunt mai mici de ~250 GB. Exemplul meu de mai sus (2 x 10 GB) a fost derulat de 11 ori, dar a fost trecut. Deci aceasta este o fereastră de scanare a
Tom avatar
drapel tf
Tom
Da, am uitat că derulează înapoi - este adevărat. Am notat, de asemenea, trecerea testelor cu repetari în dieharder. Deci în PractRand ar putea fi la fel. Voi testa un generator cu o stare mai mică pentru a estima când ar putea eșua.
Tom avatar
drapel tf
Tom
După ce a testat un generator de 8 biți cu o perioadă de $2^{20}$, acesta a eșuat în PractRand după ce $2^{24}$ au testat numere de 8 biți.Așa că a făcut buclă fluxul de mai multe ori înainte ca problemele să fie detectate. La fel se poate aștepta și pentru generatorul de 16 biți pe care l-am testat. Am crezut că acest software are detectoare de buclă încorporate - dar nu are.

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.