论文部分内容阅读
随着通信技术的飞速发展,人们对数据安全性的要求越来越高。在以密码学为基础的信息安全领域中,随机数扮演着重要的角色:密钥的生成、数字签名、认证和鉴别以及各种安全通信协议都离不开高质量的随机数。从某种意义上讲,随机数的安全性决定了整个安全体系的安全性。此外,随着FPGA性能的不断提高,在高性能计算领域已可以采用FPGA作为协处理器来提升某些密集型算法的运算速度,从而提高运算的整体性能。在这些应用中,经常会使用随机数发生器来产生非均匀随机数序列。在众多随机数发生器中,均匀分布随机数发生器应用最广泛,因为其他类型随机数发生器都可以通过对均匀分布随机数进行相应的转换得到。 本文首先研究了产生均匀分布随机数的各种算法,其中基于线性反馈移位寄存器(LFSR)均匀分布随机数发生器应用最广泛。虽然LFSR方法简单也容易硬件实现,但是普通的LFSR是单bit输出的,即一拍只能产生一位随机数。如果需要得到N位随机数只能通过N个LFSR并联的方式产生或者一个LFSR累积运行N拍再输出一个随机数的方式获得。然而这两种方式都不适用于FPGA的硬件实现,前者资源使用率与N成正比,后者输出速度降低为时钟频率的1/N,无法满足当今高速电路发展的需求。 本文重点研究了LFSR的特性,并据此提出了新型的输出位宽为mbit的LFSR结构,在维持寄存器使用个数不变的情况下,通过改变反馈网络和寄存器连接结构达到一拍输出多bit均匀分布随机数的目的。文中给出了新型LFSR详细的公式推导过程并提出了新型LFSR的周期公式,明确了新型LFSR的级数n、输出位宽m以及周期T之间的关系。在实际应用中,为m和n的选取提供了理论依据。同时,本文提出了基于新型LFSR设计伪随机数发生器的设计步骤,完善了伪随机数发生器的设计过程,使基于新型LFSR的伪随机数发生器设计更加系统化。在Vertex-5FPGA芯片上实现的结果表明,多个LFSR并联的结构与新型LFSR的工作频率基本一致,但是新型LFSR方式却节省了90%以上的硬件资源。 本文通过16个结构不同的新型LFSR并联的方式实现了一个输出位宽为1024bit的均匀分布随机数发生器,并在此基础上设计和实现了一个输出位宽为64bit,每个bit为“0”或“1”的概率动态可调的高速随机数发生器。由于随机数发生器内部有大量寄存器需要从DDR中读取数据完成初始化,而DDR提供的最高工作频率只有100MHz左右,为了防止系统的工作频率受到限制,本文在数据输入端加了一级双端口RAM作为缓存。利用RAM两个端口完全独立的特点,外部数据从一个端口写入RAM和从RAM的另一个端口读取数据对随机数发生器内部寄存器进行初始化可以采用不同的时钟频率,前者使用100MHz左右的时钟频率,后者则可以使用满足要求的高频,从而保证随机数发生器的速度性能。此外,在随机数发生器的输出端,本文设计了一个乒乓RAM结构来实现无缝缓存。 为了进一步提升本设计的工作频率,本文通过拆分组合逻辑的方式来减少延时,把关键路径分成多个延时更小的路径,添加寄存器层次来改进时序,使设计实现流水线结构来达到提高时钟频率的目的。此外,本文采用异步确立同步释放的复位电路为系统产生可靠的全局复位信号,既保证了在时钟没有运行的情况下电路捕捉复位的能力,又避免了复位释放时亚稳态的出现,提高了系统的安全性。 最后,为了测试系统性能,用Modelsim对各个子功能模块以及随机数发生器整体进行了行为仿真和后仿真,仿真结果表明,该随机数发生器的功能正确,时钟工作频率能达到375MHz,概率控制的精度能达到0.1%。