基于自治布尔网络结构的真随机数发生器的制作方法

文档序号:14249154阅读:326来源:国知局
基于自治布尔网络结构的真随机数发生器的制作方法

本发明属于数字电路技术领域,涉及一种真随机数发生器,具体涉及一种基于自治布尔网络结构的真随机数发生器,可用于保密通信领域。



背景技术:

随机数在密码学和信息安全系统中有着广泛的应用,它的主要用途之一是用作密钥。在现代信息安全系统中,系统的安全性完全依赖于随机数序列的生成效率和质量,因此安全性高的真随机数发生器对于密码系统是至关重要的。

常用的真随机数发生器一般由振荡电路和采样电路组成,振荡电路用于产生带噪声的模拟信号;采样电路用于对带噪声的模拟信号进行采样,输出数字信号。常用的大部分真随机数发生器由于输出信号存在0/1不均衡、游程过长等问题,需要使用后处理算法减少采样电路输出信号的缺陷,使经过后处理运算输出的二进制序列满足真随机数的要求。振荡电路通常采用直接放大噪声和抖动累加的原理提取噪声源,直接放大噪声原理中,振荡电路使用齐纳二极管放大噪声,由于齐纳二极管的反向雪崩效应,输出速率最大只能为10mhz,采样电路必须以低于振荡电路输出速率的速率采样,采样速率较低,抖动累加原理中,振荡电路需要较长的时间累加相位抖动,采样电路的采样速率受限于抖动累加的时间,因此需要较大的采样周期,采样速率较低。此外,由于算法后处理运算复杂,需要的时间长,导致常用的由振荡电路构成的真随机数发生器的输出速率更低。

目前研究中,提出了一种基于自治布尔网络结构的真随机数发生器。一个自治布尔网络是指由许多连线相互连接的节点组成,不需要任何外部输入信号的网络结构,其中的节点通常处于为0或为1的两个布尔状态之一。在基于自治布尔网络结构的真随机数发生器中,振荡电路逻辑器件的连接结构为自治布尔网络结构,其中的多输入逻辑器件视为节点,逻辑门之间通过连线相互连接,产生随机相位噪声,网络路径延时的大小决定电路的振荡频率和是否起振,通过该结构构成的真随机数发生器有很多的优点,如速率高,成本低,电路实现简单。但是由于电路的截止频率有限,当节点数较少时,理论上产生的信号频率高于电路的截止频率,导致电路无法起振或者输出信号随机性差,经过采样后的数字化信号不能作为真随机数,因此该熵源稳定性差。例如授权公开号:cn205015881u,名称为“一种基于相位噪声的可集成真随机数产生装置”的中国专利,公开了一种由不带时钟触发的振荡电路构成的真随机数发生器,其振荡电路以自治布尔网络结构的形式连接,其中的基本逻辑器件同或门和异或门可视为节点,每个节点分别与其左邻居和右邻居相连接,并将两个间隔为k的节点做单向连接,根据自治布尔网络结构的形式可写出微分延时方程组,该方程组的解即为该结构的信号输出形式,输出信号为确定性混沌信号,频谱带宽高达1ghz以上,振荡电路中的微小噪声提供了物理随机性,微小噪声持续扰动确定性混沌信号,因此产生高频的非确定性混沌信号,采样电路有两个信号输入端和一个信号输出端,其中一个信号输入端与差分延迟异或模块的信号输出端相连接,另一个信号输入端连接有时钟信号,采样电路的信号输出端用于输出稳定的随机比特流,解决了传统电路随机数产生方法不能直接通过随机数测试和不可集成的问题,并且大大提高了随机数的输出速率,但由于振荡电路中存在低通滤波效应,随着振荡电路中节点数的减少,振荡电路无法起振或输出信号随机性较差,熵源稳定性变差。



技术实现要素:

本发明的目的在于针对上述已有技术的不足,提出了一种基于自治布尔网络结构的真随机数发生器,用于解决现有真随机数发生器存在的熵源稳定性差的技术问题。

