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系列包括
- NIST SP 800-90Ar1 Recommendation for Random Number Generation Using Deterministic Random Bit Generators
- NIST SP 800-90B Recommendation for the Entropy Sources Used for Random Bit Generation
- NIST SP 800-90C Recommendation for Random Bit Generator (RBG) Constructions
7. Functional Model of a DRBG
DRBG 模型如图1。
图1 DRBG Functional Model
模块的输入参数
-
Entropy Input:
- Instantiate和generate时的输入.
- 应视为关键安全参数。
- 从本密码模块内获得,或从另一个密码模块获得(但数据传输需经过安全通道)
-
Nonce:DRBG
- 实例化时可选输入.
- 应具有唯一性,
- 无需保密
- 应视为关键安全参数
- 在密码模块边界内生成(不能出密码模块)
-
Personalization string:.
- 实例化时的可选参数(即可为空串),
- 确保唯一性
- 从密码模块内部或密码模块外部获取
-
Additional input:reseed和输出随机比特时的可选输入
- reseed和generate时的可选参数(即可为空串),
- 从密码模块内部或密码模块外部获取
模块的五个函数
- Instantiate function: DRBG实例化。输入entropy input、nonce、personalization string创建seed,seed创建DRBG内部状态。
- generate function: 生成随机比特,利用输入的additional input 和当前状态生成所需的随机比特,同时更新内部状态。
- reseed function:重新设定DRBG内部状态。输入新的entropy input、additional input,并与当前内部状态一起生成新的seed,再由seed创建新的内部状态。
- uninstantiate function:反初始化,清除内部状态。
health test function:测试DRBG正确性。