当前位置: 代码迷 >> 综合 >> NIST SP 800-90Ar1 Recommendation for Random Number Generation ... 分析与摘选之二
  详细解决方案

NIST SP 800-90Ar1 Recommendation for Random Number Generation ... 分析与摘选之二

热度:50   发布时间:2024-01-12 02:00:01.0

8. DRBG Mechanism Concepts and General Requirements

8.2 DRBG Instantiations

Instantiation和Reseed的种子不能相同。

种子有最大生命周期限制,即任一种子下生成的随机比特长度有限制,比如使用SHA256时,一个种子最多只能生成248比特的随机比特。

8.3 Internal States

Instantiation和Reseed的种子不能相同。

种子有最大生命周期限制,即任一种子下生成的随机比特长度有限制,比如使用SHA256时,一个种子最多只能生成248比特的随机比特。

内部状态包括:工作状态(如利用种子派生的信息、generate function调用次数的计数器)和管理信息(如安全强度、抗预测标识等)。

DRBG应支持多个实例,不同的实例使用不同的内部状态。

8.6 Seeds

8.6.3 Entropy Requirements for the Entropy Input

安全强度要求:entropy input>= DRBG instantiation

8.6.4 Seed Length

种子的最小长度 >= 熵的比特数

详情参见第10章的表.

8.6.5 Randomness Source

A DRBG mechanism requires an approved randomness source during instantiation and reseeding, including whenever prediction resistance is requested (see Section 8.8). This input is requested using the Get_entropy_input function introduced in Section 9 and is specified in more detail in [SP 800-90C].

An approved randomness source is an entropy source that conforms to [SP 800-90B], or an RBG that conforms to [SP 800-90C] ? either a DRBG or an NRBG.

8.6.6 Entropy Input and Seed Privacy

输入熵应视为关键安全参数。

输入熵应从本密码模块内获得,或者从另一个密码模块获得(但数据传输需经过安全通道)。

8.6.7 Nonce

The nonce shall be either:

a. A value with at least (security_strength/2) bits of entropy, or

b. A value that is expected to repeat no more often than a (security_strength/2)-bit random string would be expected to repeat.

Nonce应具有唯一性,

Nonce无需保密。

Nonce应视为关键安全参数

Nonce应在密码模块边界内生成(不能出密码模块)

Nonce可由下面的一个或者多个部件组成:

  1. 使用获准的随机比特生成器产生;
  2. 时间戳(应保证每次取值都不相同)
  3. 单调递增序列号
  4. 时间戳和单调递增序列号的组合。例如时间戳采用当天日期但不涉及具体时间,而序列号在一天内顺序递增。

8.6.8 Reseeding

种子有生命周期限制,具体的生命周期取决于采用的DRBG算法.

具体实现时需保证种子的生命周期到时,必需reseeded后方可再使用。

8.6.9 Seed Use

略

8.6.10 Entropy Input and Seed Separation

略

8.7 Other Input to the DRBG Mechanism

8.7.1 Personalization String

personalization string是实例化时的可选参数(即可为空串)

personalization string可从密码模块内部或密码模块外部获取

8.7.2 Additional Input

Additional input是reseed和generate时的可选参数(即可为空串)

Additional input可从密码模块内部或密码模块外部获取

8.8 Prediction Resistance and Backtracking Resistance

prediction_resistance_request标识与第9章流程之间的关系:

  1. 如果选用的算法总是不支持prediction_resistance,则不用考虑prediction resistance的request或flag标识,与之相关的操作都删除。
  2. 如果选用的算法总是支持prediction_resistance,则不用考虑prediction resistance的request或flag标识,与之相关的操作都执行。
  3. 如果选用的算法可以支持也可以不支持prediction_resistance,则按照第9章的算法流程,通过核对相应标识执行相关操作。
  相关解决方案