List of random number generators
Computer random number generators are important in mathematics, cryptography and gambling (on game servers).
This list includes many common types, regardless of quality.
Pseudorandom number generators (PRNGs)
The following algorithms are pseudorandom number generators:
- Yarrow
- Blum Blum Shub
- Blum–Micali algorithm
- Wichmann-Hill
- Complementary-multiply-with-carry
- Inversive congruential generator
- ISAAC (cipher)
- Lagged Fibonacci generator
- Linear congruential generator - of historical importance
- Linear feedback shift register
- Maximal periodic reciprocals
- Mersenne twister - the most widely used PRNG [1]
- Middle-square method
- Multiply-with-carry
- Naor-Reingold Pseudorandom Function
- Park–Miller random number generator
- RC4 PRGA
- Well Equidistributed Long-period Linear
- Xorshift
- Rule 30
Hardware (True) Random Number Generators (TRNGs)
The following is a list of companies that produce hardware random number generators:
- Araneus Alea
- ComScire
- Entropy Key
- Fox-IT Fox RandomCard
- ID Quantique
- Intel 810/815/840/845G chipsets
- Intel RdRand instruction
- LETech
- QuintessenceLabs
- TectroLabs
- TRNG98
- VIA Padlock engine
- Whitewood Entropy Engine
- Kidekin TRNG
- OneRNG
- BitBabbler
- ubld.it TrueRNG
Random number servers
You may download true random numbers from these sites:
- appIncredible.com Supports pseudo-random and Cryptographic-random number generation. Also supports decimals, multiple numbers, negative numbers, unique numbers, sorting and sets.
- HotBits
- random.org
- EntropyPool
- randomnumbers.info
- Randomserver Supports various distributions of random numbers; uses a TRNG9803[2]
- Australian National University[3]
- Humboldt University of Berlin (registration required)
- Entropy as a Service
- Ubuntu Pollinate
You may generate pseudo-random numbers from these sites:
- randomgenerator.net Generates both negative and positive numbers for integers and decimals. Also supports multiple numbers.
- andrew.hedges.name
- randomnumbergenerator.com
Note: random numbers transferred over the public internet are not cryptographically secure for most purposes.
Cryptographic algorithms
Cipher algorithms and cryptographic hashes can also be used as pseudorandom number generators. These include:
Well-known PRNG APIs
- Random class in the .NET Framework
- Random class in the Java programming language
- SecureRandom class in the Java programming language
- Random module in the Haskell 98 specifications
- Web Crypto API for web browsers
Random number generators that use external entropy
- TRaNGen2 - Microsoft Windows
- CryptGenRandom - Microsoft Windows
- Fortuna
- Yarrow - Mac OS X and FreeBSD
- /dev/random - Linux and Unix
- LavaRnd - The open-source (LGPL) successor to Lavarand
See also
- Diceware
- Diehard tests - statistical test suite for random number generators.
- Hardware random number generator
- Random number generator attack
- Randomness
References
- ↑ E.g. Marsland S. (2011) Machine Learning (CRC Press), §14.1.1. Also see the section "Adoption in software systems".
- ↑ "randomserver". Free Download of True Random Numbers.
- ↑ Thomas Symul; Syed M. Assad; Ping Koy Lam (2011-06-07), "Real time demonstration of high bitrate quantum random number generation with coherent laser light", Applied Physics Letters 98 (23): 231103, arXiv:1107.4438, doi:10.1063/1.3597793
External links
- SP800-90 series on Random Number Generation, NIST
- Random Number Generation in the GNU Scientific Library Reference Manual
- Random Number Generation Routines in the NAG Numerical Library
- Chris Lomont's overview of PRNGs, including a good implementation of the WELL512 algorithm
This article is issued from Wikipedia - version of the Tuesday, February 09, 2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.