NIST SP 800-90Ar1 Recommendation for Random Number Generation ... 分析與摘選之二
Instantiation和Reseed的種子不能相同。
種子有最大生命週期限制,即任一種子下生成的隨機位元長度有限制,比如使用SHA256時,一個種子最多隻能生成248位元的隨機位元。
Instantiation和Reseed的種子不能相同。
種子有最大生命週期限制,即任一種子下生成的隨機位元長度有限制,比如使用SHA256時,一個種子最多隻能生成248位元的隨機位元。
內部狀態包括:工作狀態(如利用種子派生的資訊、generate function呼叫次數的計數器)和管理資訊(如安全強度、抗預測標識等)。
DRBG應支援多個例項,不同的例項使用不同的內部狀態。
安全強度要求: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.
輸入熵應視為關鍵安全引數。
輸入熵應從本密碼模組內獲得,或者從另一個密碼模組獲得(但資料傳輸需經過安全通道)。
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後方可再使用。
略
略
personalization string是例項化時的可選引數(即可為空串)
personalization string可從密碼模組內部或密碼模組外部獲取
Additional input是reseed和generate時的可選引數(即可為空串)
Additional input可從密碼模組內部或密碼模組外部獲取
prediction_resistance_request標識與第9章流程之間的關係:
- 如果選用的演算法總是不支援prediction_resistance,則不用考慮prediction resistance的request或flag標識,與之相關的操作都刪除。
- 如果選用的演算法總是支援prediction_resistance,則不用考慮prediction resistance的request或flag標識,與之相關的操作都執行。
- 如果選用的演算法可以支援也可以不支援prediction_resistance,則按照第9章的演算法流程,通過核對相應標識執行相關操作。