Random number generator (RNG) module
The Random number generator (RNG) module provides random number generation, see
The block-cipher counter-mode based deterministic random bit generator (CTR_DBRG) as specified in NIST SP800-90. It needs an external source of entropy. For these purposes
can be used. This is an implementation based on a simple entropy accumulator design.
The other number generator that is included is less strong and uses the HAVEGE (HArdware Volatile Entropy Gathering and Expansion) software heuristic which considered unsafe for primary usage, but provides additional randomness to the entropy pool if enabled.
Meaning that there seems to be no practical algorithm that can guess the next bit with a probability larger than 1/2 in an output sequence.
This module can be used to generate random numbers.
ADC, RADIO and True Random Number Generator (TRNG) hardware peripheral plugins are available for Silicon Labs. Peripheral availability depends on the target device. Entropy source plugins are implemented with a back-end interface for the entropy accumulator of mbed TLS in order to generate cryptographically secure random numbers.
The plugin supports hardware generated entropy from the ADC peripheral. The IADC peripheral is not supported. See ADC Entropy Source Plugin for more details.
The RAIL entropy plugin collects data from the radio on EFR32 devices. This plugin depends on the RAIL library. See Radio (RAIL) Entropy Source Plugin for more details.
The TRNG entropy plugin collects data from from a dedicated NIST-800-90B compliant source. The TRNG peripheral may either be stand-alone or integrated in the SE peripheral depending on the target device. See True Random Number Generator (TRNG) Plugin for more details.
|ADC Entropy Source Plugin|
|Collect entropy from the ADC on Silicon Labs devices. |
|Radio (RAIL) Entropy Source Plugin|
|Collect entropy from Radio Abstraction and Interface Layer (RAIL) on Silicon Labs EFR32 devices. |
|True Random Number Generator (TRNG) Plugin|
|True Random Number Generator (TRNG) driver for Silicon Labs devices. |