Paul Bakker | 37ca75d | 2011-01-06 12:28:03 +0000 | [diff] [blame] | 1 | /** |
| 2 | * @file |
| 3 | * Random number generator (RNG) module documentation file. |
| 4 | */ |
| 5 | |
| 6 | /** |
| 7 | * @addtogroup rng_module Random number generator (RNG) module |
| 8 | * |
| 9 | * The Random number generator (RNG) module provides random number |
Paul Bakker | 6083fd2 | 2011-12-03 21:45:14 +0000 | [diff] [blame^] | 10 | * generation, see \c ctr_dbrg_random() or \c havege_random(). |
| 11 | * |
| 12 | * The former uses the block-cipher counter-mode based deterministic random |
| 13 | * 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 | * |
| 17 | * The latter random number generator uses the HAVEGE (HArdware Volatile |
Paul Bakker | 37ca75d | 2011-01-06 12:28:03 +0000 | [diff] [blame] | 18 | * Entropy Gathering and Expansion) software heuristic which is claimed |
| 19 | * to be an unpredictable or empirically strong* random number generation. |
| 20 | * |
| 21 | * \* Meaning that there seems to be no practical algorithm that can guess |
| 22 | * the next bit with a probability larger than 1/2 in an output sequence. |
| 23 | * |
| 24 | * This module can be used to generate random numbers. |
| 25 | */ |