NIST SP 800-90B Min-Entropy Suite

NIST Special Publication 800-90B min-entropy estimation suite. Quantifies the worst-case unpredictability of physical entropy sources via 10 estimators across Non-IID and Predictor tracks — the gold standard for FIPS 140-3 entropy source validation.

FIPS 140-3 Entropy Validation: NIST SP 800-90B is the mandatory standard for entropy source validation in FIPS 140-3 certified cryptographic modules. It estimates the worst-case min-entropy ($H_{\infty}$) per sample output by each physical noise source.

NIST SP 800-90B Min-Entropy Estimators

SP 800-90B defines two evaluation tracks. Each estimator independently computes a lower bound on the min-entropy $H_{\infty}$ (bits per output symbol). The final certified value is the minimum across all applicable estimators:

SectionEstimator NameTrackPass CriteriaDescription
§6.3.1Most Common ValueNon-IID$H_{\infty} \ge 6.00$ b/BEstimates entropy from the probability of the single most frequent output value.
§6.3.2Collision TestNon-IID$H_{\infty} \ge 6.00$ b/BMean time until a repeated value; models birthday-bound min-entropy.
§6.3.3Markov TestNon-IID$H_{\infty} \ge 6.00$ b/BEntropy of a first-order Markov chain model fitted to the sequence.
§6.3.4Compression TestNon-IID$H_{\infty} \ge 6.00$ b/BLempel-Ziv compression-based entropy estimator (planned).
§6.3.5t-Tuple TestNon-IID$H_{\infty} \ge 6.00$ b/BFrequency of all overlapping $t$-tuples; chooses optimal tuple length.
§6.3.6Longest Repeated SubstringNon-IID$H_{\infty} \ge 6.00$ b/BLength of longest repeated overlapping substring (planned).
§6.3.7Multi Most Common in WindowPredictor$P_{\text{global}} \le 0.25$Adaptive window-based multi-symbol prediction (planned).
§6.3.8Lag Prediction TestPredictor$P_{\text{global}} \le 0.25$Predicts current symbol from a fixed-lag previous symbol (planned).
§6.3.9MultiMMC Prediction TestPredictor$P_{\text{global}} \le 0.25$Multi-order Markov chain predictor (planned).
§6.3.10LZ78Y Prediction TestPredictor$P_{\text{global}} \le 0.25$LZ78-based dictionary predictor (planned).

[!NOTE]
§6.3.1–§6.3.3, §6.3.5 (Non-IID track) are fully implemented. §6.3.4, §6.3.6–§6.3.10 are specification stubs shown as NOT IMPLEMENTED in the dashboard.

Non-IID vs IID Track

  • Non-IID track (§6.3.1–§6.3.6): Used when the entropy source output is assumed to be not identically and independently distributed — the conservative, required path for most physical TRNGs.
  • Predictor track (§6.3.7–§6.3.10): Adversarial prediction-based estimators that directly measure how well an optimal predictor can guess the next output symbol.

When to Use SP 800-90B

  1. FIPS 140-3 Entropy Source Submission: The mandatory estimation procedure for all entropy sources claiming FIPS 140-3 compliance (replacing FIPS 140-2). Required before seeding NIST-approved DRBGs (SP 800-90A) in validated modules.
  2. Physical TRNG Min-Entropy Certification: Characterizing thermal noise amplifiers, ring oscillators, reverse-biased junctions, and photon counting detectors for their certified min-entropy per bit output — the baseline for entropy conditioning design.
  3. Entropy Conditioner Design: Determining the correct compression ratio for entropy conditioners (hash-based, CBC-MAC-based). SP 800-90B Section 3.1.5 requires the conditioner input min-entropy to exceed the output security strength.
  4. Common Criteria AVA_VAN Entropy Evidence: Generating formal evidence packages for Common Criteria evaluations at AVA_VAN.3–AVA_VAN.5 requiring statistical entropy analysis of security-enforcing random number sources.

The Minimum Rule: NIST SP 800-90B Section 3.1.3 states that the assessed min-entropy of an entropy source is the minimum of all applicable estimator outputs. Even a single low-entropy estimator result will cap the certified entropy claim regardless of how other estimators perform.

Sample Size Requirement: SP 800-90B requires a minimum of 1,000,000 samples (bytes for byte-output sources, bits for bit-output sources) for formal assessment. The Non-IID estimators may return INSUFFICIENT DATA for files smaller than ~125 KB.