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

32 lines
1.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_random_shaxprng SHAX random number generator
* @ingroup sys_random
*
* @brief SHA based random number generator implementation(CSPRNG).
*
* The generator bases on an internal structure that has been presented in
* FIPS 186-1 Appendix 3.2, which is why it is sometimes named as "DSA PRNG" or
* "FIPS PRNG" in the literature. Outputs are generated by hashing the internal
* generator state, and the feedback path applies a linear transformation to the
* state which is hashed again to create further next outputs. Thus, a potential
* state compromise may allow recovering preceding generator outputs, because
* linear operations in the feedback path are invertible. Thereby, this generator
* gets along with a single hash computation per block which makes the generator
* lightweight in comparison to more advanced CSPRNGs.
*
* This implementation can be run with the SHA-1 or SHA-256 hash function
* for creating outputs. SHA-1 has been deprecated by NIST in 2011 due to
* a collision- and potential brute-force attack. Thus, SHA-256 can be used as
* an alternative. To select one or the other, export
* `USEMODULE += prng_sha1prng` or
* `USEMODULE += prng_sha256prng`
* during compilation.
*/