1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/sys/entropy_source/doc.txt

47 lines
2.4 KiB
Plaintext

/*
* Copyright (C) 2020 HAW Hamburg
*
* This file is subject to the terms and conditions of the GNU Lesser
* General Public License v2.1. See the file LICENSE in the top level
* directory for more details.
*/
/**
* @defgroup sys_entropy_source Entropy Sources
* @ingroup sys
* @brief Collection of different Entropy Sources
* @warning Entropy sources need to be thoroughly evaluated before deployment!
* @experimental This API is in an early state - expect changes.
* @note This API is considered as internal. Only use it if you know what
* you are doing and expect API changes without deprecation.
*
*
* @brief Collection of entropy sources.
*
*
* This module adds support for additional entropy sources next to pure peripheral sources like
* @ref drivers_periph_hwrng and @ref sys_puf_sram. The concepts implemented here are heavily
* influenced by NIST SP 800-90B. Entropy sources can be used to feed more advanced entropy
* modules for cryptographic purposes, which typically accumulate multiple sources and safely
* maintain internal states. Alternatively, these sources can be used directly or with internal
* conditioning enabled for non-cryptographic tasks like seed generation of general purpose PRNGs,
* in the absence of a hardware random number generator. The API, however, is not meant to face a user.
*
* A common component provides optional access to health tests and conditioning
* (@ref sys_entropy_source_config) that can be run on
* parallel instantiations. The conditioning currently implements a von Neumann extractor to
* unbias samples. It adds a variable runtime (dependent on the input samples) but is lightweight.
* In future, other conditioning mechanisms such as hash based derivation functions might be
* included.
*
* Entropy sources require thorough testing and evaluation for serious deployments which is out of
* scope of this module, and we refer to <a href="https://github.com/usnistgov/
* SP800-90B_EntropyAssessment">SP800-90B_EntropyAssessment</a> for validation. Among other metrics,
* this tool will return an entropy estimation per sample that should be employed for every
* deployment scenario and must be configured in software accordingly. In the specific case
* of the ADC based entropy source, a developer needs to set @ref CONFIG_ENTROPY_SOURCE_ADC_HMIN
* accordingly.
*
*/