Pseudo-ewekansige getal: metodes om te verkry, voordele en nadele

INHOUDSOPGAWE:

Pseudo-ewekansige getal: metodes om te verkry, voordele en nadele
Pseudo-ewekansige getal: metodes om te verkry, voordele en nadele
Anonim

'n Pseudo-ewekansige getal is 'n spesiale getal wat deur 'n spesiale kragopwekker gegenereer word. Die Deterministiese Random Bit Generator (PRNG), ook bekend as die Deterministic Random Bit Generator (DRBG), is 'n algoritme vir die generering van 'n reeks getalle waarvan die eienskappe die eienskappe van ewekansige getalreekse benader. Die gegenereerde PRNG-volgorde is nie werklik ewekansig nie, aangesien dit heeltemal bepaal word deur 'n saadwaarde genaamd die PRNG-saad, wat werklik ewekansige waardes kan insluit. Alhoewel rye wat nader aan ewekans is, gegenereer kan word met behulp van hardeware ewekansige getalgenerators, is pseudo-ewekansige getalgenerators in die praktyk belangrik vir die spoed van getalgenerering en hul reproduseerbaarheid.

Getal randomisering
Getal randomisering

Aansoek

PRNGs is sentraal tot toepassings soos simulasie (bv. vir Monte Carlo), elektroniese speletjies (bv. vir prosedurele generering), en kriptografie. Kriptografiese toepassings vereis dat die uitsetdie data was nie voorspelbaar uit vroeëre inligting nie. Meer komplekse algoritmes word vereis wat nie die lineariteit van eenvoudige PRNG'e erf nie.

Bepalings en Voorwaardes

Goeie statistiese eienskappe is 'n sentrale vereiste vir die verkryging van 'n PRNG. Oor die algemeen is noukeurige wiskundige ontleding nodig om seker te maak dat die RNG getalle genereer wat naby genoeg aan ewekansig is om geskik te wees vir die beoogde gebruik.

John von Neumann het gewaarsku teen die verkeerde interpretasie van PRNG as 'n werklik ewekansige genereerder en het geskerts dat "Enigiemand wat rekenkundige metodes oorweeg om ewekansige getalle te genereer, is beslis in 'n toestand van sonde."

Gebruik

PRNG kan vanaf 'n arbitrêre aanvanklike toestand van stapel gestuur word. Dit sal altyd dieselfde volgorde genereer wanneer dit met hierdie toestand geïnisialiseer word. Die PRNG-periode word soos volg gedefinieer: maksimum oor alle aanvanklike toestande van die lengte van die nie-herhalende volgorde voorvoegsel. Die tydperk word beperk deur die aantal state, gewoonlik gemeet in bisse. Omdat die periodelengte moontlik verdubbel met elke "staat"-bis wat bygevoeg word, is dit maklik om PRNG'e te skep met periodes wat groot genoeg is vir baie praktiese toepassings.

Groot ewekansige plotte
Groot ewekansige plotte

As die interne toestand van die PRNG n bisse bevat, kan sy periode nie meer as 2n resultate wees nie, dit is baie korter. Vir sommige PRNG's kan die duur bereken word sonder om die hele tydperk te omseil. Lineêre terugvoerverskuiwingregisters (LFSRs) is tipiesword so gekies dat periodes gelyk is aan 2n − 1.

Lineêre kongruensiële kragopwekkers het periodes wat met faktorisering bereken kan word. Alhoewel die PPP sy resultate sal herhaal nadat hulle die einde van die tydperk bereik het, beteken 'n herhaalde resultaat nie dat die einde van die tydperk bereik is nie, aangesien sy interne toestand groter as die uitset kan wees; dit is veral duidelik vir PRNG'e met enkelbis-uitvoer.

moontlike foute

Foute gevind deur gebrekkige PRNG'e wissel van subtiel (en onbekend) tot ooglopende. 'n Voorbeeld is die RANDU ewekansige getalalgoritme, wat al dekades lank op hooframe gebruik word. Dit was 'n ernstige tekortkoming, maar die ontoereikendheid daarvan het vir 'n lang tydperk ongemerk gebly.

