本发明涉及集成电路、密码芯片领域,尤其是一种由低速物理随机数产生高速物理随机数的方法及装置,适用于保密通信领域。
背景技术:
随机数发生器是科学计算、随机实验、密码学和通信等众多领域的关键组成部分。特别在保密通信领域,数据通信的安全性在很大程度上取决于随机数的质量和数量。
完美的加密应该基于香农“一次一密”的理论,即加密密钥为真随机数,且加密密钥的长度不得少于明文长度,密钥只能使用一次。在如今高速信息传输的时代,要对高速传输的数据进行绝对安全的加密,需要能够实时产生大于或等于数据传输速率的高速真随机数。
基于算法产生的伪随机数由于输出序列的周期性和可预测性,不适合应用于保密通信领域。相比于伪随机数发生器,物理随机数发生器通过随机的物理过程或随机物理现象产生,可以输出无周期、不可预测的随机序列,能更好运用于保密通信领域中。
物理随机数发生器可通过很多方法实现,如利用电阻的热噪声、振荡器的频率抖动等产生高质量的物理随机数。此外还有利用混沌激光、量子效应的方法,其能够产生高速的物理随机数。基于上述方法实现的物理随机数,一些由于较低的速率,一些则因为庞大的体积,已经很难适应如今器件小型化、可集成化,gbps甚至tbps通信速率的发展需求。
因此,发明一种小型化、可集成化的高速、实时物理随机数的产生方法和装置有着及其重要的意义。
技术实现要素:
本发明克服现有技术存在的不足,提出了一种由低速物理随机数产生高速物理随机数的方法及装置,以适应高速率保密通信的需求。
本发明是通过如下技术方案实现的。
一种由低速物理随机数产生高速物理随机数的装置,包括时钟模块、低速并行随机数阵列模块、吉比特收发器模块;所述低速并行随机数阵列模块为并行的多个低速物理随机数发生器,所述的多个低速物理随机数发生器形成随机数发生器阵列,所述随机数发生器阵列能够产生低速并行物理随机数;所述随机数发生器阵列与所述的吉比特收发器相连接,通过所述的吉比特收发器将所述的低速并行物理随机数串行化输出高速、实时物理随机数;所述时钟模块使用差分时钟作为主时钟,通过吉比特收发器所产生的时钟信号用以随机数模块所有d触发器的工作时钟及吉比特收发器的数据发送时钟。
所述的低速物理随机数发生器是利用基本数字逻辑器件构造,所述低速物理随机数发生器通过n个二输入异或门、n+1个三输入异或门和n个d触发器实现;n个二输入异或门的输出分别级联到相邻异或门的输入上,混沌模拟信号经异或门的输出节点输出;n+1个三输入异或门的一个输入连接在相应二输入异或门的输出上,其另外两个输入信号分别连接到相邻三输入异或门经d触发器的输出上,任选三路d触发器输出的信号经1个三输入异或门输出为具有良好统计特性的物理随机数,其中其中n为3的倍数,且n≥9。
优选的,所述的低速物理随机数发生器共64个,共同构造低速并行随机数发生器阵列。
优选的,所述的随机数发生器阵列和吉比特收发器集成于fpga中,高速实时物理随机数通过吉比特收发器的一对差分输出口输出。
一种由低速物理随机数产生高速物理随机数的方法,具体包括以下步骤:并行多个低速随机数发生器,构成随机数阵列模块,该阵列模块输出频率为0-500mhz的并行物理随机数;然后使用吉比特收发器,将低带宽并行的数据转换为高带宽串行数据输出。
优选的,并行64个速率为1bit/156.25mhz的低速随机数发生器构成随机数阵列模块。
更优的,所述的随机数阵列模块输出频率为156.25mhz、位宽为64bit的并行物理随机数,64bit的并行物理随机数最终通过吉比特收发器输出为10gbps的高速、实时物理随机数。
优选的,所述的随机数发生器阵列和吉比特收发器集成于fpga中,高速实时物理随机数通过吉比特收发器的一对差分输出口输出。
本发明相对于现有技术所产生的有益效果为。
1)本发明装置能够通过低速物理随机数发生器实时产生高速实时物理随机数,这种低速物理随机数发生器输出速率可控,位宽可调,同时该物理随机数具有良好的统计特性,可通过nistsp-80022中的统计测试。该装置同时能够产生速率可调,位数可调的低速串行或并行物理随机数。
2)本发明产生的高速实时物理随机数装置基于一块fpga实现,逻辑全部采用数字器件构成,基于veriloghdl代码编写实现,便于不同fpga硬件平台间的移植。
3)物理随机数发生器所有组成部分全部集成于一块fpga中,实现了高速物理随机数的小型化和集成化,适应当代通信技术、计算机技术以及芯片技术发展的需求。
附图说明
图1是本发明装置的电路结构框图。
其中100为时钟输入模块;200为低速并行物理随机数阵列模块;300为吉比特收发器模块。
图2是本发明差分时钟输入模块示意图。
图3是本发明单个低速物理随机数发生器电路图。
图4是本发明吉比特收发器原理图。
图5是本发明所述装置产生的时序图
图6是本发明所述装置所产生的10gbps物理随机数的nist测试结果。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,结合实施例和附图,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。下面结合实施例和附图详细说明本发明的技术方案,但保护范围不被此限制。
本发明基于xilinxkintex-7xc7k325tfpga平台实现,最终可产生10gbps的高速、实时物理随机数。其结构框图如图1所示,主要由时钟输入模块100、低速并行随机数阵列模块200、和吉比特收发器(gtx)300三个主要的模块组成。所有模块集成于一块fpga中,10gbps高速实时物理随机数通过吉比特收发器(gtx)的差分输出口输出。
所述时钟输入模块100如图2所示,该模块将双端差分时钟(refclk_n,refclk_p)转换为单端时钟(refclk)作为吉比特收发器(gtx)的时钟输入。
所述低速并行物理随机数阵列模块200如图3所示,该阵列模块由64个低速(1bit/156.25mhz)物理随机数构成,在吉比特收发器(gtx)300用户发送数据时钟频率(156.25mhz)下,以64bit位宽的数据形式输入到吉比特收发器(gtx)300中,通过吉比特收发器(gtx)的差分输出口输出10gbps的高速、实时物理随机数。
所述低速并行物理随机数阵列模块200由prng0到prng63共64个相同的低速(1bit/156.25mhz)串行物理随机数prng构成。该低速串行物理随机数prng是由1个二输入异或非门(2010)、n-1个二输入异或门(201i(1≤i≤n-1))、n+1个三输入异或门(202i(0≤i≤n-1),204)和n个d触发器(203i(0≤i≤n-1))这些简单的数字器件实现的。n个二输入逻辑门(201)的输出t[i](0≤i≤n-1)分别级联到相邻二输入逻辑门的输入上,混沌模拟信号t[i](0≤i≤n-1)经异或门的输出节点输出。n个三输入异或门(202)的一个输入连接在相应二输入异或门(201)的输出t[i](0≤i≤n-1)上,其另外两个输入信号分别连接到相邻三输入异或门经d触发器(203)的输出r[i](0≤i≤n-1)上,任选三路d触发器输出的信号r[l](0≤l≤n-1),r[m](0≤m≤n-1),r[n](0≤n≤n-1)(1≠m≠n)经1个三输入异或门(204)异或输出为具有良好统计特性的物理随机数,其中n为3的倍数,且n>=9。该低速物理随机数不同于其它物理随机数的特征在于速率0~1ghz可调,通过调整d触发器的时钟频率(clk)可实现不同码率物理随机数的输出。该低速物理随机数不同于其它物理随机数的另外一个特征在于可通过调整n的取值,任选经d触发器输出三路不同信号进行异或处理即可输出具有良好统计特性的物理随机数。根据组合特性,当输出节点数为n时,共有
所述吉比特收发器(gtx)模块300如图4所示,该模块在用户发送时钟(156.25mhz)频率下,将低速并行物理随机数阵列模块所产生的(64bit/156.25mhz)的并行低速数据串行化输出为10gbps码率的高速、实时物理随机数。
吉比特收发器(gtx)300使用一对156.25mhz的差分时钟(refclk_n/p)输入作为时钟源,转换为单端时钟(refclk)作为吉比特收发器(gtx)的输入时钟。吉比特收发器(gtx)300的输出时钟txoutclk经过混合时钟管理单元(mmcm)分频为txusrclk和txusrclk2,分别作为吉比特收发器(gtx)300的内部数据时钟和外部用户数据的发送时钟。外部用户数据的发送时钟(txusrclk2,156.25mhz)作为串行收发器(gtx)的用户数据发送时钟和低速并行物理随机数阵列模块中所有d触发器的工作时钟。
如图5所示,为了验证本发明所产生物理随机数的质量,我们用80ghz带宽的示波器观察了其输出时序。如图6所示,并从物理随机数发生器的输出采集1gbit的物理随机数,对其进行nistsp800-22中所推荐的统计测试,该物理随机数可通过其所有的测试项,证明其良好的输出特性。
以上内容是结合具体的优选实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定专利保护范围。