一种真随机数生成方法及装置的制作方法

文档序号:6336805阅读:411来源:国知局
专利名称:一种真随机数生成方法及装置的制作方法
技术领域
本发明涉及安全加密技术领域,尤其涉及一种真随机数生成方法及装置。
背景技术
随机数是系统进行加密,例如系统利用随机数生成密钥的重要工具,因此随机数生成器是所有加密系统所必备的一个环节。一个随机数生成器必须具有足够安全的能力去防止来自外部或内部的攻击。随机数生成器应当满足以下最基本的三条安全原则1)频率和游程随机性,生成器的输出要具有随机性,满足频率测试和游程测试,针对长游程和刺探攻击保证安全;2)重构恢复/前向安全性,即使知道生成器在某一特定时刻的状态,也不能由此推断出生成器在此刻以前的输出数;3)入侵预测/后向安全性,即使知道生成器在某一特定时刻的状态,也不能由此推断出生成器在此刻以后的输出数。真实的硬件随机数生成器和伪随机数生成器是完全不同的,后者易于用软件实现,可以得到统计上的随机数;但是算法实现公开后,同样的输入会得到同样的输出,难以做到算法随机数序列不可重复。

发明内容
本发明所要解决的技术问题是提供一种结构简单、成本低、性能可靠的真随机数生成方法及装置。为解决上述技术问题,本发明采取以下技术方案一种真随机数生成装置,其包括高频振荡器、初始种子数生成单元、误差扩散计算单元、控制单元、随机数输出单元和线性反馈单元;所述高频振荡器的输出端连接所述初始种子数生成单元的输入端,所述初始种子数生成单元的输出端连接所述误差扩散计算单元的输入端;所述误差扩散计算单元的输出端连接所述线性反馈单元,所述线性反馈单元的输出端连接所述控制单元,所述控制单元连接所述随机数输出单元。所述初始种子数生成单元包括亚稳态电路和缓存器,所述亚稳态电路的输出端与所述缓存器电连接。所述线性反馈单元包括移位寄存器。所述控制单元包括判断单元。所述误差扩散计算单元包括组合电路和时序电路,其中所述组合电路由异或门、 同或门和加法器构成,所述时序电路由移位器和寄存器构成。本发明还提供一种真随机数生成方法,该方法包括如下步骤步骤1,每次准备生成随机数的时候,启动高频振荡器,产生高频振荡信号;步骤2,利用亚稳态电路产生初始种子数;
步骤3,计算误差扩散;步骤4,停止高频振荡器;步骤5,采用线性反馈移位寄存器保证游程长度,使用的生成多项式是G(X)= 1+χ"74+χ"75+χ"143+χ"1440 χ代表初始种子数,这个多项式是对应于特征序列长度为 2"144的斐波纳契数列(Fibonacci)特征数;步骤6,判断随机数的所有位是否都经过处理?如果都处理完毕,则执行步骤7, 如果还没有处理完毕,则返回步骤1 ;步骤7,输出随机数。7.如权利要求6所述的真随机数生成方法,其特征在于步骤3中采用安全散列算法获取误差扩散。8.如权利要求6所述的真随机数生成方法,其特征在于步骤5中进一步通过生成多项式对初始种子数作线性反馈运算。本发明的真随机数生成方法及装置,仅使用通用逻辑硬件即可实现亚稳态电路, 简化了硬件结构。同时,通过将初始种子数保存在缓存器中,实现了一次一密,使用生成多项式判断并反馈控制,利用误差扩散过程实现安全散列算法,达到难以复制/预测的随机数效果。


