Generatorul de numere pseudoaleatoare

În acest termen, există alte utilizări, vezi. Generatorul de numere aleatorii.

Pseudo generator de numere aleatorii (prng Engl pseudoaleatoare număr generator de prng ...) - algoritm. generând o secvență de numere. ale cărui elemente sunt aproape independente una de alta și supuse unei distribuții predeterminate (în general uniformă).

Tehnologia modernă de informații este utilizat pe scară largă de numere pseudo-aleatoare într-o varietate de aplicații - de la Monte Carlo simulare pentru criptografie. Astfel, calitatea prng utilizate direct depinde de calitatea rezultatelor. Acest fapt subliniază bine-cunoscut aforism Math ORNLs Robert Kavyu (Eng.) Rusă. „Generarea de numere aleatoare este prea important pentru a lăsa la voia întâmplării.“

Surse de numere aleatoare

Sursele acestor numere aleatoare este extrem de dificil de găsit. zgomot fizic. cum ar fi detectoare de evenimente de radiații ionizante. împușcat de zgomot într-un rezistor sau radiații cosmice. pot fi astfel de surse. Cu toate acestea, astfel de dispozitive sunt utilizate în aplicații de securitate de rețea rar. Dificultăți provoca, de asemenea, atacuri dure asupra unor astfel de dispozitive.

aplicații criptografice utilizați pentru a genera numere aleatoare algoritmi speciali. Acești algoritmi sunt predefinite și, prin urmare, generează o secvență de numere care, teoretic, nu poate fi întâmplătoare statistic. În același timp, dacă alegeți un algoritm bun, obținut secvență numerică - numere aleatoare - va trece de cele mai multe teste pentru randomizare. Una dintre caracteristicile unui astfel de secvență este o perioadă de repetiție care trebuie să fie mai mare decât domeniul de lucru al care este luat numărul.

Generatorul de numere pseudoaleatoare este inclus în compoziția multor procesoare moderne. de exemplu, RdRand incluse în IA-32 set de instrucțiuni. [1]

Nici algoritm determinist poate genera numere aleatoare complet, acesta poate fi aproximată doar de o parte din proprietățile lor. Așa cum John von Neumann. „Oricine are o slăbiciune pentru metode aritmetice de a produce numere aleatoare, un păcătos, fără îndoială.“

Orice prng cu resurse limitate, mai devreme sau mai târziu bucle - începe să se repete aceeași secvență de numere. Lungimea ciclului prng depinde de generator și este de aproximativ 2 n / 2. unde n - mărimea stării interne a bitului, deși congruential liniare și LFSR -Generator posedă cicluri maxime de ordinul 2 n. Dacă generat de secvență prng converge la un cicluri prea scurt, o astfel de prng devine previzibil și nepotrivit pentru aplicații practice.

Cele mai multe dintre simple, generatoarele aritmetice, deși acestea au o mare viteză, dar suferă de mai multe dezavantaje serioase:

  • O perioadă prea scurtă / perioade.
  • Valorile succesive nu sunt independente.
  • Unii biți „mai puțin aleatoare“ decât altele.
  • Distribuția inegală a one-dimensional.
  • Reversibilitate.

În special algoritm, Randu. de zeci de ani utilizate pe mainframe. era foarte săracă [2] [3]. care a ridicat îndoieli cu privire la fiabilitatea rezultatelor multor studii folosind acest algoritm.

Prng cu sursa de entropie sau RNG

Împreună cu necesitatea de a genera curent secvență ușor repetabil de numere aleatorii, există, de asemenea, necesitatea de a genera numere total imprevizibile sau pur și simplu absolut aleatoare. Astfel de generatoare sunt numite generatoare de numere aleatorii (RNG -. Engleză generator de numere aleatorii, RNG). Deoarece aceste generatoare sunt cel mai adesea folosite pentru a genera un unic chei simetrice și asimetrice pentru criptare, acestea sunt adesea construite dintr-o combinație de criptografic puternic prng și sursa externă a entropiei (și doar o astfel de combinație acum în mod obișnuit înțeleasă de RNG).

