1. 程式人生 > >NIST SP 800-90Ar1 Recommendation for Random Number Generation ... 分析與摘選之二

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可由下面的一個或者多個部件組成:

  1. 使用獲准的隨機位元生成器產生;
  2. 時間戳(應保證每次取值都不相同)
  3. 單調遞增序列號
  4. 時間戳和單調遞增序列號的組合。例如時間戳採用當天日期但不涉及具體時間,而序列號在一天內順序遞增。

種子有生命週期限制,具體的生命週期取決於採用的DRBG演算法.

具體實現時需保證種子的生命週期到時,必需reseeded後方可再使用。

personalization string是例項化時的可選引數(即可為空串)

personalization string可從密碼模組內部或密碼模組外部獲取

Additional input是reseed和generate時的可選引數(即可為空串)

Additional input可從密碼模組內部或密碼模組外部獲取

prediction_resistance_request標識與第9章流程之間的關係:

  1. 如果選用的演算法總是不支援prediction_resistance,則不用考慮prediction resistance的request或flag標識,與相關的操作都刪除
  2. 如果選用的演算法總是支援prediction_resistance,則不用考慮prediction resistance的request或flag標識,與相關的操作都執行
  3. 如果選用的演算法可以支援也可以不支援prediction_resistance,則按照第9章的演算法流程,通過核對相應標識執行相關操作。