论文部分内容阅读
随着社会信息技术的高速发展,数据存储与交换变得越来越频繁,人们对数据存储的安全也越来越重视,而随机数的质量在一定程度上决定着加密系统的安全性。本文的目标是要设计并实现一个仅由普通逻辑单元构成的高速数字真随机数发生器,其随机数生成速率要超过100Mbit/s,且最终的输出随机数序列需通过NIST SP800-22随机数测试集的检测。随机数发生器通常由熵源模块和后处理模块两部分组成。熵源模块是利用一些不可预测的物理现象作为随机源,而后处理模块则主要用来降低或者消除输出序列中的偏置和相关性。本文对制约随机数发生器随机数生成速率的原因进行了分析,在此基础上提出了一种提高随机数生成速率的改进结构,它通过对多个独立熵源进行轮流采样,来降低对单一熵源的采样速率,从而提升采样序列的单比特熵值,减弱采样序列间的相关性,进而加快了随机数生成速率。基于此种改进结构,对传统的亚稳态熵源和振荡抖动熵源做出相应改动,并以这两种改进后的熵源作为最终的熵源模块。后处理模块采用异或链电路来降低序列中存在的偏置,并通过DES算法将两种类型熵源产生的随机数进行重新组合。相较于采用单一熵源实现的真随机数发生器,本文的设计使随机数生成速率得到了明显提升,同时由于采用基于非线性运算的DES算法进行后处理,发生器的抗外部攻击能力也得到了提升。为了验证设计的有效性,采用Verilog HDL语言对随机数发生器的各模块进行了功能描述,通过Quartus II软件完成自动综合,使用基于Altera Cyclone IV EP4CEl5F17C8芯片的FPGA开发板进行了板载调试和验证。利用NIST SP800-22随机数测试套件对生成的随机数序列进行了随机性检测,结果显示在不高于300MHz的系统时钟下,该随机数发生器生成的随机数序列均能稳定通过NIST SP800-22测试集的全部检测。此电路一共消耗了1247个逻辑单元,最高输出速率达到299.52Mbit/s。与其它同类型数字真随机数发生器相比,在资源消耗中等的情况下极大的提高了发生器的随机数生成速率。