Tilfældig talgenerator
(en random number generator, RNG) — det er et system designet til at generere en sekvens af tal eller symboler
hvis betydning ikke kan forudsiges på forhånd. En specifik sekvens af genererede resultater kan indeholde en bestemt
mønster, der vil blive sporet efter generationsprocessen, men som ikke kunne forudses på forhånd.
Generatorer baseret på fysiske fænomener
For at generere sande tilfældige tal, bruges en hardware tilfældig talgenerator
(en hardware random number generator, HRNG)
eller det kaldes også generator for sand tilfældigt tal
(en true random number generator, TRNG) —

er en enhed, der genererer tilfældige tal fra en fysisk proces, der konstant ændrer sig på en måde, dvs
praktisk talt umuligt at modellere. Sådanne generatorer kan være baseret på brugen af makroskopiske tilfældige processer, dvs
på en skala, der tillader målinger og observationer med det blotte øje, for eksempel møntvending, terninger eller
roulette hjul. Selvom en makroskopisk proces fuldt ud kan bestemmes i henhold til newtonsk mekanik,
en veldesignet mekanisme såsom et roulettehjul vil give et uforudsigeligt resultat, hvilket kan forklares
af kaosteori og ustabiliteten af dynamiske systemer på grund af forskellen i de indledende betingelser for hver
nyt forsøg på at dreje roulettehjulet. Den største ulempe ved generatorer ved hjælp af makroskopiske processer har altid
været lav hastighed, og som et resultat, manglende evne til at generere et stort antal værdier på kort tid.
I dag har hardware tilfældige tal generatorer en tendens til at bruge enheder baseret på mikroskopiske fænomener

der genererer lavt niveau, statistisk tilfældige "støj"-signaler, såsom forskellige "støj"-signaler (skud, termisk, atmosfærisk),
den fotoelektriske effekt, der involverer en stråledeler og andre kvantefænomener. Sådanne processer er gode kilder
af entropi, fordi deres resultat er absolut umuligt at forudsige i teorien, men på grund af kompleksiteten af
implementering og relativ langsomhed i arbejdet, er anvendelsesomfanget af sådanne generatorer begrænset til fagområder
med visse krav til de genererede værdier.
Grundlæggende bruges elektroniske hardware tilfældige tal generatorer i kryptografi til at generere tilfældige kryptografisk
nøgler til at sikre sikker dataoverførsel, f.eks. i internetkrypteringsprotokoller, såsom Transport Layer Security-protokollen
(TLS).
Generatorer baseret på algoritmer

Et alternativ til hardware (fysiske) generatorer er generatorer baseret på algoritmer — pseudo-tilfældige talgeneratorer
(en pseudorandom number generator, PRNG),
der skaber en række tal, der ligner tilfældige, men det er den faktisk ikke. Tallene genereret af PRNG
kan ikke betragtes som virkelig tilfældige, da de er fuldstændig bestemt af en startværdi, kaldet PRNG's frø. Selvom
rækkefølgen af tal genereret af hardware tilfældige tal generatorer er tættere på virkelig tilfældig, pseudorandom
talgeneratorer bruges ofte i praksis på mange områder på grund af deres hastighed i talgenerering, lethed ved
implementering og relativ billighed. Der er mange metoder til at skabe pseudorandom rækkefølge af tal,
blandt dem Mersenne Twister, en lineær kongruential generator (LCG), Xorshift tilfældige tal generatorer, også
kaldet skifteregistergeneratorer, Well Equidistributed Long-period Linear (WELL), som er en form for
lineært-feedback-skiftregister optimeret til softwareimplementering og andre metoder baseret på algoritmer.
Mersenne Twister
Mersenne Twister er en af de mest populære pseudorandom-talgeneratorer udviklet i 1997 af
Makoto Matsumoto (松本 眞) og Takuji Nishimura (西村 拓士). Dens navn kommer af, at dens
periodelængde er valgt som et Mersenne-primtal, det er et primtal af formen

for et eller andet heltal n.
Denne PRNG blev designet specifikt til at løse de fleste af manglerne fundet i tidligere PRNG'er. De vigtigste fordele ved Mersenne Twister:
- En meget lang periode på 219937 — 1
- Består mange statistiske tilfældighedstest, inklusive Diehard-tests og de fleste, men ikke alle TestU01-testene
- Har en tilladelig fri softwarelicens og patentfri for alle varianter undtagen CryptMT
- k-fordelt til 32-bit nøjagtighed for hver 1 ≤ k ≤ 623
- Implementeringer genererer generelt tilfældige tal hurtigere end sande (hardware)genereringsmetoder
Mersenne Twister bruges som standard PRNG i mange programmeringssprog, software og online ressourcer,
såsom vores
online tilfældige talgenerator,
men denne metode er ikke kryptografisk stærk, hvilket ikke tillader den at blive brugt i kryptografi.
Blandede generatorer
Sammen med behovet for hurtigt at generere let reproducerbare sekvenser af tilfældige tal, er der også et behov
at generere helt uforudsigelige eller simpelthen helt tilfældige tal. For at opfylde begge betingelser,
kombinationer af en krypto-resistent PRNG og en ekstern kilde til entropi bruges oftest, og det er disse
kombinationer af generatorer, der nu almindeligvis kaldes tilfældig talgenerator
(RNG). Sådanne generatorer er de fleste
ofte brugt til generering af unikke symmetriske og asymmetriske nøgler til kryptering, spilindustrien og andre områder.
Et eksempel på driften af en kombineret generator er som følger: en fysisk enhed, der bruger en pålidelig kilde
af entropi (såsom termisk støj), genererer "kimen" til en hurtigere kryptografisk sikker
pseudorandom tal generator, som derefter genererer en pseudorandom output sekvens ved en meget højere datahastighed.