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
种子的最小长度 >= 熵的比特数
详情参见第10章的表.
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
输入熵应视为关键安全参数。
输入熵应从本密码模块内获得,或者从另一个密码模块获得(但数据传输需经过安全通道)。
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可由下面的一个或者多个部件组成:
- 使用获准的随机比特生成器产生;
- 时间戳(应保证每次取值都不相同)
- 单调递增序列号
- 时间戳和单调递增序列号的组合。例如时间戳采用当天日期但不涉及具体时间,而序列号在一天内顺序递增。
种子有生命周期限制,具体的生命周期取决于采用的DRBG算法.
具体实现时需保证种子的生命周期到时,必需reseeded后方可再使用。
略
8.6.10 Entropy Input and Seed Separation
略
8.7 Other Input to the DRBG Mechanism
personalization string是实例化时的可选参数(即可为空串)
personalization string可从密码模块内部或密码模块外部获取
Additional input是reseed和generate时的可选参数(即可为空串)
Additional input可从密码模块内部或密码模块外部获取
8.8 Prediction Resistance and Backtracking Resistance
prediction_resistance_request标识与第9章流程之间的关系:
- 如果选用的算法总是不支持prediction_resistance,则不用考虑prediction resistance的request或flag标识,与之相关的操作都删除。
- 如果选用的算法总是支持prediction_resistance,则不用考虑prediction resistance的request或flag标识,与之相关的操作都执行。
- 如果选用的算法可以支持也可以不支持prediction_resistance,则按照第9章的算法流程,通过核对相应标识执行相关操作。