当前位置: 代码迷 >> 综合 >> 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章的算法流程,通过核对相应标识执行相关操作。
  相关解决方案