A.1. Random Number Generator Library
The Random Number Generator Library and Cryptography
The use of these pseudo-random number generator (PRNG) algorithms are not recommended for cryptographic purposes. The PRNGs included in this library are not cryptographically-secure pseudo-random number generators (CSPRNGs) and should not be used for cryptography. CSPRNG algorithms are designed so that no polynomial-time algorithm (PTA) can compute or predict the next bit in the pseudo-random sequence, nor is there a PTA that can predict past values of the CSPRNG; these algorithms do not achieve this purpose. Additionally, these algorithms have not been reviewed nor are they recommended for use as a PRNG component of a CSPRNG, even if the input values are from a non-deterministic entropy source with an appropriate entropy extractor.
|Value distribution||Value type||Value range||Generation method|
|Uniform||Integer||[-2³¹, 2³¹-1]||Tausworthe Generator|
|Floating point||[0, 1) (non-inclusive)||Tausworthe Generator|
|Gaussian||Floating point||[0, 1)||Central limit theorem (CLT) (Default)|
The header file is self-documented. You can review the header file to learn how to use the random number generator library in your component.
Random Number Object Declarations
- Uniform distribution integer random number
static RNG_Uniform<int> <object_name>(<seed_value>)
- Uniform distribution floating point random number
static RNG_Uniform<float> <object_name>(<seed_value>)
- Gaussian distribution floating point random number (CLT method)
static RNG_Gaussian<float> <object_name>(<seed_value>)
static RNG_Gaussian<float, ihc::GAUSSIAN_CLT> <object_name>(<seed_value>)
- Gaussian distribution floating point random number (Box-Muller method)
static RNG_Gaussian<float, ihc::GAUSSIAN_BOX_MULLER> <object_name>(<seed_value>)
Did you find the information on this page useful?