mirror of
https://github.com/taigrr/arduinolibs
synced 2025-01-18 04:33:12 -08:00
Watchdog-based noise source
This commit is contained in:
@@ -85,6 +85,27 @@ TransistorNoiseSource as Rob's design has had more review. Another
|
||||
approach is to mix multiple noise sources together to get the best
|
||||
of both worlds.
|
||||
|
||||
\section crypto_rng_builtin Built-in entropy sources
|
||||
|
||||
Some entropy sources are built in and do not need to be provided via a
|
||||
NoiseSource object.
|
||||
|
||||
On the Arduino Due, the built-in True Random Number Generator (TRNG) is used
|
||||
to seed the random number generator in addition to any configured noise
|
||||
sources.
|
||||
|
||||
On AVR-based Arduino platforms (Uno, Nano, Mega, etc), jitter between the
|
||||
watchdog timer and the main CPU clock is used to harvest some entropy
|
||||
using a technique similar to that described
|
||||
<a href="https://sites.google.com/site/astudyofentropy/project-definition/timer-jitter-entropy-sources/entropy-library">here</a>.
|
||||
This is not a high quality source of entropy but it is "better than nothing"
|
||||
if an external noise source is not available or practical. Entropy
|
||||
accumulates very slowly and it could take several minutes before the state
|
||||
is sufficiently random for safe use.
|
||||
|
||||
For security-critical applications it is very important to combine the
|
||||
built-in entropy sources with an external noise source.
|
||||
|
||||
\section crypto_rng_init Initializing the random number generator
|
||||
|
||||
To use the random number generator, both \link RNGClass RNG\endlink and a
|
||||
|
||||
Reference in New Issue
Block a user