发明名称 一种流水线化的组合式伪随机数发生器
摘要 本发明属于伪随机数序列高速生成领域,具体涉及一种流水线化的组合式伪随机数发生器。流水线化的组合式伪随机数发生器,包括随机数据源模块,“0”、“1”序列生成模块,扰乱排序模块,SHA_1发散模块和伪随机序列存储器模块。本发明基于流水线化的组合式伪随机数发生器经过测试,验证了能够产生具有更好的统计特性和更高的安全性的随机数序列,并且设计成本较为低廉,能够提高应用于芯片加密以及计算机仿真等领域的效率。
申请公布号 CN103399726A 申请公布日期 2013.11.20
申请号 CN201310296057.6 申请日期 2013.07.15
申请人 哈尔滨工程大学 发明人 姚爱红;闫健;周文彬;雷磊;张建国
分类号 G06F7/58(2006.01)I 主分类号 G06F7/58(2006.01)I
代理机构 代理人
主权项 一种流水线化的组合式伪随机数发生器,包括随机数据源模块,“0”、“1”序列生成模块,扰乱排序模块,SHA_1发散模块和伪随机序列存储器模块,其特征在于:随机数据源模块包括:时间设置输入端、计数复位输入端、系统时钟输入端;7个输出端,其中0至6输出端与“0”、“1”序列生成模块的生成随机种子模块的输入端相连接,0至6输出端还与扰乱排序模块的生成增量模块的数据输入端相连接,5至6输出端还与“0”、“1”序列生成模块的选择乘子模块的输入端相连接,输入端传递给随机数据源模块接收到输入端传递的时间设置信号、计数复位信号和系统时钟信号,由随机数据源模块中的计数器通过输出端输出计数值,计数器的秒位最高计数为1,用1个二进制数表示,其它6位要分别表示十进制的0到9,各用4位二进制数表示;系统时钟通过随机数据源模块中的分频系统进行分频,生成频率为106Hz的微秒时钟进行时钟计数,时钟计数时判断输入的计数复位是否有效,如果有效则对计数器进行清零复位,判断输入的时间设置是否有效,如果有效则进行时间设置,若无任何外部输入信号有效时,计数器在微秒时钟的作用下进入工作状态,开始翻转计数,每过1微秒,则微秒位加1,到9进位,当加到999后自动清零,同时毫秒位加1,到9进位,当加到毫秒位达到999后自动清零,同时秒位加1,当从秒到微秒的计数值达到1999999后,所有计数位清零,开始重新计数;计数复位用于时钟计数器清零;在“0”、“1”序列生成模块包括7个输入端和1个输出端,其中随机种子生成器的输入端与随机数据源模块的7位输出端相连接,作为随机种子生成器的参量产生随机种子,输出到移位寄存器中,产生8组数据,与优选乘子选择的8个乘子进行并行的乘法运算,输出的乘积结果对超素数M取模,再通过奇偶判断器输出与“0”、“1”寄存器的输入端相连接,每组循环执行128次,通过移位寄存器,将8组生成的128bit,得到1024bit的“0”、“1”随机序列,并将这1204bit的“0”、“1”序列输出到扰乱排序模块,与扰乱排序模块中的一个移位寄存器相连接,作为此移位寄存器的数据输入;扰乱排序模块,由两个增量生成模块、两个混合同余发生器、两个移位寄存器、一个1024bit的数据暂存器组成,两个增量生成模块的每个输入端都连接到随机数据源模块的输出端,每个输出端连接到对应的混合同余发生器的输入端,每个混合同余发生器对移位寄存器产生的前后各512bit“0”、“1”序列进行扰乱,每个混合同余发生器将扰乱后的512bit“0”、“1”序列输出与相应的移位寄存器的输入端相连接,经过移位运算形成1024bit“0”、“1”序列输出与数据暂存器的输入端相连接,扰乱排序模块的输出端与SHA_1模块的16组32位寄存器的输入端相连接;SHA_1发散模块输入端与扰乱排序模块的输出端相连接,SHA_1发散模块中包含两个计数器和16个32位的寄存器,两个计数器分别为Length计数器与Counter计数器,通过计数器 循环计数扩展存储,得到80个32位寄存器,数据输入到寄存器中,通过四个串行移位相加,并行获得相加数据,将产生的数据放到编号为A,B,C,D,E五个寄存器中,寄存器输出端与并行函数发生器ft(B,C,D)的输入端相连接,数据最终存放到五个32位的散列值寄存器中,编号分别为H0,H1,H2,H3,H4;伪随机序列存储器模块由一个ROM存储器构成,该模块的输入端与SHA_1发散模块的输出端相连接,存放最终的输出,即得到了本发生器产生的伪随机序列的数据流。
地址 150001 黑龙江省哈尔滨市南岗区南通大街145号哈尔滨工程大学科技处知识产权办公室