文 献 综 述
【摘要】伪随机数发生器(PRNG)在密码学[1]、通信[2]或程序生成[3]等领域有着广泛的应用。具体来说,在仪器和测量领域,PRNG在许多应用中都是必需的,如统计采样、蒙特卡罗模拟、数字系统抗噪声性评估,和一般的物理、生物方面的测试,以及电学系统、非线性系统中Wiener和Volterra内核的码密度测试和确定[4]、[5]。良好的伪随机数发生器对于这些应用领域的设备工作有着极大的帮助,因此设计一个伪随机数发生器需要综合考虑资源使用的情况和随机性效果的好坏,尽力要在使用最少的资源的情况下,完成随机数的生成。
【关键词】 PRNG , FPGA , LFSR , TDC , CTD
在查阅文献的过程中,也对现有的一些伪随机数发生器(PRNG)的工作方式有了一定的了解,PRNG是一种算法,其基本工作方式是在初始化程序完成后,利用输入的种子,通过使用转换函数,生成一个看起来是随机数的位序列,其长度远远大于种子长度,通过这种方式产生的随机位序列即为伪随机数。这种方式生成的随机数的位之间可能存在相关性。因此,为了获得更好的统计特性,通常只使用少量的每个随机数来构建随机序列,通常是最小符号比特,因为它们呈现低相关性。经过了大量实验的验证和研究,一般会将作为输入参数的种子的值定在[3.57 ,4]之间,以获得一个较为简单有效的随机行为。在这个区间之外容易出现固定点、周期轨道或是出现发散的情况,不适合PRNG使用。[6]、[7]
当混淆映射(如Logisitic映射)的混淆映射方法用n位的字长度进行数字化时,每个只能取个不同的值。此外,对于给定的gamma;,某个的值决定下一个元素的值。因此,在最大数量的迭代之后,序列将重复其自身。虽然最大周期是,但在的顺序下,通常会发现更短的周期。[8]这些短周期序列会使得PRNG产生的伪随机数不能达到预期的效果,呈现出一定周期的规律性,也因此未通过大多数NIST随机性测试。[6]此时,如果信号处理或仿真需要大量的随机数,序列就会开始重复,从而影响信号处理和仿真的结果。
减轻这个问题的影响的一个可行策略是使用更大的字长。例如,使用500位的字长。[9]在这样的已经增长的字长序列中依然有可能出现预料之外的短周期序列。为了保证能够满足系统的要求,这种方法通常需要使用大量的额外资源来保证更长的周期,对于相同投入量的资源得到的回报太小,不适合大量使用。
一些最常用的PRNG基于线性同余发生器(LCG)或线性反馈移位寄存器(LSFR)。利用线性反馈移位寄存器的特性产生多轮循环过程中的种子序列,生成对应的随机数序列。然而,这些系统中的大部分都呈现出一些相关性或短周期,这使得它们不适合于许多应用,特别是对于资源要求较为苛刻的环境。在这种背景下,基于混淆的PRNG由于其遍历性和随机行为的特性,已经成为一种很好的选择。
如在[12]中,介绍了一种可以较好解决这一问题却又不会使用大量的额外资源的方法来保证PRNG产生的随机位序列的随机性。为了测试所提出的生成器的良好统计特性,其生成的序列已通过国家标准与技术研究所(NIST)的测试。这些序列通过了所有测试,证明它们与真正的随机序列是没有差别的,即这些序列有着良好的随机性。
在这篇文章中介绍了一种基于Logisitic映射的伪随机数发生器(PRNG)。为了防止系统陷入短周期轨道,增加生成序列的随机性,该算法动态地改变混淆系统的参数。采用多个gamma;值代替单个gamma;值,利用一个循环缓冲区对输入的种子进行处理,循环使用多个gamma;值,避免在单一gamma;值上出现较短的周期。这项技术最初是在文献[10]和[11]中针对一般情况提出的。这篇文章[12]则是通过优化这些值的组成来获得最佳的随机性改进,以达到消除单一值的短周期的效果,即可获得一个更好的伪随机数生成器,将NIST的通过率提至更高的水平。该PRNG已在Virtex 7现场可编程门阵列(FPGA)中实现,具有32位定点精度,共使用510个查找表和120个寄存器。该算法生成的序列经过了美国国家标准与技术研究所(NIST)的随机性测试,所有测试全部通过。在文章中也对这种新的基于混淆的位动态PRNG进行了测试。该系统已被证明能够生成具有良好统计特性的序列,只需比常规基于32位Logisitic映射的随机数生成器多使用一些资源就可以通过NIST随机性测试,将NIST测试的通过率从25.2%提高到98.9%。64位Logisitic映射则在使用了更多的资源的情况下,却只达到了97.9%的通过率。[12]所提出的伪随机数生成系统比其他常用的伪随机数生成系统具有更好的随机性。
最后,将该PRNG与以前提出的基于混淆的PRNG进行了比较,这些系统有些基于不同的混淆算法,但都对资源的要求较高。由此证明了该系统具有良好的性能提升,特别是在资源和随机性方面表现极其优秀。在达到相同效果的情况下,查找表和寄存器的使用量比起其他的要少很多。这种PRNG可用于不需要高吞吐量但需要小面积利用率或非常好的统计特性的应用,例如蒙特卡罗(Monte Carlo)模拟。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。