使用Hash函數和MAC產生偽隨機數


基於Hash函數的PRNG

  流程非常類似於對稱密碼的CTR工作模式

  

  算法的偽碼如下

    m = ⌈n/outlen⌉

    data = V

    W = the null String

    for i = 1 to m

      wi = H(data)

      W = W || wi

      data = (data + 1) mod 2seedlen

    return leftmost n bits of W

  說明:

    V是種子,seedlen為V的長度,n是需要的輸出位數,H是Hash函數

  對於諸如SHA-2等強密碼學Hash算法,目前還沒有發現基於Hash方案的PRNG的已知或可疑缺陷。SP800-90標准對V提供了周期性地更新。

 

基於MAC的PRNG

  基於MAC的PRNG幾乎都是HMAC構造的。與基於Hash的方案相比,其劣勢是執行時間會增大一倍,因為HMAC對於每個輸出塊都要執行兩次Hash函數運算。但是HMAC方案的優勢是可以提供更高的安全性。

  

 

  對基於MAC的方案,需要兩個輸入:密鑰K和種子V,對於每個輸出分組的密鑰都是相同的,而每個分組的輸入數據都等於前一分組的MAC值。為了增加安全性,SP800-90標准提供了對K和V的周期性更新。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM