能产生真随机数的物理过程

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

能产生真随机数的物理过程

——物理随机数发生器(TRNG)

林晓春2009010679

在程序设计课程的学习中,了解到计算机程序语言里使用的随即函数产生的都是伪随机数。这种伪随机数,构不成真正的随机数序列。伪随机数具有一定的周期性和规律性,有被破解的可能。不能用于需要高级随机数的计算。比如随机数法计算圆周率,通信加密等。不论伪随机数的生成算法多么精巧,总不可能从生成的数列里去除人为因素的影响。

物理随机数,即利用按概率发生的自然现象发生的随机数。使用物理随机数,很难被发现规律和周期。事实上,物理随机数可以认为是没有周期和规律。

随机数的随机程度可用一系列方法进行测量,下面仅列举几种:

FIPS 140-1 均匀位测试,计数在20000位长的随机数序列中1的个数;

FIPS 140-1 长期运行测试,研究在20000位长的随机序列中长为34位的1和0的序列是否出现;

FIPS140-1运行测试研究在20000位的随机数序列中全1或全0的序列的最大长度。

相比算法得到的伪随机数列,物理随机数在这一系列测试中能得到更理想的成绩。这种随机数在通讯安全,加密解密,计算机代数证明,数值模拟等领域比之伪随机数有着更优良的性能。

在学习热学时,知道了分子的微观运动是无规则运动,既然是无规则运动,那就是一种随机过程。设想能否通过测量分子的无规则运动的某个参量作为随机发生源呢?比如,如果能够精确测量一个很短的时间段(例如10^-6秒)内,稳定气体系统里的分子碰撞器壁的次数,那根据这一数字的奇偶性就能生成一随机数比特流。用这一随机比特流就可以生成随机数了。

查阅资料后得知,上述数值是无法精确测量的。原因有:只能通过热学理论用压强等宏观参数计算出碰撞的统计平均值。无法测量的主要原因有两个,一是数值太大无法计量,二是无法检测碰撞。

联系粒子性质,既然普通分子不能被检测,那用带电粒子则可解决这一问题。电子枪射出的电子是理想的粒子源,而且可以控制电子速度。但电流电压还是人为控制的,仍无法完全消除人为因素。

最终,可以选择放射性元素作为粒子源。某个原子是否衰变及何时衰变完全是随机的。人的因素只是选择一种放射性原子即可,而这不影响衰变的随机性。故而可完全排除人为因素干扰。

较为简易的一种设计如下:

将一定量某种放射性原子放置在电子Geiger计数器中。这种电子计数器,每当检测到放射性衰变时,就会生成一个脉冲。衰变之间的时间是一个实足的、纯粹的随机部分。尤其是,没有人可以预测到下一次衰变的时间大于还是小于自上次衰变以来的时间。这样就产生了一位随机信息。不过这种随机数发生源生成随机数的速率受衰的变影响(例如,这一次衰变与上次间隔为0.5秒,下次与这次间隔3秒)因而不能产生速率非常稳定的随机比特流。

在查阅资料的过程中,我又了解了另外几种运用物理随机过程生成随机数的方法。

基于场效应管的热噪声法

PDK成功开发出的随机数序列发生速度高达24MB/s的告诉随机数发生器Random Streamer,由于发生源采用热噪音,所以序列的随机性高、速度快。可用于的研究开发等用途,还可用于统计分析、认证以及加密通信等安全领域。

其原理是,然后分别使用两组场效应管(FET)组合为热噪声的发生源、传感器和放大器。将时钟信号分为时钟A和时钟B两个部分,将A与B使用不同的两组热噪声传感器产生的的噪声进行调制。两个时钟信号在加载噪声后,波形的上升沿时序就会出现微妙的前后差别。这两个上升沿的信号通过一个DFF电路进行比较,A比B早就输出“1”,反之则输出“0”。

基于环境噪声法的真随机发生器。

采用这种设计某类型芯片,从WAV 文件或声卡提取背景噪声(通常没有连接话筒),这些源都是没有很多信息的平均信息量。将噪声多次迭代,放大处理后作随机源,用来调制上述两个时钟信号,这样做既能简化硬件设置,又能通过多次迭代将不可预测性进一步提高。许多时候,为了提高随机性,不得不将多路相互独立且相同的随机源各自产生随机随机数据进行糅合,杂化,扰乱输出位流,在通过一个伪随机数发生器后得到最终的随机数输出。理论上讲,可以选取两种或者更多种随机源发生方法进行优化组合,并将数据糅合,杂化,使其得到更高质量的随机数。

另有几种基于物理过程的随机数发生器,如,基于振荡器的真随机数发生器、基于γ能谱测量的真随机数发生器等。

相关文档
最新文档