Random number generator (RNG) module

Detailed Description

The Random number generator (RNG) module provides random number generation, see mbedtls_ctr_drbg_random().

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 mbedtls_entropy_func() 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.

Silicon Labs Hardware Entropy Source Plugins

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.

ADC Entropy Source Plugin

The plugin supports hardware generated entropy from the ADC peripheral. The IADC peripheral is not supported. See ADC Entropy Source Plugin for more details.

Radio (RAIL) Entropy Source Plugin

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.

True Random Number Generator (TRNG) Plugin

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.

Modules

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.