Aproape toate principalii producători de microcipuri furnizate RNG hardware cu diferite surse de entropie, folosind diferite metode pentru a le curăța de predictibilitatea inevitabilă. Cu toate acestea, în prezent, rata de colectare de numere aleatoare toate microarray existente (câteva mii de biți pe secundă) nu corespunde cu viteza procesoarelor moderne.

In studiile recente efectuate încercări de a utiliza măsurători ale proprietăților fizice ale obiectelor (de exemplu, temperatură) sau chiar o fluctuație cuantică în vid ca sursă de entropie pentru SFG. [4]

Exemplul simplu RNG cu sursa de entropie

Când sursa de entropie pentru a utiliza ora curentă, pentru a obține un număr întreg de la 0 la N este suficientă pentru a calcula restul de divizare a timpului curent, în milisecunde, numărul N +1. Un dezavantaj al acestui RNG este că, în timpul o milisecunda se produce același număr.

Exemple de surse de entropie și RNG

Această secțiune lipsesc referințele bibliografice la sursele de informații.

Generatorul de numere aleatoare pentru loterii - hardware și software, care este utilizat în desen, în care trebuie să ghicească combinația unui număr de numere. Oricare dintre numerele posibile are o probabilitate egală de apariție.

Încercările de a crea un generator de numere aleatoare aparțin 3500 î.Hr.. e. și sunt asociate cu vechi joc de bord egiptean Senet. Cei doi jucători Senet joacă pentru cele două părți. Spirele sunt definite prin tije plate 4, care pot fi considerate ca un generator de numere aleatorii acel moment. Arunca toate cele patru stick-uri dintr-o dată. Punctajul este după cum urmează: 1 coli a scăzut partea albă în sus - 1 punct și exprimate suplimentar; 2 - 2 puncte; 3 - 3 puncte, 4 - 4 și rola suplimentară. One stick-uri laterale și negru, în cazul în care toate cele patru stick-uri a scăzut partea neagra sus - acesta este cel mai bun rezultat - 5 puncte și o rolă suplimentară.

Cunoscut generator de numere aleatoare ERNIE a fost folosit timp de mulți ani pentru a determina numerele câștigătoare ale loteriei britanice.

Principalele cerințe pentru GNA utilizat pentru desen:

  • Fiecare număr este obținut din întâmplare, care nu are nimic în comun cu celelalte numere din secvența;
  • Fiecare număr dintr-un număr are șanse egale de precipitații;
  • Fiecare număr are o probabilitate predeterminată de apariție în orice interval dat de valori.

Cea mai comună metodă de generare de numere aleatorii este metoda congruential liniară. dar există o altă - o metodă congruential aditiv. Aceste metode generează o secvență de numere care satisfac condiția de dezordine. Baza pentru utilizarea acestora și a altor metode de software-aleatoare de generare de numere este numere de generare infinit, indiferent dacă participantul este în prezent în joc sau nu. Aceasta elimină posibilitatea ca jucatorul va fi capabil să determine în mod independent de metoda de generare, utilizată în acest moment, și „ghici“ de abandon.

De exemplu, legea americană impune ca generatorul de numere aleatorii în slot machines operate în orice moment. În plus, această problemă este direct angajată de software ei înșiși furnizori.

Romane loterii de stat ( "Gosloto" 5 36 "" Gosloto "6 45", "Gosloto" 7 49 "" Sportloto 6 49 "" Rapid "" Keno-Sportloto "" Top 3 „“ 12/24 „“ Toate sute „) este folosit pentru a determina câștigătorii generatorului de numere aleatorii - sistem hardware și software, certificat ANO MIC și recomandările Federal de stat unitar Enterprise VNIIMS corespunzătoare.

Când utilizați RNG loterie trebuie să îndeplinească următoarele cerințe:

  • Testarea numerelor de flux pentru randomizare.
  • Cu excepția unor posibile intervenții la rezultate fraudă loterie.
  • Ratele de transmisie de desen rezultate din centrul de procesare în momentul în determinarea combinației câștigătoare într-o milisecundă.
  • Capacitatea de rezervă cu comutare automată la un echipament de rezervă în caz de eșec.

articole similare