基于Virtex-5平台的真随机数发生器的设计实现

时间:2015-02-06来源:网络

  2 TRNG的FPGA实现与测试

  整个TRNG的实验环境由外部时钟源、FPGA开发板以及逻辑分析仪组成。TRNG采用Xilinx公司的Virtex-5系列中的XC5VLX110作为物理实现平台,外部时钟频率为64 MHz。由FPGA产生的随机数据,经逻辑分析仪采集后,使用DIEHARD battery of tests of randomness随机数测试程序进行测试,检验随机序列的性能。

  DIEHARD测试是由16项测试组成的用来度量随机数发生器性能的一组统计学测试,它由George Marsaglia开发并于1995年首次发布。DIE HARD的测试结果叫做P-value,它由方程P-value=Fi(X)计算得到,其中Fi试图建立样本X在0和1间服从均匀分布的分布函数。因为Fi是渐进逼近的,它在尾部的近似效果变差,所以数值接近0或1的P-value在真随机序列中极少出现。当被测序列随机性能很差时,会有很多P-value的值是精确到小数点后数位的0或者1,例如1.000 000。需要强调的是,P-value等于1.000 000或0.000000是序列为真随机序列的充分不必要条件。

  2.1 FPGA位置约束

  为保证每个振荡器中的两个独立振荡环的理论振荡周期相同,以便更容易在锁定期间产生亚稳态,加大噪声对输出电平的影响,同时尽量让各个振荡器的输出在进行异或运算前延迟不出现太大偏差。所以对TRNG中的振荡环进行位置约束:将振荡环中的反相器约束在左右相邻的逻辑单元(Slice)中,让各个振荡环分别约束在上下相邻的逻辑单元中。

  2.2 振荡器数目对统计特性的影响

  在32 MHz的采样频率下,分别以15组、19组、27组和32组振荡器作为TRNG的随机源,随机序列经过同步器后不与PRBS运算直接输出。将采集到的随机序列送入测试程序进行测试以后,其结果如表1所示。

  

 

  可以看出,振荡器的数目直接影响随机源模块产生序列的统计性能,振荡器数目越多,TRNG输出序列的随机性越好。但是如果振荡器的数目太多,会消耗过多的硬件资源,功耗也过大。因此,不宜通过单纯地增加振荡器数目的方法提高随机序列的性能。

  定性分析如下:将序列的每位看作是一个随机的二进制变量X,定义b是序列的偏置。即

  b=|P(X=1)-1/2|=|P(X=0)-1/2| (2)

  根据Piling-up引理,输出序列的偏置是:

  

 

  其中n是输入序列的个数,bi是每个序列的偏置。容易看出b≤bi(1≤i≤n),等式当且仅当在bi=0(

)或者bi=1/2()时成立。简而言之,异或运算显著地减小了独立输入序列的偏置。假设n=16且所有bi=1/3,那么b=0.000 761可以忽略不计。

 

  2.3 后续处理模块对统计性能的改善

  由上一节的分析可知,增加振荡器数量是改善序列统计特性的有效方法。但前提条件是各个振荡器相互独立。当振荡器数量过多时位置约束很可能与相互独立的要求相互矛盾。因为高速的振荡信号往往发生相互串扰的情况,并且消耗更多资源和功耗,所以有必要在保证TRNG包含一定数量的振荡器的前提下,引入后续处理模块。从而达到消耗资源较少,序列性能较好的目的。

  本项测试以19组振荡器作为TRNG的随机源,输出序列与PRBS模块输出进行异或运算,然后分别使用32,16,8,2 MHz的采样时钟采集数据。将数据送入测试程序进行测试以后,结果如表2所示。

  

 

  可以看出,TRNG生成的随机序列全部达到了预定的性能指标。同时不难发现,采样时钟频率对TRNG的输出统计特性是有影响的,当采样频率逐渐降低时,TRNG的随机性能逐步提高。出现这种现象是由于采样频率越高,就与振荡频率越接近,二者的相位偏移干扰了随机信号的获取影响了统计特性。

  3 结束语

  本文尝试了一种纯数字形式的真随机数发生器结构,规模较小、易于移植。电路包含两个振荡环,分为自由振荡和锁存至双稳态两个工作状态。利用振荡环之间的相位偏移和抖动以及双稳态器件的亚稳态作为随机源。本文探讨了振荡器数量对序列统计特性的影响,并在加入后续处理模块的情况下试验了多种采样频率,经测试随机序列完全符合预定指标。

1 2

关键词: FPGA Virtex-5 随机数发生器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版