Die werking van die getalgenerator
Die werking van die getalgenerator

In baie gebiede is navorsingstudies wat ewekansige seleksie, Monte Carlo-simulasies of ander metodes gebaseer op RNG gebruik het, baie minder betroubaar as wat die gevolg kan wees van swak geh alte GNPG. Selfs vandag word soms versigtigheid vereis, soos blyk uit die waarskuwing in die International Encyclopedia of Statistical Science (2010).

Suksesvolle gevallestudie

As 'n illustrasie, oorweeg die algemeen gebruikte Java-programmeertaal. Vanaf 2017 maak Java steeds staat op die Linear Congruential Generator (LCG) vir sy PRNG.

Geskiedenis

Die eerste PRNG om ernstige probleme te vermy en steeds redelik vinnig hardloop,was die Mersenne Twister (hieronder bespreek), wat in 1998 gepubliseer is. Sedertdien is ander hoë kwaliteit PRNG's ontwikkel.

Generasie Beskrywing
Generasie Beskrywing

Maar die geskiedenis van pseudo-ewekansige getalle eindig nie daar nie. In die tweede helfte van die 20ste eeu het die standaardklas algoritmes wat vir PRNG'e gebruik is, lineêre kongruensiële generators ingesluit. Die kwaliteit van die LCG was bekend as onvoldoende, maar beter metodes was nie beskikbaar nie. Press et al (2007) het die resultaat soos volg beskryf: "As alle wetenskaplike artikels waarvan die resultate twyfelagtig is as gevolg van [LCG's en verwante] van biblioteekrakke verdwyn het, sou daar 'n gaping so groot soos jou vuis op elke rak wees."

Die belangrikste prestasie in die skepping van pseudo-ewekansige kragopwekkers was die bekendstelling van metodes gebaseer op lineêre herhalende in 'n twee-element veld; sulke ossillators is gekoppel aan lineêre terugvoer skuifregisters. Hulle het gedien as die basis vir die uitvinding van pseudo-ewekansige getalsensors.

Veral die 1997-uitvindsel deur Mersen Twister het baie van die probleme met vroeëre kragopwekkers vermy. Die Mersenne Twister het 'n tydperk van 219937−1 iterasies (≈4,3 × 106001). Dit is bewys dat dit eenvormig versprei is in (tot) 623 dimensies (vir 32-bis waardes), en was ten tyde van die bekendstelling vinniger as ander statisties gesonde kragopwekkers wat pseudo-ewekansige getalreekse produseer.

In 2003 het George Marsaglia 'n familie van xorshift-kragopwekkers bekendgestel wat ook gebaseer is op lineêre herhaling. Hierdie kragopwekkers is uitersis vinnig en - gekombineer met 'n nie-lineêre bewerking - slaag hulle streng statistiese toetse.

In 2006 is die WELL-opwekkerfamilie ontwikkel. WEL-opwekkers verbeter in 'n sekere sin die kwaliteit van Twister Mersenne, wat 'n te groot toestandspasie het en baie stadige herstel daarvan, wat pseudo-ewekansige getalle met baie nulle genereer.

Karakterisering van ewekansige getalle
Karakterisering van ewekansige getalle

Kryptografie

PRNG wat geskik is vir kriptografiese toepassings, word kriptografies veilige PRNG (CSPRNG) genoem. Die vereiste vir 'n CSPRNG is dat 'n aanvaller wat nie die saad ken nie, slegs 'n marginale voordeel het om die generator se uitsetvolgorde van 'n ewekansige volgorde te onderskei. Met ander woorde, terwyl 'n PRNG slegs vereis word om sekere statistiese toetse te slaag, moet 'n CSPRNG alle statistiese toetse slaag wat beperk is tot polinoomtyd in saadgrootte.

Alhoewel die bewys van hierdie eienskap verby die huidige vlak van berekeningskompleksiteitsteorie is, kan sterk bewyse verskaf word deur die CSPRNG te reduseer tot 'n probleem wat as moeilik beskou word, soos heelgetalfaktorisering. Oor die algemeen kan jare se hersiening vereis word voordat 'n algoritme as 'n CSPRNG gesertifiseer kan word.

