碧波液压网 欢迎你,游客。 登录 注册

一种基于FPGA的真随机数发生器设计与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  真随机数发生器(TRNG)在统计学、信息安全等领域有着广泛的应用。在这些领域中,不仅要求数据序列分布均匀、彼此独立,而且要求其具有不可预测性,能够抵御针对随机性的攻击。B.Sunar,W.J.Martin和D.R.Stinson提出,真随机数发生器的性能受3个因素的影响:熵源(Entropy Source),采集方式(Harvesting Mechanism)和后续处理(Post-Processing)。在电路系统中最常见的三种真随机数产生方法为:1)直接放大法:放大电路中的电阻热噪声等物理噪声,通过比较器进行比较后获得随机数序列;2)振荡采样法:用带有抖动的慢振荡器通过D触发器采样一个周期固定的快振荡器,输出随机序列;3)离散时间混沌法:利用混沌电路不可预测以及对初始条件敏感的依赖性的特点产生随机序列。基于模拟电路的结构,熵源的统计分布更加理想,且熵源噪声不随采样周期的变化而改变;基于数字电路的结构,集成度高,便于在FPGA等通用可编程平台上实现,但熵源的统计特性与模拟电路相比不够理想。

  本文尝试了一种用纯数字电路实现的TRNG结构,且不使用诸如PLL等特殊资源,便于设计由FPGA验证移植到芯片设计。其核心思想是使用反相器和延时单元构成两个相互独立的振荡器,由于内部噪声的差异引起的相位偏移作为熵源,经过一段时间振荡后,随机的状态由数字双稳态电路锁存。多组振荡器的输出,经过异或和同步处理后得到随机序列。该TRNG在FPGA物理平台上实现并进行了测试验证。

  1 TRNG的设计

  1.1 相位漂移与抖动

  由于受到电路中噪声的影响,数字电路中时钟信号的周期在每个不同的周期上可能缩短或者加长,这就是时钟抖动。抖动可以用许多方法来衡量和表征,它是一个均值为零的随机变量。振荡器起振时刻的差异和电路元件的工艺偏差,使得振荡器间存在相位漂移。因此抖动信号和相位漂移适合在数字电路中作为TRNG的随机源。

  1.2 亚稳态

  锁存器是有逻辑‘1’和‘0’两个稳定状态的双稳态器件,但是在特殊情况下其可能进入亚稳态,此时它的输出是介于‘1’和‘0’之间的中间电平。如图1所示锁存器用两个反相器和两个开关表征。当锁存器导通时,采样开关闭合,保持开关打开(图a);当锁存器关闭时,采样开关打开,保持开关闭合(图b)。图c展示了两个反相器的直流传输特性。当锁存器关闭时A=B,稳态是A=B=0和A=B=VDD,亚稳态为A=B= Vm,其中Vm不是一个合理的逻辑值。因为电平在该点是相互稳定的并且可以无限期停留,所以称该点为亚稳态。但是,任何噪声或者其他干扰都会使得A和B最终稳定在两个稳态中的一个状态。图d非常形象地表征了亚稳态,它就好像处于山顶的小球任何干扰都会使小球滚落到山两端的稳定状态。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论