数字式真随机数发生器电路的制作方法

文档序号:6383163阅读:2098来源:国知局
专利名称:数字式真随机数发生器电路的制作方法
技术领域
本发明涉及信息安全领域中的真随机数生成。
背景技术
真随机数在非对称加密算法RSA和ECC (椭圆曲线加密)中有非常广泛的应用,比如RSA的密钥生成需要随机数作为种子,通过对其进行Miller-Rabin素数测试和一系列防攻击性检测筛选出可用的P,q,而素数测试本身也需要随机数作为测试向量。ECC椭圆曲线签名算法中,需要随机数k作为签名的种子,并且k的安全性与密钥等价,所以对其随机性有非常高的要求。另外,RSA,ECC等非对称算法,以及AES,SMS4等对称算法,都需要高安全性的密钥,而真随机数发生器的不可预测性保证可以生成符合要求的密钥。
随机数的生成分为真随机数和伪随机数生成两种方式。伪随机数生成一般采用数学算法实现。伪随机数发生器的缺点是,连续的两个随机数输出符合η位多项式,考虑到不可约多项式的数量,假如采用长度较小的多项式,很容易通过遍历法寻找其生成多项式;另外,作为种子的n-bit随机数必须采用手动输入或者真随机数生成,否则每次上电后伪随机数将会生成同样的随机数序列,输出结果就违背了不可重复性,比如RSA的密钥生成,利用这样的序列,每次将生成完全相同的素数,不具有利用价值。伪随机数的好处是可以采用全数字电路实现,而且容易获取高的输出速率,但依然无法替代真随机数发生器。
真随机数发生器分为模拟和数字两种实现方法。模拟方法可以采用混沌效应等电路中不可预测的物理现象提取随机数,但是需要针对工艺定制的电路,不具备迁移性。数字式真随机数发生器则是利用电路中的亚稳态或时钟抖动等随机性作为熵源,因为采用全数字实现,所以具有很好的移植性,可以采用FPGA或者不同工艺的ASIC实现。发明内容
本发明要解决的技术问题是如何利用数字电路中的随机源产生随机数。
本发明的特征在于,含有真随机数发生器电路SI和偏置矫正电路S2,其中
真随机数发生电路SI,含有六个反相器INVf INV6、两个选择信号电路Mf M2、两个触发电路DfD2和一个与门AND1,其中
与门AND1,输入为时钟信号clock和选择信号select,输出同时送往两个所述选择信号电路,
在六个反相器INVl INV6中
反相器INV1、反相器INV2和反相器INV3依次串接,所述反相器INVl的输入端与选择信号电路Ml的输出端相连,所述反相器INV3的输出端和所述选择 信号电路Ml的“I” 的输入端相连,
反相器INV4、反相器INV5和反相器INV6依次串接,所述反相器INV4的输入端与选择信号电路M2的输出端相连,所述反相器INV6的输出端和所述反相器电路M2的“I”输入端相连,
所述反相器INVl的输出信号输入到所述选择信号电路M2的“O”输入端,所述反相器INV4的输出信号输入到所述选择信号电路Ml的“O”输入端,在两个触发器DfD2中,触发器Dl和触发器D2依次串接,其中触发器Dl,时钟信号输入端输入所述时钟信号clock,输入端D和所述反相器INVl的输出端相连,触发器D2,时钟信号输入端输入所述时钟信号clock,输入端D和所述触发器Dl的Q输出端相连,偏置矫正电路S2,含有两个选择开关SWfSW2,六个触发器D3 D8,以及四个异或门XORl X0R4,其中选择开关SW1,输入端与所述触发器D2的输出端Q相连,在四个触发器D3 D8中触发器D3 触发器D6共四个触发器,四个时钟信号输入端都输入所述时钟信号clock,四个D输入端分别连接到所述选择信号开关SWl的四个选择输出端,在四个异或门XORl X0R4中异或门XORl的两个输入端分别与所述触发器D3、触发器D4的输出端Q相连,异或门X0R2的两个输入端分别与所述触发器D5、触发器D6的输出端Q相连,异或门X0R3的两个输入端分别与所述异或门X0R1、异或门X0R2的输出端相连,异或门X0R4,输出使能信号enable,选择开关SW2,输入端与所述异或门X0R3的输出端相连,在两个触发器D7 D8中时钟信号输入端都输入所述时钟信号clock,各自的输入端Q分别与所述选择开关SW2的两个选择输出端相连,触发器D7的输出端Q与所述异或门X0R4的第一个输入端相连,触发器D8的输出端Q与所述异或门X0R4的第二个输入端相连,同时输出数据输出信号dataout,所述真随机数发生器按以下步骤产生真随机数第I步当select信号和clock信号皆为“I”时,三个所述反相器INVl、INV2、INV3形成奇数级反相器环路Loopl,三个反相器INV4、INV5、INV6也形成奇数级反相器环路Loop2,而当select信号为“ I ”而clock信号为“O”时,两个所述反相器INV1、INV4形成环路Loop3,由反相器INVl输出数据,select信号为O而clock为任意值时电路不工作;第2步在第I步中的输出的数据输入到触发器Dl的输入端D,经触发器Dl、触发器D2后消除亚稳态;第3步所述触发器D2输出的数据在时刻1、时刻2、时刻3、时刻4分别输入到四个所述触发器D3、D4、D5和D6,输出经存储后异或输出;第4步第3步输出的数据在时刻5输入到触发器D8中,经存储后得到数据输出信号dataout,并与前一工作周期时刻O存储在触发器D7中的数据异或得到有效信号enable,在连续向所述触发器D7和触发器D8输入“00”或者“ 11”时enable为“0”,输入“10”时 enable 为“1”,输出为“0”,输入 “01 ” 时,enable 为 “ I ”,输出为“I”。本发明利用全数字电路生成真随机数,可以在不同集成电路工艺下方便地移植,而且可以在FPGA平台上运行,可以用来替代传统的模拟电路生成随机数的方法,减少了设计成本和研发周期。