Dit is getoon dat dit waarskynlik is dat die NSA 'n asimmetriese agterdeur in die NIST-gesertifiseerde Dual_EC_DRBG pseudo-ewekansige getalgenerator ingesit het.

BBS kragopwekker
BBS kragopwekker

Pseudo-ewekansige algoritmesnommers

Die meeste PRNG-algoritmes produseer rye wat eweredig deur enige van verskeie toetse versprei word. Dit is 'n oop vraag. Dit is een van die sentrale in die teorie en praktyk van kriptografie: is daar 'n manier om die uitset van 'n hoë-geh alte PRNG van 'n werklik ewekansige volgorde te onderskei? In hierdie instelling weet die oplosser dat óf 'n bekende PRNG-algoritme gebruik is (maar nie die toestand waarmee dit geïnisialiseer is nie), óf 'n werklik ewekansige algoritme is gebruik. Hy moet tussen hulle onderskei.

Die sekuriteit van die meeste kriptografiese algoritmes en protokolle wat PRNG'e gebruik, is gebaseer op die aanname dat dit onmoontlik is om te onderskei tussen die gebruik van 'n geskikte PRNG en die gebruik van 'n werklik ewekansige volgorde. Die eenvoudigste voorbeelde van hierdie afhanklikheid is stroomsyfers, wat meestal werk deur die gewone teksboodskap met 'n PRNG-uitset weg te laat of te stuur, wat die syferteks produseer. Dit is uiters moeilik om kriptografies voldoende PRNG's te ontwerp, aangesien hulle aan addisionele kriteria moet voldoen. Die grootte van sy tydperk is 'n belangrike faktor in die kriptografiese geskiktheid van 'n PRNG, maar nie die enigste nie.

Pseudo-ewekansige getalle
Pseudo-ewekansige getalle

'n Vroeë rekenaar-PRNG wat in 1946 deur John von Neumann voorgestel is, staan bekend as die gemiddelde vierkante-metode. Die algoritme is soos volg: neem enige getal, vierkant dit, verwyder die middelste syfers van die resulterende getal as 'n "ewekansige getal", gebruik dan hierdie getal as die beginnommer vir die volgende iterasie. Byvoorbeeld, die kwadraat van die getal 1111 gee1234321, wat as 01234321 geskryf kan word, is 'n 8-syfergetal die kwadraat van 'n 4-syfergetal. Dit gee 2343 as 'n "ewekansige" getal. Die resultaat van die herhaling van hierdie prosedure is 4896, ensovoorts. Von Neumann het 10-syfergetalle gebruik, maar die proses was dieselfde.

Nadele van die "middelste vierkant"

Die probleem met die "mean square"-metode is dat alle rye uiteindelik herhaal, sommige baie vinnig, byvoorbeeld: 0000. Von Neumann het hiervan geweet, maar hy het gevind dat 'n benadering voldoende was vir sy doeleindes, en was bekommerd dat die wiskundige "korreksies" sal net die foute versteek in plaas daarvan om dit te verwyder.

Die essensie van die kragopwekker
Die essensie van die kragopwekker

Von Neumann het bevind dat hardeware ewekansige en pseudo-ewekansige getalgenerators nie geskik is nie: as hulle nie die gegenereerde uitset opneem nie, kan hulle nie later vir foute gekontroleer word nie. As hulle hul resultate sou neerskryf, sou hulle die rekenaar se beperkte beskikbare geheue uitput en dus die rekenaar se vermoë om syfers te lees en te skryf. As getalle op kaarte geskryf is, sou dit baie langer neem om te skryf en te lees. Op die ENIAC-rekenaar het hy die "middel-vierkant"-metode gebruik en die proses uitgevoer om pseudo-ewekansige getalle 'n paar honderd keer vinniger te verkry as om nommers van ponskaarte te lees.

Mean square is sedertdien vervang deur meer komplekse kragopwekkers.

innoverende metode

'n Onlangse innovasie is om die gemiddelde vierkant met die Weil-reeks te kombineer. Hierdie metode verseker hoë kwaliteit produkte binnelang tydperk. Dit help om die beste pseudo-ewekansige getalformules te kry.

Aanbeveel: