Important News:SafeLogic Announces General Availability for CryptoComply for Go! Learn more!
Introduction to the SP 800-90 Series - Requirements on Random Number Generation
April 15, 2025 •Aryeh Archer
As outlined in our previous blog post, a strong source of randomness (i.e. entropy) is vital for cryptography. It’s not enough to use a strong cryptographic algorithm if your generated keys are easy for an attacker to guess and use!
To address the problem of weak randomness in cryptography, NIST has been hard at work for over a decade on creating the SP 800-90 series of standards on implementing secure random number generators. These are the random number generation standards that the Cryptographic Module Validation Program (CMVP) uses for FIPS 140 validation.
There are currently three standards in the NIST SP 800-90 series, each with different purposes and maturity.
SP 800-90A
The first standard in this series is SP 800-90A Rev 1. - Recommendation for Random Number Generation Using Deterministic Random Bit Generators. This standard defines the FIPS 140 approved Deterministic Random Bit Generators (DRBGs). A DRBG is a deterministic algorithm. A DRBG is not a source of entropy, but it is useful for conditioning the output of entropy sources and expanding the amount of entropy received from an entropy source. DRBGs also provide an additional layer of assurance - if you have an undetected entropy source failure, the failure will be less obvious to an attacker when the output has been processed by a DRBG. DRBGs are required in FIPS 140 for all key generation.
The three approved DRBG types, as detailed in this standard, are CTR_DRBGs (using AES as a cryptographic primitive, and previously TDES), Hash_DRBGs (using SHS as a primitive), and HMAC_DRBGs (using HMAC as a primitive).
This standard is mature and has been in use for over a decade, with the most recent version published in June 2015. For the next revision of this standard (SP 800-90A Rev 2), updates are anticipated to align with the final published version of SP 800-90C. These updates are likely to include an updated definition of full entropy output, removal of algorithms that are no longer approved (TDES and SHA-1), replacement of nonces with larger entropy input requirements. Additionally, a new XOF_DRBG construction is expected, along with the addition of SHA-3, SHAKE, and Ascon options for the existing DRBGs.
SP 800-90B
The second standard in this series is SP 800-90B - Recommendation for the Entropy Sources Used for Random Bit Generation. This standard defines FIPS 140 approved entropy sources. An entropy source is an unpredictable source of randomness or noise. It is not a deterministic algorithm, and therefore the standard does not define how the entropy source should be constructed. Instead, the standard defines a series of general requirements. The entropy source is tested for compliance with these requirements during the entropy source validation process.
Because the standard requirements are general, a wide variety of entropy sources can potentially be validated. These entropy sources collect randomness from unpredictable values such as those found in hardware interactions, oscillator jitter, clock values, environmental measurements, quantum state transitions, and cache usage. However, due to the requirements of the standard, entropy sources cannot usually be validated unless they have been designed for conformance with SP 800-90B. For example, SP 800-90B requires tester access to raw noise (unconditioned output) in the entropy source. It also requires detailed rationales and models for the expected entropy rates, including the impacts to the entropy rate from every component of the entropy source. The standard also details requirements for health tests to be run on start-up, on-demand, and continuously during the entropy source’s operation. As part of validation, the entropy source outputs must also be tested against the NIST SP 800-90B statistical test suite. Validated entropy sources do not need to generate entropy at a high rate, but slower entropy sources will take longer to accumulate sufficient bits of entropy (e.g. to collect 256 bits of entropy to seed an AES-256 based CTR_DRBG).
Because of SP 800-90B’s stringent requirements, many commonly used entropy sources such as dev/random cannot be validated against this standard.
This standard was published in January 2018 and began to be integrated into FIPS 140 in 2019. There are no imminent updates to this standard, but the next revision is likely to align more closely with the requirements defined in the AIS 20/31 standards defined by Germany’s Federal Office for Information Security (BSI).
SP 800-90C
The third and final standard in this series is SP 800-90C - Recommendation for Random Bit Generator (RBG) Constructions. This standard is still a draft, and the final version has not yet been published. This standard defines RBG constructions, which are approved methods of combining an entropy source from SP 800-90B with a DRBG from SP 800-90C. In each construction, the entropy source output is used to seed (instantiate) a DRBG.
The current draft of SP 800-90C defines four RBG constructions, as detailed below.
- RBG1 is a DRBG that can only be seeded once by an external physical entropy source.
- RBG2 is intended to be the most common option. It consists of a DRBG seeded by an internal entropy source that is available on demand.
- RBG3 is a more restrictive version of RBG2 and it provides full entropy outputs from the RBG. It must oversample the collected entropy or XOR the DRBG output with additional entropy, it must use a physical (non-software) entropy source, and the DRBG must be reseeded for every RBG output.
- RBGC is a construction that allows limited chaining of RBGs on the same computing platform.
Notably, the draft only includes RBG constructions with components that are all on the same device and (if applicable) in the same virtual environment, except for the RBG1 construction that can only be seeded once. That is, SP 800-90C does not include any approved RBGs where the entropy source is outside the device and is callable on demand. So entropy as a service will not be SP 800-90C approved.
The most recent draft of this standard was published in July 2024. Once the final version is published, this standard will be adopted for FIPS 140, but a transition period of at least a year is expected.
Learn more
To learn more about the NIST’s SP 800-90 series efforts, see the NIST project page on random bit generation here.
And to learn more about how these standards have applied to FIPS 140 validations over the years, stay tuned for our next blog post in this series!

