Overview#

A Cryptographically secure pseudorandom number generator (CSPRNG or CPRNG) is a pseudorandom number generator (PRNG) with properties that make it suitable for use in cryptography.

Ideally, the generation of random numbers in Cryptographically secure pseudorandom number generators uses entropy obtained from a high-quality source, which might be a hardware random number generator or perhaps unpredictable system processes — though unexpected correlations have been found in several such ostensibly independent processes.

From an information-theoretic point of view, the entropy that can be generated, is equal to the entropy provided by the system. But sometimes, in practical situations, more random numbers are needed than there is entropy available.

Also the processes to extract randomness from a running system are slow in actual practice. In such instances, a Cryptographically secure pseudorandom number generator can sometimes be used. A Cryptographically secure pseudorandom number generator can "stretch" the available entropy over more bits.

In Cryptography discussions we typically make a Computational Hardness Assumption.

More Information#

There might be more information for this subject on one of the following: