分析科学学报
主办单位:教育部
国际刊号:1006-6144
国内刊号:42-1338/O
学术数据库优秀期刊 《中文科技期刊数据库》来源期刊
       首 页   |   期刊介绍   |   新闻公告   |   征稿要求   |   期刊订阅   |   留言板   |   联系我们   
  本站业务
  在线期刊
      最新录用
      期刊简明目录
      本刊论文精选
      过刊浏览
      论文下载排行
      论文点击排行
      
 

访问统计

访问总数:17161 人次
 
    本刊论文
利用FPGA产生真随机噪声技术分析

  【论文摘要】在工程应用中,经常需要产生随机数,从而对实际的工程算法进行仿真验证,并且最好是在项目调试现场进行仿真输入从而对系统的整体性能进行测试,规避了常见的在计算机上验证正常,在实际系统中工作不正常的问题,并且由于在Matlab中常见的伪随机数的算法均较为复杂,不利于实现。本文采用了一种基于FPGA中非门逻辑单元来实现真随机数的方式,利于嵌入到实际运行的工程中,从而进行现场验证。

  【关键词】真随机数;FPGA;非门环

  0 引言

  真随机数在密码学以及其它的学科中有着重要并广泛的应用,工程应用中的随机数常常用来产生实际环境中的本底噪声附加到理想信号上用于仿真实际情况下的输入信号。随机数分为伪随机数以及真随机数,通常在计算机系统中产生的随机数都是伪随机数,所谓的伪随机数通常是利用特定的函数来生成的,虽然在不同程度上逼近真随机数,但是它的致命的弱点是可追溯的。真随机数,顾名思义,即是真正的随机数,一般都是由物理过程产生的随机数,不能预先演算得到的,具有天然的不可破解的特性。

  产生真随机数的方式有很多,其中利用FPGA内部时钟抖动产生真随机数的方式已经广泛被使用[1-2],利用FPGA产生真随机数利用的是时钟的抖动,时钟抖动越大,真随机性能越好。本文中给出了一种经过实际验证的真随机数的产生方式,利用该种方式产生的随机数能够通过NIST推出的专用软件进行性能测试,之后才能够投入到实际的生产使用中。

  1 FPGA中真随机数产生

  产生真随机数的基础是利用真实存在的熵源,FPGA中的真实熵源是时钟JITTER,例如在D触发器时钟到达的时候,数据线处在跳变的过程中,导致不能满足其常规工作时所需要的建立保持时间的要求,输出的数据处于不稳定的随机状态,这是利用FPGA产生随机数的基本原理。

  在FPGA中产生真随机数的方式是利用三个非门组成的非门环,在将多个非门环进行异或操作,最终再进行时钟采样的方式,如图1所示。非门环本身运转起来之后,线上的数字在高速的进行跳变,在高电平以及低电平之间高速的切换,然后将其中一个非门的输出接到D触发器上,这样D触发器根据其工作时钟定期到非门环上取一个数据进行锁存,这样有一定概率出现取数时D触发器的数据线正好在进行跳变的过程中,代写论文这样其输出的数值就是真正意义上的随机数。但是,单个非门环的数据中真随机数的概率有限,还不能做到真正意义上的真随机数,必须要利用多个非门环进行联合工作,然后再进行全局的异或操作,只要有一个状态为真随机数,则最终输出为真随机数。

  如图1所示,该种方式产生的随机数为真随机数,非门环本身运转的速度很高,高低跳变的周期小于1ns,并且各个非门环之间的状态是完全独立的,故在进行异或操作时,如果非门环输出为1的个数为偶数时,则输出为0,个数为奇数时,输出为1;在进入D触发器时,由于采样时钟为低速时钟,在D触发器采样时钟到来时,数据线上的输入如果发生跳变,则会产生真随机数,我们通过增加非门环的个数来增加该真随机数出现的概率。

  在工程应用中,可以控制不同的M,N,L值,从而获得不同效果的真随机数,N值主要控制单路的非门环之后的非门的个数,M值主要控制非门环的个数,M个非门环最终通过1个异或门从而得到1路真随机数输出,该路输出再经过L个非门之后再送入到一路D触发器中进行时钟采样,从而得到最终的输出。异或门是整个系统中的关键部位之一,它的作用是将所有的单路中的真随机数的因素汇总起来,在这里合成到一路中,其基本原理是真随机数和任何数据进行异或的结果都是真随机数,这种结构下要想得不是真随机数的情况只有所有路的输出都是非随机数,即每一路都能满足建立保持时间的要求,这个要求随着路数的增加,变得越来越难满足,概率越来越小。通过增加非门环的数量从而减少输出端非真随机数的出现概率,最终得到真随机数。

  2 真随机数测试

  3 结论

  利用FPGA产生真随机数能够达到较高的速度,且利于系统集成,并且能够进行位扩展,能够同时生成多个真随机数源,再通过并串转换再产生更高速率的真随机数,并且集成度高,能够在系统现场进行仿真输入,测试系统工作的稳定性,可以应用于工程实践中。

  【参考文献】

  [1]张聪,于忠臣。一种基于FPGA的真随机数发生器设计与实现[J].电子设计工程,2011,19(10):176-179.

  [2]霍文捷,刘政林,陈毅成,等。一种基于FPGA的真随机数生成器的设计[J].华中科技大学学报:自然科学版,2009,37(1):73-76.

特别说明:本站仅协助已授权的杂志社进行在线杂志订阅,非《分析科学学报》杂志官网,直投的朋友请联系杂志社。
版权所有 © 2009-2024《分析科学学报》编辑部  (权威发表网)   苏ICP备20026650号-8