NIST SP 800-90C(ドラフト)ランダムビット生成器(RBG)の構成に関する推奨事項(第3ドラフト)とNISTIR 8427 (ドラフト) SP 800 90 シリーズの完全エントロピーの仮定に関する考察
こんにちは、丸山満彦です。
NISTが、SP 800-90C(ドラフト)「ランダムビット生成器(RBG)の構成に関する推奨事項(第3ドラフト)」とNISTIR 8427 (ドラフト) 「SP 800 90 シリーズの完全エントロピーの仮定に関する考察」を公表し、意見を募集していますね。。。
● NIST - ITL
・2022.09.07 SP 800-90C (Draft) Recommendation for Random Bit Generator (RBG) Constructions (3rd Draft)
SP 800-90C (Draft) Recommendation for Random Bit Generator (RBG) Constructions (3rd Draft) | SP 800-90C(ドラフト)ランダムビット生成器(RBG)の構成に関する推奨事項(第3ドラフト) |
Announcement | 発表内容 |
The NIST SP 800-90 series of documents supports the generation of high-quality random bits for cryptographic and non-cryptographic use. SP 800-90A specifies several deterministic random bit generator (DRBG) mechanisms based on cryptographic algorithms. SP 800-90B provides guidance for the development and validation of entropy sources. 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. | NIST SP 800-90 シリーズは、暗号および非暗号用の高品質なランダムビットの生成をサポートする文書である。 SP 800-90Aは、暗号アルゴリズムに基づくいくつかの決定論的ランダムビット生成器(DRBG)機構を規定している。SP 800-90Bは、エントロピー源の開発および検証のためのガイダンスを提供する。SP 800-90Cは、SP 800-90Aで規定されたDRBGメカニズムを含み、SP 800-90Bで規定されたエントロピー源を使用するランダムビット生成器(RBG)の実装のための構造を規定する。 |
This draft includes constructions for three classes of RBGs: | このドラフトには、3つのクラスのRBGの構成が含まれている。 |
An RBG1 construction provides random bits from a device that is initialized from an external RBG. | RBG1の構成は、外部RBGから初期化されたデバイスからランダムビットを提供する。 |
An RBG2 construction includes an entropy source that is available on demand. | RBG2の構成は、オンデマンドで利用可能なエントロピー源を含む。 |
An RBG3 construction includes an entropy source that is continuously accessed to provide output with full entropy. | RBG3の構成は、完全なエントロピーの出力を提供するために継続的にアクセスされるエントロピー源を含む。 |
SP 800-90C includes a note to readers, guidance for accessing and handling the entropy sources in SP 800-90B, specifications for the initialization and use of the three RBG constructions that incorporate the DRBGs from SP 800-90A, and guidance on health testing and implementation validation using NIST's Cryptographic Algorithm Validation Program (CAVP) and the Cryptographic Module Validation Program (CMVP) that is jointly operated by NIST and the Canadian Centre for Cyber Security (CCCS). | SP 800-90Cには、読者への注意事項、SP 800-90Bのエントロピー源へのアクセスと取り扱いの指針、SP 800-90AのDRBGを組み込んだ3つのRBG構造の初期化と使用の仕様、NISTの暗号アルゴリズム検証プログラム(CAVP)とNISTとカナダ・サイバーセキュリティセンター(CCCS)が共同で運営している暗号モジュール検証プログラム(CMVP)による健康テストと実装検証の指針が含まれている。 |
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 specifies several deterministic random bit generator (DRBG) mechanisms based on cryptographic algorithms. SP 800-90B provides guidance 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 three classes of RBGs (namely, RBG1, RBG2, and RBG3) are specified in this document. | NIST Special Publication (SP) 800-90シリーズは、暗号および非暗号用の高品質なランダムビットの生成をサポートする文書である。SP 800-90Aは、暗号アルゴリズムに基づくいくつかの決定論的ランダムビット生成器(DRBG)機構を規定している。SP 800-90Bは、エントロピー源の開発および検証のためのガイダンスを提供する。本文書(SP 800-90C)は、SP 800-90Aで規定されたDRBGメカニズムを含み、SP 800-90Bで規定されたエントロピー源を使用するランダムビット生成器(RBG)の実装のための構造を規定するものである。本文書では、3つのクラスのRBG(すなわち、RBG1、RBG2、およびRBG3)に対する構成が規定されている。 |
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. DRBGs | 2.4. DRBG |
2.4.1. DRBG Instantiations | 2.4.1. DRBGのインスタンス化 |
2.4.2. DRBG Reseeding, Prediction Resistance, and Recovery from Compromise | 2.4.2. DRBGの再定義、予測耐性、および妥協からの回復 |
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.2. Interfacing with Entropy Sources Using the GetEntropy and Get_ES_Bitstring Functions | 2.8.2. GetEntropyおよびGet_ES_Bitstring関数を使用したエントロピー源とのインターフェイス |
2.8.3. Interfacing with an RBG3 Construction | 2.8.3. RBG3構築とのインターフェイス |
3. Accessing Entropy Source Output | 3. エントロピー源の出力へのアクセス |
3.1. The Get_ES_Bitstring Function | 3.1. Get_ES_Bitstring関数 |
3.2. Entropy Source Requirements | 3.2. エントロピー源の要件 |
3.3. External Conditioning to Obtain Full-Entropy Bitstrings | 3.3. 完全エントロピーのビット列を取得するための外部条件付け |
3.3.1. Conditioning Function Calls | 3.3.1. 条件付けのための関数呼び出し |
3.3.2. Using a Vetted Conditioning Function to Obtain Full-Entropy Bitstrings | 3.3.2. 吟味された状態関数による完全エントロピー・ビット変数の取得 |
4. RBG1 Constructions Based on RBGs with Physical Entropy Sources | 4. 物理エントロピー源を持つRBGに基づくRBG1の構成 |
4.1. RBG1 Description | 4.1. RBG1の説明 |
4.2. Conceptual Interfaces | 4.2. 概念的インターフェイス |
4.2.1. Instantiating the DRBG in the RBG1 Construction | 4.2.1. RBG1構築におけるDRBGのインスタンス化 |
4.2.2. Requesting Pseudorandom Bits | 4.2.2. 疑似ランダムビットの要求 |
4.3. Using an RBG1 Construction with Subordinate DRBGs (Sub-DRBGs) | 4.3. 下位DRBG(Sub-DRBG)を持つRBG1の構成の使用 |
4.3.1. Instantiating a Sub-DRBG | 4.3.1. Sub-DRBGのインスタンス化 |
4.3.2. Requesting Random Bits | 4.3.2. ランダムビットの要求 |
4.4. Requirements | 4.4. 要求事項 |
4.4.1. RBG1 Requirements | 4.4.1. RBG1 の要件 |
4.4.2. Sub-DRBG Requirements | 4.4.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構築のReseeding |
5.3. RBG2 Requirements | 5.3. RBG2 の要件 |
6. RBG3 Constructions Based on Physical Entropy Sources | 6. 物理エントロピー源に基づくRBG3の構成 |
6.1. General Requirements | 6.1. 一般要件 |
6.2. RBG3(XOR) Construction | 6.2. RBG3(XOR)構成 |
6.2.1. Conceptual Interfaces | 6.2.1. 概念的なインターフェイス |
6.2.2. RBG3(XOR) Requirements | 6.2.2. RBG3(XOR)の要件 |
6.3. RBG3(RS) Construction | 6.3. RBG3(RS)の構成 |
6.3.1. Conceptual Interfaces | 6.3.1. 概念的インターフェイス |
6.3.2. Requirements for a RBG3(S) Construction | 6.3.2. RBG3の構成のための要件 |
7. Testing | 7. テスト |
7.1. Health Testing | 7.1. 健康テスト |
7.1.1. Testing RBG Components | 7.1.1. RBGコンポーネントのテスト |
7.1.2. Handling Failures | 7.1.2. 不具合への対応 |
7.2. Implementation Validation | 7.2. 実装の検証 |
References | 参考文献 |
Appendix A Entropy vs. Security Strength (Informative) | 附属書A エントロピーとセキュリティ強度の比較 (参考) |
A.1. Entropy | A.1. エントロピー |
A.2. Security Strength | A.2. セキュリティ強度 |
A.3. A Side-by-Side Comparison | A.3. サイドバイサイドの比較 |
A.4. Entropy and Security Strength in this Recommendation | A.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. Sub-DRBGのインスタンス化 |
B.3.1.1. Instantiating Sub-DRBG1 | B.3.1.1. Sub-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による疑似ランダムビット生成 |
レビュー上の留意事項
Note to Reviewers | 査読者への留意事項 |
1. This draft of SP800-90C describes three RBG constructions. Note that in this draft, a nondeterministic random bit generator (NRBG) is presented as an RBG3 construction. | 1. このSP800-90Cドラフトは、3つのRBGの構成について記述している。なお、この草案では、非決定性ランダムビット発生器(NRBG)は、RBG3の構成として示されている。 |
Question: In a future revision of SP 800-90C, should other constructions be included? | 質問 SP 800-90Cの将来の改訂において、他の構成も含めるべきか。 |
This version of SP 800-90C does not address the use of an RBG software implementation in which a) a cryptographic library or an application is loaded into a system and b) the software accesses entropy sources or RBGs already associated with the system for its required randomness. NIST intends to address this situation in the near future. | SP 800-90Cの本バージョンでは、a) 暗号ライブラリまたはアプリケーションがシステムにロードされ、b) ソフトウェアがその必要なランダム性のためにシステムに既に関連付けられたエントロピー源またはRBGにアクセスするRBGソフトウェア実装の使用については対処していない。NISTは近い将来、この状況に対処する予定である。 |
2. The RBG constructions provided in this draft use NIST-approved cryptographic primitives (such as block ciphers and hash functions) as underlying components. Note that non-vetted conditioning components may be used within SP 800-90B entropy sources. | 2. 本ドラフトで提供するRBGの構成は、NISTが承認した暗号プリミティブ(ブロック暗号やハッシュ関数など)を基本コンポーネントとして使用している。SP 800-90Bのエントロピー源では、認証されていない条件付けの構成要素が使用される可能性があることに注意すること。 |
Although NIST still allows three-key TDEA as a block-cipher algorithm, Section 4 of [SP800131A] indicates that its use is deprecated through 2023 and will be disallowed thereafter for applying cryptographic protection. This document (i.e., SP 800-90C) does not approve the use of three-key TDEA in an RBG. | NISTはブロック暗号アルゴリズムとして3鍵TDEAをまだ許可しているが、[SP800131A]のセクション4は、その使用が2023年まで非推奨であり、それ以降は暗号保護の適用に不許可となることを示すものである。本文書(すなわち、SP 800-90C)は、RBGにおける3鍵TDEAの使用を承認していない。 |
Although SHA-1 is still approved by NIST, NIST is planning to remove SHA-1 from a future revision of FIPS 180-4, so the SP 800-90 series will not be including the use of SHA-1. | SHA-1はまだNISTによって承認されているが、NISTはFIPS 180-4の将来の改訂からSHA-1を削除することを計画しているため、SP 800-90シリーズではSHA-1の使用を含めない予定である。 |
The use of the SHA-3 hash functions are approved in SP 800-90C for Hash_DRBG and HMAC_DRBG but are not currently included in [SP800-90A]. SP 800-90A will be revised to exclude the use of TDEA and SHA-1 and include the use of the SHA-3 family of hash functions. | SHA-3ハッシュ関数の使用は、SP800-90CではHash_DRBGとHMAC_DRBGで承認されているが、現在[SP800-90A]には含まれていない。SP 800-90Aは、TDEAとSHA-1の使用を除外し、ハッシュ関数のSHA-3ファミリーの使用を含むように改訂される予定である。 |
3. Since the projected date for requiring a minimum security strength of 128 bits for U.S. Government applications is 2030 (see [SP800-57Part1]), RBGs are only specified to provide 128, 192, and 256 bits of security strength (i.e., the 112-bit security strength has been removed). Note that a consuming application may still request a lower security strength, but the RBG output will be generated at the instantiated security strength. | 3. 米国政府のアプリケーションに128ビットの最小セキュリティ強度を要求する予定日は2030年であるため([SP800-57Part1]を参照)、RBGは128、192、256ビットのセキュリティ強度のみを提供するように規定される(すなわち、112ビットのセキュリティ強度は削除された)。消費者アプリケーションはより低いセキュリティ強度を要求することができるが、RBG出力はインスタンス化されたセキュリティ強度で生成されることに注意すること。 |
4. Guidance is provided for accessing entropy sources and for obtaining full-entropy bits using the output of an entropy source that does not inherently provide full-entropy output (see Section 3.3). | 4. エントロピー源へのアクセス、および本来完全エントロピー出力を提供しないエントロピー源の出力を使用して完全エントロピー・ビットを取得するためのガイダンスが提供される (セクション3.3参照)。 |
5. SP 800-90A requires that when instantiating a CTR_DRBG without a derivation function, the randomness source needs to provide full-entropy bits (see SP 800-90A). However, this draft (SP 800-90C) relaxes this requirement in the case of an RBG1 construction, as specified in Section 4. In this case, the external randomness source may be another RBG construction. An addendum to SP 800-90A has been prepared as a temporary specification in SP 800-90C, but SP 800-90A will be revised in the future to accommodate this change. | 5. SP 800-90Aでは、導出関数を持たないCTR_DRBGをインスタンス化する場合、乱数源は完全エントロピー・ビットを提供する必要があると規定している(SP 800-90Aを参照)。しかし、この草案 (SP 800-90C) では、セクション 4 で規定されているように、RBG1 構築の場合にこの要求が緩和される。この場合、外部の乱数源は他のRBGの構成であってもよい。SP 800-90Cの暫定仕様として、SP 800-90Aの補遺が作成されたが、SP 800-90Aはこの変更に対応するため、将来的に改訂される予定である。 |
6. The DRBG used in RBG3 constructions supports a security strength of 256 bits. The RBG1 and RBG2 constructions may support any valid security strength (i.e., 128, 192 or 256 bits). | 6. RBG3の構成で使用されるDRBGは、256ビットのセキュリティ強度をサポートしている。RBG1およびRBG2の構成は、任意の有効なセキュリティ強度(すなわち、128、192または256ビット)をサポートすることができる。 |
7. SP 800-90A currently allows the acquisition of a nonce (when required) for DRBG instantiation from any randomness source. However, SP 800-90C does not include an explicit requirement for the generation of a nonce when instantiating a DRBG. Instead, additional bits beyond those needed for the security strength are acquired from the randomness source. SP 800-90A will be revised to agree with this change. | 7. 7. SP 800-90Aでは、DRBGインスタンス化のためのnonce(必要な場合)を任意の乱数源から取得することが可能である。しかし、SP 800-90Cでは、DRBGのインスタンス化の際にnonceを生成する明確な要件は含まれていない。その代わり、セキュリティ強度に必要なビット以外の追加ビットを乱数源から取得する。この変更に伴い、SP 800-90Aも改訂される予定である。 |
8. SP 800-90C allows the use of both physical and non-physical entropy sources. See the definitions of physical and non-physical entropy sources in Appendix E. Also, multiple validated entropy sources may be used to provide entropy, and two methods are provided in Section 2.3 for counting the entropy provided in a bitstring. | 8. SP 800-90Cでは、物理的および非物理的なエントロピー源を使用することが認められている。附属書Eの物理的及び非物理的エントロピー源の定義を参照されたい。また、複数の有効なエントロピー源を使用してエントロピーを提供することができ、ビットストリングに提供されるエントロピーをカウントするための2つの方法がセクション2.3で提供されている。 |
9. The CMVP is considering providing information on an entropy source validation certificate that indicates whether an entropy source is physical or non-physical. | 9. CMVPは、エントロピー源検証証明書において、エントロピー源が物理的か非物理的かを示す情報を提供することを検討している。 |
10. The CMVP is developing a program to validate entropy sources against SP 800-90B with the intent of allowing the re-use of those entropy sources in different RBG implementations. | 10. CMVPは、異なるRBG実装におけるエントロピー源の再利用を可能にすることを意図して、SP 800-90Bに対してエントロピー源を検証するプログラムを開発中である。 |
Question: Are there any issues that still need to be addressed in SP 800-90C to allow the reuse of validated entropy sources in different RBG implementations? Note that in many cases, specific issues need to be addressed in the FIPS 140 implementation guide rather than in this document. | 質問 異なる RBG 実装において検証されたエントロピー源の再利用を可能にするために、SP 800-90C においてまだ対処する必要がある問題はあるか?多くの場合、特定の問題は本文書ではなく、FIPS 140実装ガイドで対処される必要があることに留意されたい。 |
Other Parts of this Publication:
・2022.09.07 NISTIR 8427 (Draft) Discussion on the Full Entropy Assumption of the SP 800 90 Series
NISTIR 8427 (Draft) Discussion on the Full Entropy Assumption of the SP 800 90 Series | NISTIR 8427 (ドラフト) SP 800 90 シリーズの完全エントロピーの仮定に関する考察 |
Announcement | 発表 |
The NIST SP 800-90 series supports the generation of high-quality random bits for cryptographic and non-cryptographic use. The security of a random number generator depends on the unpredictability of its outputs, which can be measured in terms of entropy. The NIST SP 800-90 series uses min-entropy to measure entropy. A full-entropy bitstring has an amount of entropy equal to its length. Full-entropy bitstrings are important for cryptographic applications, as these bitstrings have ideal randomness properties and may be used for any cryptographic purpose. Due to the difficulty of generating and testing full-entropy bitstrings, the SP 800-90 series assumes that a bitstring has full entropy if the amount of entropy per bit is at least 1 - ε, where ε is at most 2-32. NIST IR 8427 provides a justification for the selection of ε. | NIST SP 800-90シリーズは、暗号および非暗号用の高品質なランダムビットの生成をサポートしている。乱数生成器の安全性は、その出力の予測不可能性に依存し、これはエントロピーの観点から測定することができる。NIST SP 800-90シリーズでは、エントロピーを測定するために最小エントロピーを使用している。フルエントロピーのビット列は、その長さに等しい量のエントロピーを持つ。完全エントロピービット変数は、理想的なランダム性を持ち、あらゆる暗号用途に使用できるため、暗号用途に重要である。完全エントロピービット変数の生成とテストが困難なため、SP 800-90シリーズでは、ビットあたりのエントロピー量が少なくとも1 - ε(εは最大2-32)であれば完全エントロピーであると仮定しています。NIST IR 8427では、εを選択する正当な理由を説明している。 |
Abstract | 概要 |
NIST SP 800-90 series support the generation of high-quality random bits for cryptographic and non-cryptographic use. The security of a random number generator depends on the unpredictability of its outputs, which can be measured in terms of entropy. NIST SP 800-90 series uses min-entropy to measure entropy. A full-entropy bitstring has an amount of entropy equal to its length. Full-entropy bitstrings are important for cryptographic applications, as these bitstrings have ideal randomness properties and may be used for any cryptographic purpose. Due to the difficulty of generating and testing full-entropy bitstrings, SP 800-90 series assume that a bitstring has full entropy if the amount of entropy per bit is at least 1 - ε, where ε is at most 2-32. This report provides a justification for the selection of ε. This is accomplished as follows. The report begins by defining full entropy in terms of a hypothetical distinguishing game. The report then derives two results following from this definition. First, it is shown how output satisfying this definition can be generated using a conditioning function acting on data having a known entropy level. Second, the actual entropy level of output produced by such a process is computed, thereby providing support for the selected value of ε. | NIST SP 800-90シリーズは、暗号および非暗号用の高品質なランダムビットの生成をサポートしています。乱数生成器の安全性は、その出力の予測不可能性に依存し、これはエントロピーの観点から測定することができる。NIST SP 800-90シリーズでは、エントロピーを測定するために最小エントロピーを使用している。完全エントロピーのビット変数は、その長さに等しいエントロピー量を持つ。完全エントロピービット変数は、理想的なランダム性を持ち、あらゆる暗号用途に使用できるため、暗号用途に重要である。SP 800-90シリーズでは、完全エントロピービット変数の生成とテストが困難なため、ビットあたりのエントロピー量が少なくとも1 - ε(εは最大2-32)であればフルエントロピーを有すると仮定している。本報告書では、εの選択の正当性を以下のように示している。 まず、仮想的な区別ゲームの観点から完全エントロピーの定義を行う。 そして、この定義から2つの結果を導き出す。 第一に、既知のエントロピーを持つデータに対して作用する条件付け関数を用いて、この定義を満たす出力が生成されることを示す。 第二に、このようなプロセスによって生成された出力の実際のエントロピーレベルを計算し、それによって選択されたεの値の裏付けを行う。 |
・[PDF] NISTIR 8427 (Draft)
・
Comments