zoukankan      html  css  js  c++  java
  • 使用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的周期性更新。

  • 相关阅读:
    让PHP更快的提供文件下载
    thinkphp5接入QQ第三方登录
    tp5隐藏index.php
    thinkphp5 表达式
    后台无限级分类添加的实现方式
    PHP系统左侧菜单栏的管理与实现
    mongoDB基本命令
    Java基础-反射和注解
    Java基础-多线程
    Java基础-网络编程
  • 原文地址:https://www.cnblogs.com/block2016/p/5635522.html
Copyright © 2011-2022 走看看