本发明技术思路是:通过在振荡电路中每个节点的输出端口与输入端口之间引入由反相器构成的时延自反馈电路,引入了高斯噪声源,时延自反馈电路的增加使得电路总的延时时间增大,因此电路的理论振荡频率降低,当理论振荡频率低于电路的截止频率时,此时电路的低通滤波效应无法弱化电路的振荡,则当节点数小于等于8时振荡电路能产生带有随机相位的混沌信号,所需的同或门和异或门总的个数最少可为4个,高斯噪声源增加了振荡电路的随机性,提高了熵源的稳定性。

根据上述技术思路,实现本发明目的采取的技术方案为:

一种基于自治布尔网络结构的真随机数发生器,包括振荡电路和采样电路;所述振荡电路,用于产生混沌信号;所述采样电路,用于对振荡电路产生的混沌信号进行采样,并输出采样后的数字化信号,其中:

所述振荡电路,采用由n+1个逻辑门作为节点构成的环状自治布尔网络结构,所述n+1个逻辑门包括1个同或门xnor0和n个异或门xori,其中n≥3,i表示异或门的序号,1≤i≤n,每个逻辑门包含三个输入端口和一个输出端口,输出端口通过时延自反馈电路与该逻辑门的任意一个输入端口相连接,其余两个输入端口中的一个与该逻辑门的右邻居逻辑门的输出端口相连接,另一个与该逻辑门左侧间隔k个逻辑门的输出端口相连接,其中1≤k≤n-2;

所述采样电路,包括n+1个并列排布的d触发器d0,...,dn和1个带n+1个输入端口的异或门xorn+1,其中,d0触发器的输入端口与振荡电路中的同或门xnor0的输出端口相连接,di触发器的输入端口与振荡电路中的异或门xori的输出端连接,n+1个并列排布的d触发器d0,...,dn的n+1个输出端口分别与异或门xorn+1的n+1个输入端口相连接。

上述基于自治布尔网络结构的真随机数发生器,所述时延自反馈电路,包括m个反相器,当m=1时,反相器的输入端口与该反相器所连接的逻辑门的输出端口相连接,输出端口与该反相器所连接的逻辑门的一个输入端口相连接;当m≥2时,所述m个反相器采用串联结构,该串联结构的首端反相器的输入端口与该时延自反馈电路所连接的逻辑门的输出端口相连接,末端反相器的输出端口与该时延自反馈电路所连接的逻辑门的一个输入端口相连接。

上述基于自治布尔网络结构的真随机数发生器,所述反相器,利用fpga的可编程逻辑单元le1实现,该可编程逻辑单元le1包括反相查找表lut1和寄存器reg1,通过反相器查找表lut1实现反相器的纯数字逻辑运算,并通过寄存器reg1保存数字状态。

上述基于自治布尔网络结构的真随机数发生器,所述异或门xori,通fpga过的可编程逻辑单元le2实现,所述可编程逻辑单元le2包括三输入异或查找表lut2和寄存器reg2,其中三输入异或查找表lut2实现异或门xori的纯数字逻辑运算,并通过寄存器reg2保存数字状态。

上述基于自治布尔网络结构的真随机数发生器,所述异或门xorn+1,通过fpga的可编程逻辑单元le3实现,所述可编程逻辑单元le3包括n+1输入异或查找表lut3和寄存器reg3,其中n+1输入异或查找表lut3实现异或门xorn+1的纯数字逻辑运算,并通过寄存器reg3保存数字状态。

上述基于自治布尔网络结构的真随机数发生器,所述同或门xnor0,通过fpga的可编程逻辑单元le4实现,所述可编程逻辑单元le4包括三输入同或查找表lut4和寄存器reg4,三输入同或查找表lut4实现同或门xnor0的纯数字逻辑运算,并通过寄存器reg4保存数字状态。

本发明与现有技术相比,具有优点如下:

1.本发明振荡电路通过在自治布尔网络结构节点的输出端口与输入端口之间增加时延自反馈电路,时延自反馈电路引入了更多的随机性,增加了电路的不确定性,与现有技术相比,有效地提高了真随机数发生器的熵源稳定性;同时,由于振荡电路随机性好,经过采样电路输出的数字信号速率有很大的提高,实验结果表明,本发明的随机数输出速率可达300mbit/s。

