法律状态公告日
法律状态信息
法律状态
2018-08-31
授权
授权
2017-01-04
实质审查的生效 IPC(主分类):G06F7/58 申请日:20160812
实质审查的生效
2016-12-07
公开
公开
技术领域
本发明属于数字电路技术领域,尤其涉及一种真随机数生成器,可用于保密通信。
背景技术
安全性高的真随机数发生器对于密码系统是至关重要的,它们经常被用来产生密钥、初始向量和一些对抗密码攻击的随机序列。传统地,一个最常用于产生真随机数的方法是将热噪声放大,如彭海辉、刘新宇、黄洁的专利(专利公开号:CN101727308A)集成电路中真随机数的产生方法,通过对数字电源信号及数字电源信号产生的噪声进行采样,再用DES算法对数据进行处理来获取真随机数;于慧红的专利(专利公开号:CN101751240B)一种利用比较相等电阻热噪声产生随机数的真随机数发生器,采用比较器对相同电阻的热噪声信号进行比较处理得随机数序列。白国强、张晓峰、陈弘毅的专利(专利公开号:CN101819515A)基于环型振荡器的真随机数发生电路及真随机数发生器,利用两个带有输入端的高频环形振荡电路和一个低频环形振荡电路构成真随机数发生电路,再对其进行后处理;王坚、张鸿飞、崔珂、高原、梁昊、金革的专利(专利公开号:CN102375722A)一种真随机数生成方法及发生器,利用多个独立的带外部使能端的高频振荡环产生多路输出信号,从中选取采样信号对其他路信号进行采样异或得到真随机数。
上述一些方法由于使用外部随机源,所以产生的随机数随机性难以得到保障,当攻击者控制了外部随机源时,使用这些随机数是及其不安全的;一些方法是基于反向器组成的振荡环产生随机数的,由于这样的振荡环在一个振荡周期的随机性极小,要获得随机性较高真随机数,必须等待其随机性累加一定程度时才能采样输出,所以此类方法不能产生高速率的真随机数。
发明内容
本发明的目的在于针对上述已有技术的不足,提出一种基于双耦合斐波那契振荡环的真随机数生成器,以提高真随机数的产生速率和安全性。
为实现上述目的,本发明包括:
振荡电路,用于产生具有随机相位偏移的随机振荡信号;
采样电路,用于对振荡电路产生的随机振荡信号进行采样,将连续模拟信号转化为离散数字信号进行输出。
其特征在于:
所述振荡电路,包括:
若干个相同的双耦合斐波那契振荡环构成,其中:
每个双耦合斐波那契振荡环,包括上下两个反相器组、k个异或门XOR和k个同或门XNOR,k的取值根据设计时给定的反馈多项式确定;
每个反向器组由r个反相器串联连接构成,即每个反相器的输出端除最后一个反相器外,均连接到下一个反相器的输入端,r为设计时给定的反馈多项式的次数;
每个异或门XOR和每个同或门XNOR均有三个输入端口和一个输出端口,每个异或门XOR与每个同或门XNOR连接如下:
第j个异或门XOR的第一输入端口与第j+1个异或门XORj+1的输出端口连接,第二输入端口与第j+1个同或门XNORj+1的输出端口连接,第三输入端口与上反向器组中的第cj个反向器的输出端口连接,其中,1≤j≤k-1;
cj的取值根据设计时给定的反馈多项式决定。
第j个同或门XNORj的第一输入端口与第j+1个同或门XNORj+1的输出端口连接,第二输入端口与第j+1个异或门XORj+1的输出端口连接,第三输入端口与下反向器组的第个cj反向器的输出端口连接;
第k个异或门XORk的第一输入端口与上反向器组中的第ck个反向器的输出端口连接,第二输入端口与上反向器组中的第r个反向器的输出端口连接,第三输入端口与自身的输出端口连接;
第k个同或门XNORk的第一输入端口与下反向器组中的第ck个反向器的输出端口连接,第二输入端口与下反向器组中的第r个反向器的输出端口连接,第三输入端口与自身的输出端口连接。
本发明具有如下优点如下:
1.生成的真随机数稳定性强、输出速率高。
本发明由于通过两个独立的斐波那契振荡环中的异或门进行连接来实现两个斐波那契振荡环之间的耦合,能够产生稳定的混沌振荡,利用该稳定的混沌振荡可产生稳定高速的真随机数。
2.本发明由于采用间隔采样样式的采样电路,即在两个距离最远的异或门和两个距离最远的同或门上进行采样,极大降低了采样信号的相关性,从而提高随机性。
3.本发明采用反馈多项式进行设计,由于不同反馈多项式对应着不同双耦合斐波那契振荡环,增加了设计的多样性和灵活性。
附图说明
图1为本发明的原理框图;
图2为本发明的电路结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
参照图1,本发明包括振荡电路、采样电路。其中振荡电路由若干个双耦合斐波那契振荡环构成,用于产生随机振荡信号;采样电路由若干个采样子电路构成,用于对振荡电路产生的随机振荡信号进行采样,该采样电路中采样子电路的输出经过异或作为该采样电路的输出端口,输出真随机数序列。
参照图2,对本发明的振荡电路和采样电路结构描述如下:
所述振荡电路,由若干个双耦合斐波那契振荡环构成,每个双耦合斐波那契振荡环包括:上、下两个反相器组、k个异或门XOR、k个同或门XNOR,k取决于设计时所给反馈多项式;
反馈多项式可以体现出振荡电路所具有的数学特性并且能形象地表示出振荡电路中逻辑门的连接方式。本设计所采用反馈多项式表示为其中fi为反馈多项式的系数,i为自变量x的次数,f0=fr=1,当0<i<r时,fi的值为1或0,r为反馈多项式的次数,r为不小于8的整数;
k为0<i<r中,所有反馈多项式系数fi中值为1的个数;
每个反向器组由r个反相器串联连接构成,即每个反相器的输出端除最后一个反相器外,均连接到下一个反相器的输入端;
每个异或门XOR和每个同或门XNOR均有三个输入端口和一个输出端口,且每个异或门XOR与每个同或门XNOR连接如下:
第j个异或门XORj的第一输入端口与第j+1个异或门XORj+1的输出端口连接,第j个异或门XORj的第二输入端口与第j+1个同或门XNORj+1的输出端口连接,第j个异或门XORj的第三输入端口与上反向器组中的第cj个反向器的输出端口连接,其中,1≤j≤k-1;
第j个同或门XNORj的第一输入端口与第j+1个同或门XNORj+1的输出端口连接,第j个同或门XNORj的第二输入端口与第j+1个异或门XORj+1的输出端口连接,第j个同或门XNORj的第三输入端口与下反向器组的第个cj反向器的输出端口连接;
第k个异或门XORk的第一输入端口与上反向器组中的第ck个反向器的输出端口连接,第k个异或门XORk的第二输入端口与上反向器组中的第r个反向器的输出端口连接,第k个异或门XORk的第三输入端口与自身的输出端口连接;
第k个同或门XNORk的第一输入端口与下反向器组中的第ck个反向器的输出端口连接,第k个同或门XNORk的第二输入端口与下反向器组中的第r个反向器的输出端口连接,第k个同或门XNORk的第三输入端口与自身的输出端口连接。
上述cj、ck的取值决于设计时所采用的反馈多项式;
本设计所采用反馈多项式表示为其中fi为反馈多项式的系数,i为自变量x的次数,f0=fr=1,当0<i<r时,fi的值为1或0,r为反馈多项式的次数,r为不小于8的整数;
将所有值为1的反馈多项式系数fi的下标i按照从小到大排列成一个序列,可表示为c1、c2、..cj、..ck,其中cj为这个序列中的第j个数的值。
所述采样电路,由若干个采样子电路和一个异或门即第k+2异或门XORk+2构成。
该每个采样子电路包括:四个D触发器,分别是第一D触发器D1、第二D触发器D2、第三D触发器D3、第四D触发器D4和1个异或门即第k+1异或门XORk+1。这四个D触发器分别与振荡电路中的双耦合斐波那契振荡环中的四个异或门相连,即第一触发器D1的输入为第一异或门XOR1的输出,第二触发器D2的输入为第一异或门XNOR1的输出,第三触发器D3的输入为第k异或门XORk的输出,第四触发器D4的输入为第k同或门XNORk的输出;该四个D触发器的输出作为第k+1异或门XORk+1的输入,第k+1异或门XOR>k+1的输出作为采样电路子电路的输出,所有采样子电路的输出作为第k+2异或门XOR>k+2的输入,第k+2异或门XORk+2输出是整个真随机数发生器的输出,该四个D触发器、第k+1异或门XOR>k+1、第k+2异或门XOR>k+2均由外部时钟电路提供的时钟CLK来控制,时钟CLK的最大频率为200MHz。
实施例:
本实例中采用反馈多项式:f(x)=1+x+x3+x5+x13+x16,其等价于反馈多项式中f0=fr=1,当0<i<r时,其反馈多项式系数f1=f3=f5=f13=1,该反馈多项式系数中值为1的系数的个数有4个,即k为4;
将系数值为1的反馈多项式系数fi的下标i按照从小到大排列成的序列c1、c2、..cj、..ck,即为1、3、5、13;
根据以上所给的反馈多项式:f(x)=1+x+x3+x5+x13+x16,设计振荡电路的每个耦合斐波那契振荡环包括:上、下各有16个反向器的两个反向器组、四个异或门即第一异或门XOR1、第二异或门XOR2、第三异或门XOR3、第四异或门XOR4和四个同或门即第一同或门XNOR1、第二同或门XNOR2、第三同或门XNOR3、第四同或门XNOR4,每个异或门XOR与每个同或门XNOR连接如下:
第一异或门XOR1的第一输入端口与第二异或门XOR2的输出端口连接,第一异或门XOR1的第二输入端口与第二同或门XNOR2的输出端口连接,第一异或门XOR1的第三输入端口与上反向器组中的第1个反向器的输出端口连接;
第一同或门XNOR1的第一输入端口与第二同或门XNOR2的输出端口连接,第一同或门XNOR1的第二输入端口与第二异或门XOR2的输出端口连接,第一同或门XNOR1的第三输入端口与下反向器组中的第1个反向器的输出端口连接;
第二异或门XOR2的第一输入端口与第三异或门XOR3的输出端口连接,第二异或门XOR2的第二输入端口与第三同或门XNOR3的输出端口连接,第二异或门XOR2的第三输入端口与上反向器组中的第3个反向器的输出端口连接;
第二同或门XNOR2的第一输入端口与第三同或门XNOR3的输出端口连接,第二同或门XNOR2的第二输入端口与第三异或门XOR3的输出端口连接,第二同或门XNOR2的第三输入端口与下反向器组中的第3个反向器的输出端口连接;
第三异或门XOR3的第一输入端口与第四异或门XOR4的输出端口连接,第三异或门XOR3的第二输入端口与第四同或门XNOR4的输出端口连接,第三异或门XOR3的第三输入端口与上反向器组中的第5个反向器的输出端口连接;
第三同或门XNOR3的第一输入端口与第四同或门XNOR4的输出端口连接,第三同或门XNOR3的第二输入端口与第四异或门XOR4的输出端口连接,第三同或门XNOR3的第三输入端口与下反向器组中的第5个反向器的输出端口连接;
第四异或门XOR4的第一输入端口与上反向器组中的第13个反向器的输出端口连接,第四异或门XOR4的第二输入端口与上反向器组中的第16个反向器的输出端口连接,第四异或门XOR4的第三输入端口与自身的输出端口连接;
第四同或门XNOR4的第一输入端口与下反向器组中的第13个反向器的输出端口连接,第四同或门XNOR4的第二输入端口与下反向器组中的第16个反向器的输出端口连接,第四同或门XNOR4的第三输入端口与自身的输出端口连接。
采样子电路的四个D触发器在100MHZ频率的外部时钟驱动下分别对振荡电路中的双耦合斐波那契振荡环中的四个异或门进行采样,即第一触发器D1在100MHZ频率的外部时钟驱动下对第一异或门XOR1进行采样,第二触发器D2在100MHZ频率的外部时钟驱动下对第一异或门XNOR1进行采样,第三触发器D3在100MHZ频率的外部时钟驱动下对第四异或门XOR4进行采样,第四触发器D4在100MHZ频率的外部时钟驱动下对第四同或门XNOR4进行采样;该四个D触发器采样结果经过第五异或门XOR5异或作为采样电路子电路的输出,所有采样子电路的输出经过第六异或门XOR6异或输出产生1000组1M的真随机序列。
本发明的效果可通过以下测试进行说明:
1、测试方法:
采用美国国家标准和技术研究所NIST提供的SP800-22随机数检测标准对上述本实例产生的1000组1M的真随机序列的随机性进行检测,该检测标准包含15项检测内容,每一项检测产生的检测结果中包含一个P-value值和一个通过率Propotion值。当P-value值不低于0.001且通过率值不低于0.9806,表示该项检测内容通过。
2、检测结果:
对用本实例产生的1000组1M的真随机序列,用美国国家标准和技术研究所NIST提供的SP800-22随机数检测标准进行检测,结果如表1
表1测试结果
从表1可见,本实例产生的真随机序列每项指标均达到了随机数的要求标准,表明本实例产生的随机数具有良好的随机性。
上述实例仅用具体实施说明本发明的实现方法,在此基础上可以有多种变形,这种基于本发明的结构变化均包含在本发明的保护范围之内。
机译: 减少倒装芯片ASIC中基于LC振荡器的锁相环之间的耦合
机译: 减少倒装芯片ASIC中基于LC振荡器的锁相环之间的耦合
机译: 双耦合锁相环,用于基于时钟和数据包的同步