blob: 8b482f1676f2fbd9dfdf021cf29763ab0c430cec [file] [log] [blame] [raw]
Paul Bakker37ca75d2011-01-06 12:28:03 +00001/**
2 * @file
3 * Random number generator (RNG) module documentation file.
4 */
5
6/**
7 * @addtogroup rng_module Random number generator (RNG) module
Paul Bakker6083fd22011-12-03 21:45:14 +00008 *
Paul Bakkerdcbfdcc2013-09-10 16:16:50 +02009 * The Random number generator (RNG) module provides random number
10 * generation, see \c ctr_dbrg_random().
11 *
12 * The block-cipher counter-mode based deterministic random
Paul Bakker6083fd22011-12-03 21:45:14 +000013 * bit generator (CTR_DBRG) as specified in NIST SP800-90. It needs an external
14 * source of entropy. For these purposes \c entropy_func() can be used. This is
15 * an implementation based on a simple entropy accumulator design.
16 *
Paul Bakkerdcbfdcc2013-09-10 16:16:50 +020017 * The other number generator that is included is less strong and uses the HAVEGE
18 * (HArdware Volatile Entropy Gathering and Expansion) software heuristic
19 * which considered unsafe for primary usage, but provides additional random
20 * to the entropy pool if enables.
Paul Bakker37ca75d2011-01-06 12:28:03 +000021 *
22 * \* Meaning that there seems to be no practical algorithm that can guess
23 * the next bit with a probability larger than 1/2 in an output sequence.
24 *
25 * This module can be used to generate random numbers.
26 */