文献翻译|Design of True Random Number Generator Based on Multi-stage Feedback Ring Oscillator(基于多级反馈环形振

基于多级反馈环形振荡器的真随机数发生器设计

摘要

真随机数生成器(trng)在加密系统中起着重要的作用。本文提出了一种在现场可编程门阵列(FPGA)上生成真随机数的新方法,该方法以 多级反馈环形振荡器(MSFRO) 的随机抖动为熵源。在传统环形振荡器的基础上,增加了多级反馈结构,扩大了时钟抖动的范围,提高了时钟采样频率和熵源的随机性。与传统的时钟采样结构不同,我们利用MSFRO产生的时钟抖动信号对FPGA的锁相环(PLL)产生的时钟信号进行采样。对得到的输出值进行异或运算,以减小输出值的偏差,提高其随机性。TRNG在Xilinx Virtex-6 FPGA中实现,硬件资源消耗低,吞吐量高。将熵源分类、硬件资源和吞吐量与现有trng进行了比较。结果表明,拟合成的TRNG只消耗24个lut和2个DFFs。与其他trng相比,该设计硬件资源消耗非常低,吞吐量可达290 Mbps。此TRNG生成的随机位序列通过NIST SP800-22测试和NIST SP80090B测试。

关键词:真随机数发生器、FPGA、多级反馈、频率积累

一、引入

真随机数发生器(TRNG)在许多密码系统中都扮演着重要的角色,包括密码生成、认证协议、密钥生成、随机填充和数字图像加密[1]、[2]。此外,真随机数在数值计算、统计模拟、随机抽样和量子密钥分配等方面也有重要的应用。

TRNG的性能指标包括吞吐量、硬件资源消耗和随机数统计。TRNG严格满足统计要求,具有不可预测性,利用随机物理过程作为熵源产生随机数。熵源包括热噪声、亚稳态[3]、时钟抖动[4]、混沌[5]和磁隧道结(MTJ)[6]、[7]、[8]。

如果原始随机比特流的随机性不好,则需要进行冯·诺伊曼校正或引入哈希函数等后处理操作来提高随机性。

基于FPGA设计的trng的熵源一般是环振荡器、DCM[9]、自定时环(STR)[4]以及触发[3]的设定时间和保持时间的违反所引起的亚稳定。

TRNGs利用RO电路中的时钟抖动作为熵源,在长时间抖动积累下可以获得良好的随机性,但吞吐量会降低,硬件资源消耗大。主要受RO阶数的影响,输出频率降低,导致吞吐量降低。提出的基于快速进位逻辑的TRNG可以提高吞吐量,但为了获得更严重的路径延迟,需要繁琐的布线以提高随机性。在采用锁相环或数字时钟管理器(DCM)作为熵源的trng中,熵源结构简单,但随机性较差,需要进行复杂的计算才能找到合适的参数[9]。

因此,为了提高trng的吞吐量,减少FPGA上的硬件资源消耗。在本文中,我们提出了一种可以提高熵源随机性的熵源结构。由该熵源组成的TRNG具有以下三个优点:熵源质量好。采用多级反馈结构可以在短时间内增加时钟的相位抖动,改善熵源的随机性。该方法的吞吐率高,且熵源产生的抖动信号频率高。我们使用抖动信号对传统时钟信号进行采样,随机比特流产生的速率就是抖动信号的频率。采样电路简单。并且可以进一步降低硬件资源的消耗。

为了证明该结构的这些优点,我们在几个Virtex-6和Spartan-6 fpga上实现了TRNG。本文的其余部分结构如下。在第二部分,我们介绍了时钟抖动的产生原理和相关的研究。在第三部分,我们从理论上介绍了我们提高时钟抖动随机性的出发点,然后系统地介绍了我们提出的TRNG。第四部分介绍并讨论了随机性检验。最后,在第五部分中得出结论。

二、相关研究

时域时钟抖动和频域相位噪声是噪声影响时钟信号的两种方式。理想情况下,频率为F的固定脉冲的持续时间应为T=1/F,间隔为T/2的跳变边缘。然而,这样的信号并不存在。

如图1a所示,由于电路的热噪声和干扰,信号周期的长度总是会发生一定程度的变化,导致下一个跳边到达时间的不确定性。因此,在时域上,时钟频率的变化表现为时钟抖动,在频域上表现为相位噪声。

文献翻译|Design of True Random Number Generator  Based on Multi-stage Feedback Ring Oscillator(基于多级反馈环形振

我们以时钟信号T1~TN的周期为样本,∆

上一篇:♠ 异步处理方案


下一篇:使用mybatis-generator.xml 生成PO 对象