2.本发明振荡电路通过在自治布尔网络结构节点的输出端口与输入端口之间增加时延自反馈电路,实现对振荡电路总延时的控制,随着振荡电路节点数量减少,电路的振荡不受低通滤波效应的影响,使得真随机数发生器的熵源稳定性不受节点数量的影响。

3.本发明振荡电路产生的模拟信号随机性好,因此采样电路对模拟信号进行数字处理时更简单,所需器件少,实现简单,成本低。

附图说明

图1为本发明的整体结构示意图;

图2为本发明实施例1的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图和具体实施例,对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。

实施例1,在本实施例中,振荡电路中的节点个数为4,时延自反馈中串联的反相器个数m=3,间隔k=1;

参照图2,一种基于自治布尔网络结构的真随机数发生器,包括振荡电路和采样电路,其中:

振荡电路,由4个逻辑门作为节点构成的环状自治布尔网络结构,所述4个逻辑门包括1个同或门xnor0和3个异或门xor1、xor2、xor3,每个逻辑门包含三个输入端口和一个输出端口,其中,xnor0的输出端口通过时延自反馈电路与xnor0的任意一个输入端口相连接,xnor0的其余两个输入端口中的一个与xor3的输出端口相连接,另一个与xor2的输出端口相连接;xor1的输出端口通过时延自反馈电路与xor1的任意一个输入端口相连接,xor1的其余两个输入端口中的一个与xnor0的输出端口相连接,另一个与xor3的输出端口相连接;xor2的输出端口通过时延自反馈电路与xor2的任意一个输入端口相连接,xor2的其余两个输入端口中的一个与xor1的输出端口相连接,另一个与xnor0的输出端口相连接;xor3的输出端口通过时延自反馈电路与xor3的任意一个输入端口相连接,xor3的其余两个输入端口中的一个与xor2的输出端口相连接,另一个与xor1的输出端口相连接;每个逻辑门上的时延自反馈电路,包括3个反相器,采用串联结构,其中,not01的输入端口与xnor0的输出端口相连接,not02的输入端口与not01的输出端口相连接,not03的输入端口与not02的输出端口相连接,not03的输出端口与xnor0的输入端口相连接;not11的输入端口与xor1的输出端口相连接,not12的输入端口与not11的输出端口相连接,not13的输入端口与not12的输出端口相连接,not13的输出端口与xor1的输入端口相连接;not21的输入端口与xor2的输出端口相连接,not22的输入端口与not21的输出端口相连接,not23的输入端口与not22的输出端口相连接,not23的输出端口与xor2的输入端口相连接;not31的输入端口与xor3的输出端口相连接,not32的输入端口与not31的输出端口相连接,not33的输入端口与not32的输出端口相连接,not33的输出端口与xor3的输入端口相连接。

采样电路,包括4个并列排布的d触发器d0、d1、d2、d3和1个带有4个输入端口的异或门xor4,其中,d0触发器的输入端口与振荡电路中的同或门xnor0的输出端口相连接,d1触发器的输入端口与振荡电路中的异或门xor1的输出端连接,d2触发器的输入端口与振荡电路中的异或门xor2的输出端连接,d3触发器的输入端口与振荡电路中的异或门xor3的输出端连接,这4个并列排布的d触发器d0、d1、d2、d3的共4个输出端口分别与异或门xor4的4个输入端口相连接。所有d触发器的时钟由外部时钟clk提供。

实施例2,在本实施例中,振荡电路中的节点个数为8,时延自反馈中反相器个数m=1,间隔k=2;

一种基于自治布尔网络结构的真随机数发生器,包括振荡电路和采样电路,其中:

