Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
A pseudo random number generator (PRNG) refers to an algorithm that uses mathematical formulas to produce sequences of random numbers. PRNGs generate a sequence of numbers approximating the properties of random numbers. This is determined by a small group of initial values. PRNGs are fundamental to the use of cryptographic mechanisms and key generation as they ensure message uniqueness.
This term is also known as deterministic random number generator.
Widely used PRNG algorithms include: linear congruential generators, lagged Fibonacci generators, linear feedback shift registers, Blum Blum Shub, Fortuna and Mersenne Twister.
A pseudo random number generator starts from an arbitrary starting state using a seed state. Many numbers are generated in a short time and can also be reproduced later, if the starting point in the sequence is known. Hence, the numbers are deterministic and efficient.
PRNGs used in cryptographic purposes are called cryptographically secure PRNGs (CSPRNGs). This includes stream ciphers and block ciphers. The essential requirement for a CSPRNG is that it should pass all statistical tests restricted to polynomial time in the size of the seed.