米国 NIST SP 800-90C 乱数ビット生成器(RBG)構築に関する推奨事項 (2025.0925)
こんにちは、丸山満彦です。
NISTが、SP 800-90C 乱数ビット生成器(RBG)構築に関する推奨事項を公表していますね...
ついでに、SP800-90シリーズの歴史的なもの...
● NIST - ITL
・2025.09.25 NIST SP 800-90C Recommendation for Random Bit Generator (RBG) Constructions
| NIST SP 800-90C Recommendation for Random Bit Generator (RBG) Constructions | NIST SP 800-90C 乱数ビット生成器(RBG)構築に関する推奨事項 |
| Abstract | 要約 |
| The NIST Special Publication (SP) 800-90 series of documents supports the generation of high-quality random bits for cryptographic and non-cryptographic use. SP 800-90A, Recommendation for Random Number Generation Using Deterministic Random Bit Generators, specifies several deterministic random bit generator (DRBG) mechanisms based on cryptographic algorithms. SP 800-90B, Recommendation for the Entropy Sources Used for Random Bit Generation, provides guidelines for the development and validation of entropy sources. This document (SP 800-90C) specifies constructions for the implementation of random bit generators (RBGs) that include DRBG mechanisms as specified in SP 800-90A and that use entropy sources as specified in SP 800-90B. Constructions for four classes of RBGs — namely, RBG1, RBG2, RBG3, and RBGC — are specified in this document. | NIST特別出版物(SP)800-90シリーズ文書は、暗号化および非暗号化用途向けの高品質な乱数ビット生成を支援する。SP 800-90A「決定論的乱数ビット生成器を用いた乱数生成に関する推奨事項」は、暗号アルゴリズムに基づく複数の決定論的乱数ビット生成器(DRBG)メカニズムを規定する。SP 800-90B「乱数ビット生成に使用されるエントロピー源に関する推奨事項」は、エントロピー源の開発および検証に関する指針を提供する。本文書(SP 800-90C)は、SP 800-90Aで規定されたDRBGメカニズムを含み、SP 800-90Bで規定されたエントロピー源を使用する乱数ビット生成器(RBG)の実装構造を規定する。本文書では、4つのクラス(RBG1、RBG2、RBG3、RBGC)のRBGの構成を規定する。 |
留意点...
| Note to Readers | 読者の注意 |
| 1. SP 800-90Ar1 requires a nonce to be used during DRBG instantiation that is either 1) a value with at least (security_strength/2) bits of entropy or 2) a value that is expected to repeat no more often than a (security_strength/2)-bit random string would be expected to repeat. However, SP 800-90C requires security_strength/2 bits of randomness to be obtained from a randomness source in place of a nonce in addition to the randomness required to establish a DRBG's security strength. Legacy implementations of DRBGs may continue to use a nonce in accordance with the Implementation Guidance for FIPS 140-3 and the Cryptographic Module Validation Program [FIPS_140IG]. | 1. SP 800-90Ar1は、DRBGインスタンス化時にノンスを使用することを要求している。そのノンスは、1) 少なくとも(security_strength/2)ビットのエントロピーを持つ値、または2) (security_strength/2)ビットのランダム文字列が繰り返されると予想される頻度よりも繰り返されないと予想される値でなければならない。しかし、SP 800-90Cでは、DRBGのセキュリティ強度を確立するために必要な乱数に加え、ノンスの代わりに乱数源からsecurity_strength/2ビットの乱数を得ることを要求している。DRBGのレガシー実装は、FIPS 140-3および暗号モジュール検証プログラムのための実装ガイダンス [FIPS_140IG]に従いノンスを継続使用できる。 |
| 2. SP 800-90Ar1 specified an optional request for prediction resistance when invoking the generation of pseudorandom bits by a DRBG (i.e., prediction resistance and generation could be accomplished in a single request). Instead, SP 800-90C requires two separate requests: a reseed request followed by a generate request. Legacy implementations of DRBGs may continue to request generation and prediction resistance in a single request in accordance with [FIPS_140IG]. | 2. SP 800-90Ar1は、DRBGによる擬似乱数ビット生成を呼び出す際の予測抵抗性に対するオプション要求を規定していた(すなわち、予測抵抗性と生成を単一要求で達成可能)。これに対しSP 800-90Cでは、再シード要求と生成要求という2つの別個要求を必要とする。DRBGのレガシー実装は、[FIPS_140IG]に従い、単一リクエストで生成と予測抵抗性を要求し続けることができる。 |
| 3. SP 800-90Ar1 will be revised as SP 800-90Ar2 to address inconsistencies with SP 800-90C. | 3. SP 800-90Ar1は、SP 800-90Cとの不整合を解消するため、SP 800-90Ar2として改訂される。 |
| 4. Notices of additional material (e.g., additional vetted conditioning functions) may be posted at [SP800_90WebSite]. | 4. 追加資料(例:追加審査済みコンディショニング関数)の通知は[SP800_90WebSite]に掲載される場合がある。 |
| 5. Other random bit generation standards of interest include [AIS20], [AIS31], [BSIFunc], and [ISO_18031]. | 5. その他の関連する乱数生成規格には[AIS20]、[AIS31]、[BSIFunc]、[ISO_18031]がある。 |
・[PDF] NIST.SP.800-90C
目次...
| 1. Introduction and Purpose | 1. はじめにおよび目的 |
| 1.1. Audience | 1.1. 対象読者 |
| 1.2. Document Organization | 1.2. 文書の構成 |
| 2. General Information | 2. 一般的な情報 |
| 2.1. RBG Security | 2.1. RBGのセキュリティ |
| 2.2. RBG Constructions | 2.2. RBGの構成 |
| 2.3. Sources of Randomness for an RBG | 2.3. RBGの乱数源 |
| 2.4. Deterministic Random Bit Generators (DRBGs) | 2.4. 決定論的乱数ビット生成器(DRBG) |
| 2.4.1. DRBG Instantiations | 2.4.1. DRBGの具体例 |
| 2.4.2. Reseeding, Prediction Resistance, and Compromise Recovery | 2.4.2. 再シード、予測抵抗性、および侵害回復 |
| 2.5. RBG Security Boundaries | 2.5. RBGのセキュリティ境界 |
| 2.6. Assumptions and Assertions | 2.6. 仮定と主張 |
| 2.7. General Implementation and Use Requirements and Recommendations | 2.7. 一般的な実装および使用要件と推奨事項 |
| 2.8. General Function Calls | 2.8. 一般的な関数呼び出し |
| 2.8.1. DRBG Functions | 2.8.1. DRBG関数 |
| 2.8.1.1. DRBG Instantiation | 2.8.1.1. DRBGインスタンス化 |
| 2.8.1.2. DRBG Generation Request | 2.8.1.2. DRBG生成要求 |
| 2.8.1.3. DRBG Reseed | 2.8.1.3. DRBGの再シード |
| 2.8.1.4. Get_randomness_source_input Call | 2.8.1.4. Get_randomness_source_input呼び出し |
| 2.8.2. Interfacing With Entropy Sources | 2.8.2. エントロピーソースとのインターフェース |
| 2.8.3. Interfacing With an RBG3 Construction | 2.8.3. RBG3構造とのインターフェース |
| 2.8.3.1. Instantiating a DRBG Within an RBG3 Construction | 2.8.3.1. RBG3構造内でのDRBGのインスタンス化 |
| 2.8.3.2. Generation Using an RBG3 Construction | 2.8.3.2. RBG3構造を用いた生成 |
| 3. Accessing Entropy Source Output | 3. エントロピーソース出力へのアクセス |
| 3.1. Get_entropy_bitstring Process | 3.1. Get_entropy_bitstring プロセス |
| 3.2. External Conditioning | 3.2. 外部調整 |
| 3.2.1.1. Keys Used in External Conditioning Functions | 3.2.1.1. 外部調整関数で使用される鍵 |
| 3.2.1.2. Hash Function-Based Conditioning Functions | 3.2.1.2. ハッシュ関数ベースの調整関数 |
| 3.2.1.3. Block Cipher-Based Conditioning Functions | 3.2.1.3. ブロック暗号ベースの調整関数 |
| 3.2.2. Using a Vetted Conditioning Function | 3.2.2. 検証済み調整関数の使用 |
| 3.2.2.1. External Conditioning When Full Entropy is Not Required | 3.2.2.1. 完全なエントロピーが不要な場合の外部コンディショニング |
| 3.2.2.2. Conditioning Function to Obtain Full-Entropy Bitstrings | 3.2.2.2. 完全なエントロピーを持つビット列を得るためのコンディショニング関数 |
| 4. RBG1 Construction Based on RBGs With Physical Entropy Sources | 4. 物理的エントロピー源を持つRBGに基づくRBG1構造 |
| 4.1. Conceptual Interfaces | 4.1. 概念的インターフェース |
| 4.1.1. Instantiating the DRBG in the RBG1 Construction | 4.1.1. RBG1構造におけるDRBGのインスタンス化 |
| 4.1.2. Requesting Pseudorandom Bits | 4.1.2. 擬似乱数ビットの要求 |
| 4.2. Using an RBG1 Construction With Subordinate DRBGs (Sub-DRBGs) | 4.2. 従属DRBG(Sub-DRBG)を用いたRBG1構築の使用 |
| 4.2.1. Instantiating a Sub-DRBG | 4.2.1. Sub-DRBGのインスタンス化 |
| 4.2.2. Requesting Random Bits From a Sub-DRBG | 4.2.2. Sub-DRBGからの乱数ビット要求 |
| 4.3. Requirements | 4.3. 要件 |
| 4.3.1. RBG1 Construction Requirements | 4.3.1. RBG1構築の要件 |
| 4.3.2. Sub-DRBG Requirements | 4.3.2. サブDRBGの要件 |
| 5. RBG2 Constructions Based on Physical and/or Non-Physical Entropy Sources | 5. 物理的および/または非物理的エントロピー源に基づくRBG2構成 |
| 5.1. RBG2 Description | 5.1. RBG2の説明 |
| 5.2. Conceptual Interfaces | 5.2. 概念的インターフェース |
| 5.2.1. RBG2 Instantiation | 5.2.1. RBG2のインスタンス化 |
| 5.2.2. Requesting Pseudorandom Bits From an RBG2 Construction | 5.2.2. RBG2構成からの擬似乱数ビットの要求 |
| 5.2.3. Reseeding an RBG2 Construction | 5.2.3. RBG2構成の再シード |
| 5.3. RBG2 Construction Requirements | 5.3. RBG2 構築要件 |
| 6. RBG3 Constructions Based on the Use of Physical Entropy Sources | 6. 物理的エントロピー源の使用に基づく RBG3 構築 |
| 6.1. RBG3 Description | 6.1. RBG3 の説明 |
| 6.2. RBG3 Construction Types and Their Variants | 6.2. RBG3 構築タイプとその変種 |
| 6.3. General Requirements | 6.3. 一般的な要件 |
| 6.4. RBG3(XOR) Construction | 6.4. RBG3(XOR) 構築 |
| 6.4.1. Conceptual Interfaces | 6.4.1. 概念的インターフェース |
| 6.4.1.1. Instantiation of the DRBG | 6.4.1.1. DRBG のインスタンス化 |
| 6.4.1.2. Random Bit Generation Using the RBG3(XOR) Construction | 6.4.1.2. RBG3(XOR) 構成を用いたランダムビット生成 |
| 6.4.1.3. Pseudorandom Bit Generation Using a Directly Accessible DRBG | 6.4.1.3. 直接アクセス可能な DRBG を用いた擬似ランダムビット生成 |
| 6.4.1.4. Reseeding the DRBG Instantiation | 6.4.1.4. DRBG インスタンスの再シード |
| 6.4.2. RBG3(XOR) Requirements | 6.4.2. RBG3(XOR) の要件 |
| 6.5. RBG3(RS) Construction | 6.5. RBG3(RS) 構成 |
| 6.5.1. Conceptual Interfaces | 6.5.1. 概念的インターフェース |
| 6.5.1.1. Instantiation of the DRBG Within an RBG3(RS) Construction | 6.5.1.1. RBG3(RS) 構成内での DRBG のインスタンス化 |
| 6.5.1.2. Random and Pseudorandom Bit Generation | 6.5.1.2. 乱数および擬似乱数ビット生成 |
| 6.5.1.3. Random Bit Generation Using a Directly Accessible DRBG | 6.5.1.3. 直接アクセス可能な DRBG を使用した乱数ビット生成 |
| 6.5.1.4. Reseeding | 6.5.1.4. 種子の再設定 |
| 6.5.2. Requirements for an RBG3(RS) Construction | 6.5.2. RBG3(RS) 構成の要件 |
| 7. RBGC Construction for DRBG Trees | 7. DRBGツリーのためのRBGC構築 |
| 7.1. RBGC Description | 7.1. RBGCの説明 |
| 7.1.1. RBGC Environment | 7.1.1. RBGC環境 |
| 7.1.2. Instantiating and Reseeding Strategy | 7.1.2. インスタンス化と再シード戦略 |
| 7.1.2.1. Instantiating and Reseeding the Root RBGC Construction | 7.1.2.1. ルートRBGC構築のインスタンス化と再シード |
| 7.1.2.2. Instantiating and Reseeding a Non-Root RBGC Construction | 7.1.2.2. ルート以外のRBGC構築のインスタンス化と再シード |
| 7.2. Conceptual Interfaces | 7.2. 概念的インターフェース |
| 7.2.1. RBGC Instantiation | 7.2.1. RBGCのインスタンス化 |
| 7.2.1.1. Instantiation of the Root RBGC Construction | 7.2.1.1. ルートRBGC構築のインスタンス化 |
| 7.2.1.2. Instantiating an RBGC Construction Other Than the Root | 7.2.1.2. ルート以外のRBGC構築のインスタンス化 |
| 7.2.2. Requesting the Generation of Pseudorandom Bits From an RBGC Construction | 7.2.2. RBGC構築からの擬似乱数ビット生成要求 |
| 7.2.3. Reseeding an RBGC Construction | 7.2.3. RBGC構築の再シード |
| 7.2.3.1. Reseed of the DRBG in the Root RBGC Construction | 7.2.3.1. ルートRBGC構成におけるDRBGの再シード |
| 7.2.3.2. Reseed of the DRBG in an RBGC Construction Other Than the Root | 7.2.3.2. ルート以外のRBGC構成におけるDRBGの再シード |
| 7.3. RBGC Requirements | 7.3. RBGCの要件 |
| 7.3.1. General RBGC Construction Requirements | 7.3.1. RBGC構成の一般的な要件 |
| 7.3.2. Additional Requirements for the Root RBGC Construction | 7.3.2. ルートRBGC構成に対する追加要件 |
| 7.3.3. Additional Requirements for an RBGC Construction That is Not the Root of a DRBG Tree | 7.3.3. DRBGツリーのルートではないRBGC構成に対する追加要件 |
| 8. Testing | 8. テスト |
| 8.1. Health Testing | 8.1. 健全性テスト |
| 8.1.1. Testing RBG Components | 8.1.1. RBG コンポーネントのテスト |
| 8.1.2. Handling Failures | 8.1.2. 障害の処理 |
| 8.1.2.1. Entropy-Source Failures | 8.1.2.1. エントロピー源の障害 |
| 8.1.2.2. Failures by Non-Entropy-Source Components | 8.1.2.2. 非エントロピー源コンポーネントによる障害 |
| 8.2. Implementation Validation | 8.2. 実装の検証 |
| References | 参考文献 |
| Appendix A. Auxiliary Discussions (Informative) | 附属書 A. 補助的な考察(参考情報) |
| A.1. Entropy vs. Security Strength | A.1. エントロピーとセキュリティ強度 |
| A.1.1. Entropy | A.1.1. エントロピー |
| A.1.2. Security Strength | A.1.2. セキュリティ強度 |
| A.1.3. A Side-by-Side Comparison | A.1.3. 並列比較 |
| A.1.4. Entropy and Security Strength in This Recommendation | A.1.4. 本勧告におけるエントロピーとセキュリティ強度 |
| A.2. Generating Full-Entropy Output Using the RBG3(RS) Construction | A.2. RBG3(RS)構造を用いた完全エントロピー出力の生成 |
| A.3. Additional Considerations for RBGC Constructions | A.3. RBGC構造に関する追加考慮事項 |
| A.3.1. RBGC Tree Composition | A.3.1. RBGCツリー構成 |
| A.3.2. Changes in the Tree Structure | A.3.2. ツリー構造の変更 |
| A.3.3. Using Virtual Machines | A.3.3. 仮想マシンの使用 |
| A.3.4. Reseeding From an Alternative Randomness Source | A.3.4. 代替乱数源からの再シード |
| Appendix B. RBG Examples (Informative) | 附属書B. RBGの例(参考情報) |
| B.1. Direct DRBG Access in an RBG3 Construction | B.1. RBG3構成における直接DRBGアクセス |
| B.2. Example of an RBG1 Construction | B.2. RBG1構成の例 |
| B.2.1. Instantiation of the RBG1 Construction | B.2.1. RBG1構築の実体化 |
| B.2.2. Generation by the RBG1 Construction | B.2.2. RBG1構築による生成 |
| B.3. Example Using Sub-DRBGs Based on an RBG1 Construction | B.3. RBG1構築に基づくサブDRBGを用いた例 |
| B.3.1. Instantiation of the Sub-DRBGs | B.3.1. サブDRBGの実体化 |
| B.3.1.1. Instantiating Sub-DRBG1 | B.3.1.1. サブDRBG1の実体化 |
| B.3.1.2. Instantiating Sub-DRBG2 | B.3.1.2. サブDRBG2の実体化 |
| B.3.2. Pseudorandom Bit Generation by Sub-DRBGs | B.3.2. サブDRBGによる擬似乱数ビット生成 |
| B.4. Example of an RBG2(P) Construction | B.4. RBG2(P)構成の例 |
| B.4.1. Instantiation of an RBG2(P) Construction | B.4.1. RBG2(P)構成の具体化 |
| B.4.2. Generation Using an RBG2(P) Construction | B.4.2. RBG2(P)構成を用いた生成 |
| B.4.3. Reseeding an RBG2(P) Construction | B.4.3. RBG2(P)構成の再シード |
| B.5. Example of an RBG3(XOR) Construction | B.5. RBG3(XOR) 構成の例 |
| B.5.1. Instantiation of an RBG3(XOR) Construction | B.5.1. RBG3(XOR) 構成のインスタンス化 |
| B.5.2. Generation by an RBG3(XOR) Construction | B.5.2. RBG3(XOR) 構成による生成 |
| B.5.2.1. Generation | B.5.2.1. 生成 |
| B.5.2.2. Get_conditioned_full_entropy_input Function | B.5.2.2. Get_conditioned_full_entropy_input 関数 |
| B.5.3. Reseeding an RBG3(XOR) Construction | B.5.3. RBG3(XOR) 構築の再シード |
| B.6. Example of an RBG3(RS) Construction | B.6. RBG3(RS) 構築の例 |
| B.6.1. Instantiation of an RBG3(RS) Construction | B.6.1. RBG3(RS) 構築のインスタンス化 |
| B.6.2. Generation by an RBG3(RS) Construction | B.6.2. RBG3(RS) 構築による生成 |
| B.6.3. Generation by the Directly Accessible DRBG | B.6.3. 直接アクセス可能な DRBG による生成 |
| B.6.4. Reseeding a DRBG | B.6.4. DRBGの再シード |
| B.7. DRBG Tree Using the RBGC Construction | B.7. RBGC構築を用いたDRBGツリー |
| B.7.1. Instantiation of the RBGC Constructions | B.7.1. RBGC構築の実体化 |
| B.7.1.1. Instantiation of the Root RBGC Construction | B.7.1.1. ルートRBGC構築の実体化 |
| B.7.1.2. Instantiation of a Child RBGC Construction (RBGC2) | B.7.1.2. 子RBGC構築(RBGC2)の実体化 |
| B.7.2. Requesting the Generation of Pseudorandom Bits | B.7.2. 擬似乱数ビットの生成要求 |
| B.7.3. Reseeding an RBGC Construction | B.7.3. RBGC構築の再シード |
| B.7.3.1. Reseeding the Root RBGC Construction | B.7.3.1. ルートRBGC構築の再シード |
| B.7.3.2. Reseeding a Child RBGC Construction | B.7.3.2. 子RBGC構築の再シード |
| Appendix C. List of Abbreviations, Acronyms, and Symbols | 附属書C. 略語、頭字語、記号の一覧 |
| C.1. List of Abbreviations and Acronyms | C.1. 略語と頭字語の一覧 |
| C.2. List of Symbols | C.2. 記号の一覧 |
| Appendix D. Glossary | 附属書D. 用語集 |
● まるちゃんの情報セキュリティ気まぐれ日記
・2025.09.24 米国 NIST SP 800-90A Rev. 2 (初期ドラフト) 事前ドラフト コメント募集: 決定論的乱数ビット生成器を用いた乱数生成に関する推奨事項
・2024.10.07 米国 NIST IR 8446 (初公開ドラフト) 乱数生成に関する標準間のギャップを埋める: SP 800-90 シリーズと AIS 20/31 の比較 (2024.09.16)
・2024.07.17 米国 NIST SP 800-90C(第4次公開ドラフト)ランダムビット生成器(RBG)の構造に関する推奨事項 (2024.07.03)
・2022.09.10 NIST SP 800-90C(ドラフト)ランダムビット生成器(RBG)の構成に関する推奨事項(第3ドラフト)とNISTIR 8427 (ドラフト) SP 800 90 シリーズの完全エントロピーの仮定に関する考察
« 米国 FBI FBIのIC3ウェブサイトを詐称する脅威者が悪意のある活動を行う可能性についての注意喚起 (2025.09.19) | Main | 米国 NIST SP 800-88 Rev. 2 媒体サニタイズ・ガイドライン (2025.09.26) »

Comments