码迷,mamicode.com
首页 > 系统相关 > 详细

使用Hash函数和MAC产生伪随机数

时间:2016-07-02 17:34:34      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

基于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的周期性更新。

 

使用Hash函数和MAC产生伪随机数

标签:

原文地址:http://www.cnblogs.com/block2016/p/5635522.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!