Willekeurige getallengenerator
Genereer willekeurige getallen binnen een gespecificeerd bereik voor statistische bemonstering en simulaties.
Willekeurige getallen genereren
Inhoudsopgave
Soorten Random Number Generators
Random number generators (RNGs) zijn fundamentele componenten op verschillende gebieden, van cryptografie en beveiliging tot wetenschappelijke simulaties en gaming. Het begrijpen van de verschillende soorten en hun kenmerken is cruciaal voor het selecteren van de geschikte methode voor uw specifieke behoeften.
True Random Number Generators (TRNGs)
True Random Number Generators afleiden willekeurigheid uit fysieke processen die inherent onvoorspelbaar zijn. Deze generatoren produceren sequenties die theoretisch onmogelijk te voorspellen zijn, zelfs met volledige kennis van het genererende algoritme en eerdere waarden.
Fysische entropiebronnen
- Luchtgeluid
- Radioactief verval
- Thermisch geluid
- Kwantumverschijnselen (fotosplitsing)
- Elektronisch lawaai en circuitgedrag
TNG-implementatietypes
- Hardware Random Number Generators
- Quantum Random Number Generators (QRNGs)
- generatoren op basis van geluid
- oscillatorgeneratoren met vrije loop
- generatoren op basis van chaos
TRNG's zijn essentieel voor toepassingen die het hoogste niveau van beveiliging en onvoorspelbaarheid vereisen, zoals cryptografische sleutelgeneratie, beveiligde communicatie en high-stakes goksystemen. Ze hebben echter meestal een tragere generatie en kunnen duurder te implementeren.
- Geluidsbron (levert entropie)
- Digitalizer (omzet analoge signalen naar digitaal)
- Conditioner/extractor (verbetert de randomness kwaliteit)
- Gezondheidstests (controleert de goede werking)
Pseudorandom Number Generators (PRNG's)
Pseudorandom Number Generators gebruiken deterministische algoritmen om reeksen getallen te genereren die willekeurig lijken. Hoewel niet echt willekeurig, ze zijn ontworpen om verschillende statistische tests voor willekeur en zijn geschikt voor vele toepassingen.
Vaak PRNG Typen
- Lineaire congruente generatoren (LCG's)
- Mersenne Twister
- Xorshift generatoren
- Vermenigvuldigingsgeneratoren
- WELL (Well-Equidistributed Long-Time Linear) -generatoren
PRNG-kenmerken
- Deterministisch (hetzelfde zaad produceert dezelfde reeks)
- Periodiek (uiteindelijk herhaald na enige periode)
- Snelle en efficiënte generatie
- Gemakkelijk reproduceerbaare resultaten
- Geschikt voor simulaties en toepassingen zonder beveiliging
Cryptografisch veilige PRNG's (CSPRNG's)
Cryptografisch veilige pseudorandom Number Generators zijn een speciale klasse PRNGs ontworpen om voorspellingen te weerstaan. Ze zijn geschikt voor beveiligingskritische toepassingen maar werken nog steeds deterministisch.
CSPRNG Voorbeelden
- Blum-Blum-Shub (BBS) -generator
- RSA/Rabin Generator
- Fortuna-algoritme
- HMAC-DRBG
- generatoren op basis van ChaCha20
- AES-CTR-modusgeneratoren
CSPRNG Beveiligingseigenschappen
- Forward security (beveiligd vorige uitvoer)
- Achterwaartse geheimhouding (beschermde toekomstige resultaten)
- Beschikt staat compromis
- Gebaseerd op harde rekenproblemen
- Voldoet aan alle statistische polynomiale-tijdtests
Randomness Testing en Validatie
Het testen van de kwaliteit van random number generators is cruciaal om ervoor te zorgen dat ze voldoen aan de eisen voor hun beoogde toepassingen. Er zijn verschillende gestandaardiseerde testsuites beschikbaar:
- Diehard batterij van tests
- NIST Statistical Test Suite (SP 800-22)
- TestU01 Suite
- Chi-Square Test
- Frequentietest (Monobit Test)
- Test uitvoeren
- Concordantietabel Test
- Kolmogorov-Smirnov Test
- Verjaardagsplaatsen Test
Hybride benaderingen
Voor optimale resultaten in beveiligingstoepassingen worden vaak hybride benaderingen gebruikt die meerdere soorten random number generatoren combineren:
- Een TRNG gebruiken om zaden te genereren voor een CSPRNG
- Entropiepools die willekeurigheid uit meerdere bronnen verzamelen
- Nabewerking van de TRNG-output met behulp van cryptografische hashfuncties
- Het combineren van uitgangen van meerdere onafhankelijke generatoren
Beste praktijken voor kritische toepassingen
- Gebruik een TRNG voor het genereren van initiële entropie (seeds)
- Verwerk de entropie via een CSPRNG voor betere statistische eigenschappen
- Gebruik gevestigde, goed beoordeelde algoritmen en implementaties
- Continu toezicht houden op de gezondheid en outputkwaliteit van de RNG
- Toepassen van cryptografische nabewerking (hashing) indien van toepassing
- Voldoen aan relevante normen (NIST SP 800-90A/B/C, BSI AIS 20/31)
Wat zijn Random Numbers?
Willekeurige getallen zijn getallen die voorkomen in een volgorde die zodanig is dat aan twee voorwaarden wordt voldaan:
- De waarden zijn gelijkmatig verdeeld over een bepaald interval
- Het is onmogelijk toekomstige waarden te voorspellen op basis van vroegere of huidige waarden
- Elk getal heeft een gelijke kans om geselecteerd te worden
- De volgorde is statistisch onafhankelijk
Aanvragen
Statistische bemonstering
Selectie van willekeurige monsters uit populaties voor statistische analyse.
Simulaties
Het creëren van willekeurige scenario's voor Monte Carlo simulaties.
Cryptografie
Versleutelingssleutels genereren en willekeurige waarden beveiligen.
Gaming
Het creëren van willekeurige resultaten in games en loterijen.
Willekeurige nummergeneratie
Onze random number generator gebruikt een cryptografische veilig algoritme om echt willekeurige getallen te genereren:
- Uniforme verdeling over het opgegeven bereik
- Cryptografisch veilige willekeurige getalgeneratie
- Ondersteuning voor zowel gehele getallen als decimalen
- Aanpasbaar aantal decimalen
Voorbeelden
Voorbeeld 1Gehele getallen
Bereik: 1 tot 10
Aantal: 5
Decimale plaatsen: 0
3, 7, 1, 9, 4
Willekeurige gehele getallen tussen 1 en 10
Voorbeeld 2Decimale getallen
Bereik: 0 tot 1
Aantal: 3
Decimale plaatsen: 2
0.42, 0.87, 0.15
Willekeurige decimalen tussen 0 en 1
Voorbeeld 3Aangepast bereik
Bereik: -100 tot 100
Aantal: 4
Decimale plaatsen: 1
-45.2, 78.9, -12.4, 56.7
Willekeurige getallen tussen -100 en 100