振荡电路,由8个逻辑门作为节点构成的环状自治布尔网络结构,所述8个逻辑门包括1个同或门xnor0和7个异或门xor1、xor2、xor3、xor4、xor5、xor6、xor7,每个逻辑门包含三个输入端口和一个输出端口,其中,xnor0的输出端口与反相器not0的输入端口相连接,反相器not0的输出端口与xnor0的任意一个输入端口相连接,xnor0的其余两个输入端口中的一个与xor7的输出端口相连接,另一个与xor3的输出端口相连接;xor1的输出端口与反相器not1的输入端口相连接,反相器not1的输出端口与xor1的任意一个输入端口相连接,xor1的其余两个输入端口中的一个与xnor0的输出端口相连接,另一个与xor4的输出端口相连接;xor2的输出端口与反相器not2的输入端口相连接,反相器not2的输出端口与xor2的任意一个输入端口相连接,xor2的其余两个输入端口中的一个与xor1的输出端口相连接,另一个与xor5的输出端口相连接;xor3的输出端口与反相器not3的输入端口相连接,反相器not3的输出端口与xor3的任意一个输入端口相连接,xor3的其余两个输入端口中的一个与xor2的输出端口相连接,另一个与xor6的输出端口相连接;xor4的输出端口与反相器not4的输入端口相连接,反相器not4的输出端口与xor4的任意一个输入端口相连接,xor4的其余两个输入端口中的一个与xor3的输出端口相连接,另一个与xor7的输出端口相连接;xor5的输出端口与反相器not5的输入端口相连接,反相器not5的输出端口与xor5的任意一个输入端口相连接,xor5的其余两个输入端口中的一个与xor4的输出端口相连接,另一个与xnor0的输出端口相连接;xor6的输出端口与反相器not6的输入端口相连接,反相器not6的输出端口与xor6的任意一个输入端口相连接,xor6的其余两个输入端口中的一个与xor5的输出端口相连接,另一个与xor1的输出端口相连接;xor7的输出端口与反相器not7的输入端口相连接,反相器not7的输出端口与xor7的任意一个输入端口相连接,xor7的其余两个输入端口中的一个与xor6的输出端口相连接,另一个与xor2的输出端口相连接。

采样电路,包括8个并列排布的d触发器d0、d1、d2、d3、d4、d5、d6、d7和1个8个输入的异或门xor8,其中,d0触发器的输入端口与振荡电路中的同或门xnor0的输出端口相连接,d1触发器的输入端口与振荡电路中的异或门xor1的输出端连接,d2触发器的输入端口与振荡电路中的异或门xor2的输出端连接,d3触发器的输入端口与振荡电路中的异或门xor3的输出端连接,d4触发器的输入端口与振荡电路中的异或门xor4的输出端口相连接,d5触发器的输入端口与振荡电路中的异或门xor5的输出端连接,d6触发器的输入端口与振荡电路中的异或门xor6的输出端连接,d7触发器的输入端口与振荡电路中的异或门xor7的输出端连接,这8个并列排布的d触发器d0、d1、d2、d3、d4、d5、d6、d7的共8个输出端口分别与异或门xor8的8个输入端口相连接。所有d触发器的时钟由外部时钟clk提供。

本发明的效果可通过以下检测结果进一步说明:

1、检测方法及内容:

采用美国国家标准和技术研究所nist提供的sp800-22随机数检测标准,对本发明实施例1和实施例2的真随机数发生器输出的真随机数序列的随机性进行检测,该检测标准包含15项检测内容,每一项检测产生的检测结果中包含一个p-value值和一个通过率propotion值。当p-value值不低于0.0001,显著性水平α为0.01的条件下,通过率值不低于0.9808,表示该项检测内容通过。

2、检测结果:

参照实施例1,对实施例1所描述的真随机数发生器提供300mhz的外部时钟,使其产生1073组1m的真随机序列,用美国国家标准和技术研究所nist提供的sp800-22随机数检测标准进行检测,其结果如表1所示:

表1检测结果1

从表1可见,实施例1所示真随机数发生器产生的真随机序列每项指标均达到了随机数的要求标准,表明本发明产生的随机数具有良好的随机性。

参照实施例2,对实施例2所描述的真随机数发生器提供100mhz的外部时钟,使其产生1073组1m的真随机序列,用美国国家标准和技术研究所nist提供的sp800-22随机数检测标准进行检测,其结果如表2所示:

表2检测结果2

从表2可见,实施例2所示真随机数发生器产生的真随机序列每项指标均达到了随机数的要求标准,表明本发明产生的随机数具有良好的随机性。

上述实施例仅用具体实施说明本发明的实现方法,在此基础上可以有多种变形,这种基于本发明的结构变化均包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1