A statistical health test continuously checks raw bits from a physical entropy source against the entropy behavior predicted by its physical model. Failure must stop random-number generation rather than allowing defective output into cryptographic operations. section 10.2
A sound randomness pipeline places the test at a specific point:
- Digitize noise from a physical entropy source into raw bits. section 10.2
- Run health tests directly on those raw bits, before randomness extraction, because the tests depend on the source’s physical model. section 10.2
- Stop the entire random-number-generation process when a test fails. section 10.2
- After successful testing, use an extractor to remove bias, then seed and periodically reseed a CSPRNG for faster output. section 10.2
Detecting a failed hardware source
A hardware RNG that emits a string of zeros or ones may produce blatantly defective output. Without health tests, that output can pass through undetected; with a failed test, generation should stop. section 10.2
Figure 10.2 The recommended setup for using randomness for cryptographic applications: health tests should ensure the correct operation of the TRNG, which should periodically reseed a CSPRNG.
Trace the recommended arrangement of health-tested TRNG output, randomness extraction, and periodic CSPRNG reseeding. section 10.2
