Discussion Overview
The discussion revolves around the implementation of random number generators (RNGs) using AVR microcontrollers, focusing on both pseudo-random number generators (PRNGs) and true random number generators (TRNGs). Participants seek suggestions for sources of entropy for TRNGs, algorithms for PRNGs, and methods to test randomness. The applicability of chaos theory to random number generation is also questioned.
Discussion Character
- Exploratory
- Technical explanation
- Debate/contested
- Mathematical reasoning
Main Points Raised
- Some participants define PRNG as pseudo-random number generator and TRNG as true random number generator, discussing their differences.
- There are suggestions to use hardware generators that sample noise from physical sources, such as a noisy diode or resistor, to create TRNGs.
- One participant mentions using the power-up state of SRAM memory as a source of hardware randomness for PRNGs.
- Concerns are raised about the quality of physical random generators, noting biases that may render them unsuitable for cryptographic applications without further processing.
- Some argue that while hardware RNGs can be perfectly random, they may be too slow for practical use, and thus PRNGs are preferred for speed.
- A later reply discusses the potential of hashing physical signals to improve randomness quality for cryptographic purposes.
- Participants share links to external resources and examples of RNG implementations, including a specific RNG that passes the dieharder suite.
- There is mention of using ring oscillators for physical unclonable functions (PUFs) in cryptographic key generation.
Areas of Agreement / Disagreement
Participants express differing views on the effectiveness and reliability of TRNGs versus PRNGs, particularly in the context of cryptography. There is no consensus on the best approach or the quality of physical random generators, indicating ongoing debate and exploration of the topic.
Contextual Notes
Participants highlight limitations in the randomness of physical sources, such as biases and speed issues, and the need for additional processing to ensure adequate randomness for cryptographic applications. The discussion remains open-ended regarding the best practices for implementing RNGs.