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

摘要:本文档对随机数发生器文档NIST SP 800-90系列(包括NIST SP 800-90Ar1、SP 800-90B、SP 800-90C)进行简要分析记录。

 

关键词:密码模块,随机数发生器,密码算法,工作模式,CTR,杂凑算法,HMAC,熵,密码边界。

NIST SP 800-90系列包括

  1. NIST SP 800-90Ar1 Recommendation for Random Number Generation Using Deterministic Random Bit Generators
  2. NIST SP 800-90B Recommendation for the Entropy Sources Used for Random Bit Generation
  3. NIST SP 800-90C Recommendation for Random Bit Generator (RBG) Constructions

7. Functional Model of a DRBG

DRBG 模型如图1。

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

图1 DRBG Functional Model

模块的输入参数

  1. Entropy Input
    1. Instantiate和generate时的输入.
    2. 应视为关键安全参数。
    3. 从本密码模块内获得,或从另一个密码模块获得(但数据传输需经过安全通道)
  2. Nonce:DRBG
    1. 实例化时可选输入.
    2. 应具有唯一性,
    3. 无需保密
    4. 应视为关键安全参数
    5. 在密码模块边界内生成(不能出密码模块)
  3. Personalization string:.
    1. 实例化时的可选参数(即可为空串),
    2. 确保唯一性
    3. 从密码模块内部或密码模块外部获取
  4. Additional input:reseed和输出随机比特时的可选输入
    1. reseed和generate时的可选参数(即可为空串),
    2. 从密码模块内部或密码模块外部获取

模块的五个函数

  1. Instantiate function: DRBG实例化。输入entropy input、nonce、personalization string创建seed,seed创建DRBG内部状态。
  2. generate function 生成随机比特,利用输入的additional input 和当前状态生成所需的随机比特,同时更新内部状态。
  3. reseed function重新设定DRBG内部状态。输入新的entropy input、additional input,并与当前内部状态一起生成新的seed,再由seed创建新的内部状态。
  4. uninstantiate function反初始化,清除内部状态。

health test function:测试DRBG正确性。