图1为本发明一种真随机数生成方法的硬件连接示意图。图2为本发明一种真随机数生成方法的流程图。
具体实施例方式以下将结合附图对本发明的一种真随机数生成装置作进一步的详细描述。参见图1,所述真随机数生成装置包括高频振荡器、初始种子数生成单元、误差扩散计算单元、线性反馈单元、控制单元以及输出单元,其中控制单元包括一个判断单元。高频振荡器产生的高频振荡信号输入初始种子数生成单元中,初始种子数生成单元与误差扩散计算单元电连接,由初始种子数生成单元生成的初始种子数被发送给误差扩散计算单元,误差扩散计算单元的输出连接线性反馈单元,线性反馈单元将误差扩散计算单元的输出反馈给控制单元进行判断。初始种子数生成单元包括亚稳态电路和缓存器,亚稳态电路用于得到难以复现的初始种子数,并保存在所述缓存器中,每次执行后都会被复位,保证了 “一次一密”。优选误差扩散计算单元包括组合电路和时序电路,其中组合电路由异或门、同或门和加法器构成,时序电路由移位器和寄存器构成。线性反馈单元包括移位寄存器,以保证游程长度满足需求。控制单元控制高频振荡器产生高频振荡信号,该高频振荡信号用来产生不同的高频时钟域间的亚稳态,其包括判断单元,用于判断随机数的所有位是否都已经处理完毕。控制单元与随机数输出单元电连接,以便将处理完毕的随机数输出。本发明还提供一种真随机数生成方法,该方法包括如下步骤步骤S10,每次准备生成随机数的时候,启动高频振荡器,产生高频振荡信号;
步骤S20,利用亚稳态电路产生初始种子数;步骤S30,计算误差扩散,在本发明实施例中,优选使用消息摘要MD5等安全散列算法SHA作误差扩散;步骤S40,停止高频振荡器;步骤S50,采用线性反馈移位寄存器保证游程长度,使用的生成多项式是G(X) =1+χ"74+χ"75+χ"143+χ"1440 χ代表初始种子数,这个多项式是对应于特征序列长度为 2~144的斐波纳契数列(Fibonacci)特征数。步骤S60,判断随机数的所有位是否都经过处理?如果都处理完毕,则执行步骤 S70,如果还没有,则返回步骤S10。步骤S70,输出随机数。本发明的真随机数生成装置利用“生成多项式”对“初始种子数”作加法移位等线性反馈运算,得到的值进一步利用消息摘要MD5等安全散列算法SHA作误差扩散,得到满足需要的随机输出。在此过程中,由高频振荡器亚稳态产生的初始种子数是难以精确重现的, 线性反馈和散列杂凑算法保证了误差扩散的有效性。以上通过具体实施方式
对本发明进行了详细的说明,但这些并非构成对本发明的限制。本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围。
权利要求
1.一种真随机数生成装置,其特征在于包括高频振荡器、初始种子数生成单元、误差扩散计算单元、线性反馈单元、控制单元和随机数输出单元;所述高频振荡器的输出端连接所述初始种子数生成单元的输入端,所述初始种子数生成单元的输出端连接所述误差扩散计算单元的输入端;所述误差扩散计算单元的输出端连接所述线性反馈单元,所述线性反馈单元的输出端连接所述控制单元,所述控制单元连接所述随机数输出单元。
2.如权利要求1所述的真随机数生成装置,其特征在于所述初始种子数生成单元包括亚稳态电路和缓存器,所述亚稳态电路的输出端与所述缓存器输入端连接。
3.如权利要求1或2所述的真随机数生成装置,其特征在于所述线性反馈单元包括移位寄存器。
4.如权利要求1所述的真随机数生成装置,其特征在于所述控制单元包括判断单元。
5.如权利要求1所述的真随机数生成装置,其特征在于所述误差扩散计算单元包括组合电路和时序电路,其中所述组合电路由异或门、与非门、选择器和加法器构成,所述时序电路由移位器和寄存器构成。
6.一种真随机数生成方法,其特征在于该方法包括如下步骤步骤1,每次准备生成随机数的时候,启动高频振荡器,产生高频振荡信号;步骤2,利用亚稳态电路产生初始种子数;步骤3,计算误差扩散;步骤4,停止高频振荡器;步骤5,采用线性反馈移位寄存器保证游程长度;步骤6,判断随机数的所有位是否都经过处理?如果都处理完毕,则执行步骤7,如果还没有处理完毕,则返回步骤1 ;步骤7,输出随机数。
7.如权利要求6所述的真随机数生成方法,其特征在于步骤3中采用安全散列算法获取误差扩散。
8.如权利要求6所述的真随机数生成方法,其特征在于步骤5中进一步通过生成多项式对初始种子数作线性反馈运算。
全文摘要
本发明涉及一种真随机数生成方法及装置,所述装置包括高频振荡器、初始种子数生成单元、误差扩散计算单元、线性反馈单元、控制单元和随机数输出单元;高频振荡器的输出端连接所述初始种子数生成单元的输入端,所述初始种子数生成单元的输出端连接所述误差扩散计算单元的输入端;所述误差扩散计算单元的输出端连接所述线性反馈单元,所述线性反馈单元的输出端连接所述控制单元,所述控制单元连接所述随机数输出单元。该装置仅使用通用逻辑硬件可实现亚稳态电路,简化了硬件结构;通过将初始种子数保存在每次复位的缓存器中,实现了一次一密,使用生成多项式判断并反馈控制,利用误差扩散过程实现安全散列算法,达到难以复制/预测的随机数效果。
文档编号G06F7/58GK102479067SQ20101055997
公开日2012年5月30日 申请日期2010年11月25日 优先权日2010年11月25日
发明者伍骏, 李林, 胡健, 胡兴微, 蒋玉东, 陈煜 申请人:上海宇芯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1