图1是按照本发明一种实施方式的真随机数生成器电路图。
具体实施方式
本发明利用两个奇数级反向器环构成的回路,两个触发器生成随机数,并由偏置 电路矫正输出。
具体包括如下步骤
Sll :SeleCt信号为“I”时,当clock为“1”,S1形成奇数级反向器环路Loopl (反 相器 INVl, INV2, INV3 构成),Loop2 (反相器 INV4, INV5, INV6 构成);当 clock 为 “0”,SI 形成回路Loop3 (反相器INVl, INV4构成),由INVl输出数据。select信号为“O”时,电路 不工作。
S12 :将Sll输出数据连接到触发器Dl的输入端,经过触发器Dl,D2消除亚稳态。
313:在时刻1、2、3、4分别寄存312输出数据到4个触发器03、04、05、06中。对 触发器D3 D6的存储结果异或输出。
S14:将S13的输出数据在时刻O、时刻5寄存到触发器D7和触发器D8上。利用 触发器D7 D8存储结果输出有效信号enable和数据输出dataout。在连续向D7、D8输入 “ 00 ”或者“ 11 ”的时候,enab I e为“ O ” ;输入“ 10 ”时,enab I e为“ I ”,输出“ O ” ;输入“ OI ” 时,enable 为 “1”,输出 “I”。
下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。
本发明的显著特点在于利用全数字的方法设计了真随机数发生器,方便了在不同 工艺下的随机数单元集成,并且可以在FPGA上实现,为ECC和RSA等公钥加密算法提供了 必要的随机数发生源,减少了片外添加芯片的开销,同时生成随机数的速度足以保证系统 的性能。
下面介绍根据图1所示的随机数发生器示例介绍其详细过程
图1中的电路分为两块,分别用两个框图表示,代表真随机数发生器SI和偏置矫 正电路S2。
SI
当select信号置于“I”时,真随机数发生器工作。clock信号为“ I ”时,INVl INV3 构成奇数级反向器环,形成环形振荡器,同理INV4 INV6独立形成另一振荡器。由于电路噪 声和器件的差别,两个振荡器在时钟频率和相位同步上会有差别。当clock信号置为逻辑 O时,反相器INVl和INV4构成偶数级反向器环,两个振荡器的信号叠加,经过负反馈环路, 最终确定在逻辑“O”或者“ I”上,经过D触发器在clock信号上升沿采样输出。
当随机数电路不需要工作的时候,可以将select信号置为“0”,这样整个电路处 于确定态,不再产生振荡,从而减少了不必要的动态功耗。随机数发生器的最高频率取决于 信号稳定的时间,即clock信号低电平时间,而且偶数级反向器和D触发器环有利于数据从 亚稳态到逻辑“O”或者“I”的恢复。
S2 对SI的随机数输出进行偏置矫正。随机数电路中生成的电路可能会存在偏置的情况,即“I”的生成概率P ^ 50%,反之亦然。但是完善的真随机数发生源不容许这种偏置的存在,为了消除这种偏置,获取有高随机性的熵源,可以采用以下两种后处理电路。XOR电路是对四个连续随机数输出进行异或,最终获得一个输出。通过条件概率的分析,假如输入随机数偏置偏差不多的情况下,通过选择合理的XOR电路可以有效提升O、I分布的均衡性。XOR电路的输出会经过消除连续“I”或者“O”电路,效果是均衡分布,同时减少连续“I”或者“O”的个数。该滤波电路有输出有效信号enable和数据输出dataout。在连续向该单元输入连续“I”或者“O”的时候,enable为O ;输入“10”时,enable为“1”,输出“O”;输入“01”时,enable为“1”,输出“I”。真随机数在enable为“1”,时刻O时输出有效随机数数据。本设计用Verilog进行FPGA仿真验证,验证随机数发生器的可靠性和可行性。基于Altera FPGA Cyclone II系列FPGA进行综合并下载到FPGA芯片中验证,利用Signaltap采样数据输出,获得2100万比特的数据输出。利用NIST SP800-22标准提供的测试软件进行随机性测试,测试数据均满足测试标准要求,因而证明输出数据是真随机数,本设计是可行的。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发 明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
1.数字式真随机数发生器,其特征在于,含有真随机数发生器电路Si和偏置矫正电路S2,其中 真随机数发生电路SI,含有六个反相器INVf INV6、两个选择信号电路Mf M2、两个触发电路DfD2和一个与门ANDl,其中 与门AND1,输入为时钟信号clock和选择信号select,输出同时送往两个所述选择信号电路, 在六个反相器INV1 INV6中 反相器INV1、反相器INV2和反相器INV3依次串接,所述反相器INVl的输入端与选择信号电路Ml的输出端相连,所述反相器INV3的输出端和所述选择信号电路Ml的“I”的输入端相连, 反相器INV4、反相器INV5和反相器INV6依次串接,所述反相器INV4的输入端与选择信号电路M2的输出端相连,所述反相器INV6的输出端和所述反相器电路M2的“I”输入端相连, 所述反相器INVl的输出信号输入到所述选择信号电路M2的“ 0”输入端, 所述反相器INV4的输出信号输入到所述选择信号电路Ml的“ 0”输入端, 在两个触发器DfD2中,触发器Dl和触发器D2依次串接,其中 触发器Dl,时钟信号输入端输入所述时钟信号clock,输入端D和所述反相器INVl的输出端相连, 触发器D2,时钟信号输入端输入所述时钟信号clock,输入端D和所述触发器Dl的Q输出端相连, 偏置矫正电路S2,含有两个选择开关SWfSW2,六个触发器D3 D8,以及四个异或门XORl X0R4,其中 选择开关SW1,输入端与所述触发器D2的输出端Q相连, 在四个触发器D3 D8中 触发器D3 触发器D6共四个触发器,四个时钟信号输入端都输入所述时钟信号clock,四个D输入端分别连接到所述选择信号开关SWl的四个选择输出端, 在四个异或门X0R1 X0R4中 异或门XORl的两个输入端分别与所述触发器D3、触发器D4的输出端Q相连, 异或门X0R2的两个输入端分别与所述触发器D5、触发器D6的输出端Q相连, 异或门X0R3的两个输入端分别与所述异或门X0R1、异或门X0R2的输出端相连, 异或门X0R4,输出使能信号enable, 选择开关SW2,输入端与所述异或门X0R3的输出端相连, 在两个触发器D7 D8中时钟信号输入端都输入所述时钟信号clock,各自的输入端Q分别与所述选择开关SW2的两个选择输出端相连, 触发器D7的输出端Q与所述异或门X0R4的第一个输入端相连, 触发器D8的输出端Q与所述异或门X0R4的第二个输入端相连,同时输出数据输出信号 dataout, 所述真随机数发生器按以下步骤产生真随机数 第I步当select信号和clock信号皆为“I”时,三个所述反相器INV1、INV2、INV3形成奇数级反相器环路Loop I,三个反相器INV4、INV5、INV6也形成奇数级反相器环路Loop2,而当select信号为“I”而clock信号为“0”时,两个所述反相器INV1、INV4形成环路Loop3,由反相器INVl输出数据,select信号为0而clock为任意值时电路不工作; 第2歩在第I步中的输出的数据输入到触发器Dl的输入端D,经触发器Dl、触发器D2后消除亚稳态; 第3步所述触发器D2输出的数据在时刻1、时刻2、时刻3、时刻4分别输入到四个所述触发器D3、D4、D5和D6,输出经存储后异或输出; 第4歩第3步输出的数据在时刻5输入到触发器D8中,经存储后得到数据输出信号dataout,并与前一工作周期时刻0存储在触发器D7中的数据异或得到有效信号enable,在连续向所述触发器D7和触发器D8输入“00”或者“ 11”时enable为“0”,输入“ 10”时enable为 “1”,输出为“0”,输入“ 01 ”吋,enable为“ I ”,输出为“I”。
全文摘要
数字式真随机数发生器,涉及数字签名和认证技术领域,其特征在于S1利用全数字电路产生随机数;S2对随机数进行偏置矫正产生符合国际标准的真随机数。本发明利用全数字电路生成真随机数,可以在不同集成电路工艺下方便地移植,而且可以在FPGA平台上运行,可以用来替代传统的模拟电路生成随机数的方法,减少了设计成本和研发周期。
文档编号G06F7/58GK103049242SQ20121051289
公开日2013年4月17日 申请日期2012年12月4日 优先权日2012年12月4日
发明者李树国, 王虎森, 李丽娟 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1