Numerele pseudoaleatoare - un

Pseudo generator de numere aleatorii (generator de numere prng Engl pseudoaleatoare, 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 subliniaza celebrul aforism al lui Robert R. Kavyu de ORNLs (ing.), „Generarea de numere aleatoare este prea important pentru a lăsa la voia întâmplării.“

determinist prng

Nici algoritm determinist nu poate genera numere aleatoare complet, el poate aproxima doar unele dintre proprietățile de numere aleatoare. 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 media 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. În cazul în care prng poate converg într-un cicluri prea scurt, astfel prng devine previzibil și este inutilizabil.

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, mainframe algoritmul a fost foarte proastă [1] [2]. 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.

Exemple de surse de entropie și RNG

Câteva exemple RNG cu surse și generatoare de entropie lor:

Prng în criptografie

O varietate prng sunt GPSB (PRBG) - generatoare biți Pseudo-aleatorii, precum și diferite cifruri flux. Prng ca cifruri flux, constau dintr-o stare internă (de obicei, variind în mărime de la 16 biți la mai mulți megabiți), starea tastă funcțională inițializare internă sau de semințe (Engl. Seed), funcția actualizează funcțiile de stat și de ieșire interne. Prng împărțit în aritmetică simplă, criptografie și criptografic rupte. Scopul lor general - pentru a genera o secvență de numere care nu pot fi distinse de metode de calcul aleatoare.

În timp ce multe prng sau fluxuri cifruri criptografic puternice oferă mult mai multe numere „aleatoare“, astfel de generatoare sunt mult mai lent decât de obicei aritmetice și nu pot fi potrivite în tot felul de studii, care necesită ca procesorul a fost gratuit pentru calcule mai utile.

În aplicații și condiții de câmp militare se aplică numai clasificate sincrone criptografic puternice prng (cifruri Stream), cifrurile bloc nu sunt utilizate. Exemple de prng criptografice cunoscute sunt ISAAC, SEAL. Zăpadă, algoritm teoretic foarte lent Blum, Blum și Shub. precum și contoare pentru funcțiile hash criptografice sau cifrurile bloc criptografice funcție în loc de ieșire.

prng hardware

Pe langa mai vechi, bine-cunoscut LFSR-generatoare, utilizate pe scară largă ca prng hardware în secolul XX, din păcate, se cunoaște foarte puțin despre prng hardware-ul curent (cifru flux), deoarece cele mai multe dintre ele sunt concepute pentru utilizări militare și sunt ținute secrete. Aproape toate existente prng hardware comercial brevetat și bine păstrate secrete. Hardware prng este limitată de cerințele stricte ale memoriei consumate (cea mai mare parte utilizarea memoriei este interzisă), viteza (1-2 cicluri) și spațiu (mai multe sute FPGA - sau

Din cauza lipsei de producători de hardware bune prng sunt obligați să utilizeze disponibile la îndemână este mult mai lent, dar bine-cunoscutele cifruri bloc (

notițe

articole similare