×
嵌入式开发 > 详情

一种新的混沌RNG的实现方案及FPGA实现

发布时间:2020-06-23 发布时间:
|

在SoC(System on Chip)广泛应用的今天,如何设计一个基于Ic的RiNG就成为安全通信应用的急切需要。随机噪声源(如热噪声和发射噪声)存在于IC中却总是被人为地屏蔽掉了。因此,利用电路噪声放大的商用RNG设计需要专门的外部组件和特殊硬件来与那些需要屏蔽噪声的组件隔开。在IC设计中,对数模混合信号的处理经验表明,底层噪声和电源噪声电平总是高于随机噪声源电平。所以一个不被干扰的白噪声源在一个基于IC的数字加解密系统的RNG中是不可能被使用的,必须考虑如何利用抗干扰的随机源来实现随机数生成器。
本文提出一种新的混沌RNG实现方案,更易于用硬件即IC实现。首先讨论其原理和模型及其实验,并对其进行随机性测试;然后讨论它的FPGA实现方案

1 模型及实验

1.1 随机数生成器的定义

定义1 一个理想的随机数生成器是一个生成等概率符号的离散无记忆信息源(DMIS),RNG是一个有着正熵的离散信息源。



但是,现实中的RNG都是产生非均匀概率符号的离散有记忆信息源。因此采用有偏差的RNG来区别于定义1中理想的RNG。一个有偏差的RNG性能的好坏可通过它的冗余度ρ=log2Q-h来衡量,其中Q和h分别是离散符号集的基数和相关信源的熵。一个理想RNG的冗余度应该等于O,而一个有偏差的RNG的冗余度则标志这个RNG跟理想RNG的差距。例如一个冗余度为ρ的RNG产生长度为N位的密钥,则攻击方平均要尝试2(1-ρ)N个密钥才能找到正确的密钥,因此密钥的有效长度可以被定义为Ne=(1-ρ)N。

1.2 混沌随机数生成器模型

混沌理论作为非线性动态系统的分支,近年来受到越来越多的关注。它使得一个低维动态系统也可以拥有复杂的、不可预料的行为,使复杂的方程不再是生成随机数序列的必要条件。

混沌系统可以用基于下列迭代关系式描述的Bemouli移位映射:


式中,e(n)表示一个高斯噪声信号。这个迭代式表明由(1)式产生的序列是极为平滑和均一分布的。另外,与混沌相关的轨迹发散包含了噪声,(1)式产生的序列在一定范围内是不可预测的,从而使系统能被当作一个真随机比特源。离散时间混沌法不受其他噪声源影响。
在电路上实现Bemouli移位映射的关键在于实现一个抗干扰的高斯噪声信号。传统的混沌随机数生成器是用一个伪随机数生成器产生一个伪高斯噪声信号来实现(1)中的e(n),如图1所示,这在一定程度上降低了混沌随机数生成器的安全性和真随机性。


典型的振荡器采样法是利用时钟的相位噪声(理论上是MOSFET热噪声的副产品)产生随机数。通过一个由较慢时钟信号控制的D触发器对一个高速时钟进行采样,高速时钟的相位抖动导致具体采样值的不确定性,如图2所示,理论上每次采样都会产生一个随机比特。典型采样后的抖动电平是符合高斯分布的,而且这种抖动不会受到电路中其他噪声的干扰。另外,振荡器采样法的随机性可以通过仔细挑选快的和慢的时钟频率比来人为增强。采样时发生的非线性偏移现象使得这种振荡器采样技术比目前的确定性噪声更健壮。


基于上述原理,提出用振荡器采样输出作为一个高斯噪声信号e(n)实现(1)式。结合两种随机数生成器方案实现混沌随机数生成器,系统原理框图如图3所示。


其中S/H(Shilt/Hold)为一个移位保持电路,用来实现2(x(n-1)+e(n))。低速时钟控制D触发器、寄存器和S/H。寄存器中残余信号作为初始输人信号,然后与振荡1.3 实验结果及讨论

根据前面的定义l来检测本文中提出的混沌RNG的性能,用它生成不同长度的8bit随机数序列,计算其冗余度,并与参考文献中的传统混沌RNG方案做对比,如图4所示,点线表示本文提出的方案,实线表示69是文献中的方案。通过对比可以很明显地看出改进后的混沌RNC性能优于采用伪随机高斯噪声的传统混沌RNG方案。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
现场总线系统的功能安全评价