Aryeh Archer
Aryeh is Safelogic's Director, Operations and Compliance.
Popular Posts
Search for posts
Tags
- FIPS 140 (113)
- FIPS validation (85)
- Encryption (69)
- cryptography (67)
- NIST (62)
- CryptoComply (60)
- SafeLogic (57)
- Industry News (52)
- cryptographic module (51)
- CMVP (48)
- Conversations (47)
- RapidCert (46)
- compliance (41)
- Ray Potter (33)
- SafeLogic News (32)
- federal (27)
- Event (26)
- CAVP (24)
- Cybersecurity (23)
- FIPS 140-3 (21)
- OpenSSL (15)
- post-quantum cryptography (15)
- FedRAMP (14)
- government (14)
- PQC (13)
- CryptoCompact (12)
- Cryptology (12)
- DoD (12)
- healthcare (12)
- partners (11)
- RSA (10)
- Cloud (9)
- NSA (9)
- security (9)
- CMMC (8)
- Suite B (8)
- testing (8)
- whitepaper (8)
- Approved Products List (APL) (6)
- HITECH (6)
- ICMC (6)
- NIST 800-53 (6)
- lab (6)
- CEO (5)
- NIST 800-171 (5)
- OpenSSL 3.0 (5)
- iOS (5)
- procurement (5)
- C3PAO (4)
- Common Criteria (4)
- HITECH Act (4)
- OpenSSL 3.x (4)
- TLS 1.3 (4)
- deadline (4)
- innovation (4)
- procure (4)
- public sector (4)
- Air Force (3)
- DFARS (3)
- Entropy Source Validation (3)
- HIPAA Safe Harbor (3)
- HITECH Safe Harbor (3)
- OpenSSL 1.1.1 (3)
- POA&M (3)
- encrypt (3)
- entropy (3)
- magazine (3)
- queue (3)
- transition (3)
- 3PAO (2)
- ACVP (2)
- BAA (2)
- BSAFE (2)
- CIO (2)
- CSP (2)
- Defense Industrial Base (2)
- FISMA (2)
- HIPAA security controls (2)
- Historical Status (2)
- MFA (2)
- OpenSSL 1.0.2 (2)
- SPRS (2)
- StateRAMP (2)
- excellence (2)
- founder (2)
- gold (2)
- leader (2)
- maturity (2)
- overlap (2)
- pilot (2)
- rsa conference (2)
- solution (2)
- sunset (2)
- vendor (2)
- year (2)
- Active Status (1)
- Alliance for Digital Innovation (1)
- Android (1)
- CIO Prime Views (1)
- Cyber Defense Magazine (1)
- DHS (1)
- DIU (1)
- DIUx (1)
- DOJ (1)
- DoDIN APL (1)
- FCA (1)
- FIPS Compliance (1)
- GSA (1)
- HITRUST (1)
- Matt Cornelius (1)
- Matthew Cornelius (1)
- Maturity Model (1)
- NCCoE (1)
- OMB (1)
- SLED (1)
- SP800-131A (1)
- SP800-90A (1)
- TLS 1.1 (1)
- background (1)
- best (1)
- co-founder (1)
- congress (1)
- cybertech (1)
- education (1)
- elliptic curve cryptography (1)
- extended (1)
- faq (1)
- finance (1)
- fintech (1)
- fiscal (1)
- fiscal year (1)
- fraud (1)
- globee (1)
- hill (1)
- interview (1)
- kratos (1)
- libgcrypt (1)
- national cybersecurity strategy (1)
- opportunities (1)
- parallel (1)
- profile (1)
- public (1)
- representatives (1)
- reseller (1)
- senate (1)
- senators (1)
- simplify (1)
- sponsors (1)
- state (1)
- stealth mode (1)
- story (1)