CN102479067A - 一种真随机数生成方法及装置 - Google Patents
一种真随机数生成方法及装置 Download PDFInfo
- Publication number
- CN102479067A CN102479067A CN2010105599711A CN201010559971A CN102479067A CN 102479067 A CN102479067 A CN 102479067A CN 2010105599711 A CN2010105599711 A CN 2010105599711A CN 201010559971 A CN201010559971 A CN 201010559971A CN 102479067 A CN102479067 A CN 102479067A
- Authority
- CN
- China
- Prior art keywords
- random number
- unit
- initial seed
- error diffusion
- linear feedback
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明涉及一种真随机数生成方法及装置,所述装置包括高频振荡器、初始种子数生成单元、误差扩散计算单元、线性反馈单元、控制单元和随机数输出单元;高频振荡器的输出端连接所述初始种子数生成单元的输入端,所述初始种子数生成单元的输出端连接所述误差扩散计算单元的输入端;所述误差扩散计算单元的输出端连接所述线性反馈单元,所述线性反馈单元的输出端连接所述控制单元,所述控制单元连接所述随机数输出单元。该装置仅使用通用逻辑硬件可实现亚稳态电路,简化了硬件结构;通过将初始种子数保存在每次复位的缓存器中,实现了一次一密,使用生成多项式判断并反馈控制,利用误差扩散过程实现安全散列算法,达到难以复制/预测的随机数效果。
Description
技术领域
本发明涉及安全加密技术领域,尤其涉及一种真随机数生成方法及装置。
背景技术
随机数是系统进行加密,例如系统利用随机数生成密钥的重要工具,因此随机数生成器是所有加密系统所必备的一个环节。一个随机数生成器必须具有足够安全的能力去防止来自外部或内部的攻击。
随机数生成器应当满足以下最基本的三条安全原则:
1)频率和游程随机性,生成器的输出要具有随机性,满足频率测试和游程测试,针对长游程和刺探攻击保证安全;
2)重构恢复/前向安全性,即使知道生成器在某一特定时刻的状态,也不能由此推断出生成器在此刻以前的输出数;
3)入侵预测/后向安全性,即使知道生成器在某一特定时刻的状态,也不能由此推断出生成器在此刻以后的输出数。
真实的硬件随机数生成器和伪随机数生成器是完全不同的,后者易于用软件实现,可以得到统计上的随机数;但是算法实现公开后,同样的输入会得到同样的输出,难以做到算法随机数序列不可重复。
发明内容
本发明所要解决的技术问题是提供一种结构简单、成本低、性能可靠的真随机数生成方法及装置。
为解决上述技术问题,本发明采取以下技术方案:一种真随机数生成装置,其包括高频振荡器、初始种子数生成单元、误差扩散计算单元、控制单元、随机数输出单元和线性反馈单元;所述高频振荡器的输出端连接所述初始种子数生成单元的输入端,所述初始种子数生成单元的输出端连接所述误差扩散计算单元的输入端;所述误差扩散计算单元的输出端连接所述线性反馈单元,所述线性反馈单元的输出端连接所述控制单元,所述控制单元连接所述随机数输出单元。
所述初始种子数生成单元包括亚稳态电路和缓存器,所述亚稳态电路的输出端与所述缓存器电连接。
所述线性反馈单元包括移位寄存器。
所述控制单元包括判断单元。
所述误差扩散计算单元包括组合电路和时序电路,其中所述组合电路由异或门、同或门和加法器构成,所述时序电路由移位器和寄存器构成。
本发明还提供一种真随机数生成方法,该方法包括如下步骤:
步骤1,每次准备生成随机数的时候,启动高频振荡器,产生高频振荡信号;
步骤2,利用亚稳态电路产生初始种子数;
步骤3,计算误差扩散;
步骤4,停止高频振荡器;
步骤5,采用线性反馈移位寄存器保证游程长度,使用的生成多项式是G(x)=1+x^74+x^75+x^143+x^144。x代表初始种子数,这个多项式是对应于特征序列长度为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+x^74+x^75+x^143+x^144。x代表初始种子数,这个多项式是对应于特征序列长度为2^144的斐波纳契数列(Fibonacci)特征数。
步骤S60,判断随机数的所有位是否都经过处理?如果都处理完毕,则执行步骤S70,如果还没有,则返回步骤S10。
步骤S70,输出随机数。
本发明的真随机数生成装置利用“生成多项式”对“初始种子数”作加法移位等线性反馈运算,得到的值进一步利用消息摘要MD5等安全散列算法SHA作误差扩散,得到满足需要的随机输出。在此过程中,由高频振荡器亚稳态产生的初始种子数是难以精确重现的,线性反馈和散列杂凑算法保证了误差扩散的有效性。
以上通过具体实施方式对本发明进行了详细的说明,但这些并非构成对本发明的限制。本发明的保护范围并不以上述实施方式为限,但凡本领域普通技术人员根据本发明所揭示内容所作的等效修饰或变化,皆应纳入权利要求书中记载的保护范围。
Claims (8)
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中进一步通过生成多项式对初始种子数作线性反馈运算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010559971.1A CN102479067B (zh) | 2010-11-25 | 2010-11-25 | 一种真随机数生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010559971.1A CN102479067B (zh) | 2010-11-25 | 2010-11-25 | 一种真随机数生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102479067A true CN102479067A (zh) | 2012-05-30 |
CN102479067B CN102479067B (zh) | 2016-03-16 |
Family
ID=46091722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010559971.1A Expired - Fee Related CN102479067B (zh) | 2010-11-25 | 2010-11-25 | 一种真随机数生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479067B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103458316A (zh) * | 2013-07-22 | 2013-12-18 | 太原理工大学 | 一种图像加密方法 |
CN104579630A (zh) * | 2013-10-25 | 2015-04-29 | 上海华力创通半导体有限公司 | 系统随机数生成方法 |
CN105005462A (zh) * | 2015-09-06 | 2015-10-28 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
CN112015368A (zh) * | 2020-08-28 | 2020-12-01 | 海光信息技术有限公司 | 一种真随机数发生器及电子设备 |
CN112181362A (zh) * | 2020-09-28 | 2021-01-05 | 苏州矗联电子技术有限公司 | 高可靠的物理随机数发生系统及方法 |
CN113542710A (zh) * | 2021-09-15 | 2021-10-22 | 广州匠芯创科技有限公司 | 基于误差扩散Dither算法的图像处理方法、系统及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991859A (zh) * | 2005-12-30 | 2007-07-04 | 财团法人工业技术研究院 | 随机数产生器及其种子计数值产生单元 |
CN101162998A (zh) * | 2006-10-13 | 2008-04-16 | 上海华虹Nec电子有限公司 | 真随机数发生器 |
CN101473298A (zh) * | 2006-06-20 | 2009-07-01 | Nxp股份有限公司 | 随机数发生器系统、产生随机数的方法 |
WO2009109959A1 (en) * | 2008-03-04 | 2009-09-11 | Sandisk Il Ltd. | Digital random number generator based on digitally-controlled oscillators |
CN202008654U (zh) * | 2010-11-25 | 2011-10-12 | 上海宇芯科技有限公司 | 一种真随机数生成装置 |
-
2010
- 2010-11-25 CN CN201010559971.1A patent/CN102479067B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991859A (zh) * | 2005-12-30 | 2007-07-04 | 财团法人工业技术研究院 | 随机数产生器及其种子计数值产生单元 |
CN101473298A (zh) * | 2006-06-20 | 2009-07-01 | Nxp股份有限公司 | 随机数发生器系统、产生随机数的方法 |
CN101162998A (zh) * | 2006-10-13 | 2008-04-16 | 上海华虹Nec电子有限公司 | 真随机数发生器 |
WO2009109959A1 (en) * | 2008-03-04 | 2009-09-11 | Sandisk Il Ltd. | Digital random number generator based on digitally-controlled oscillators |
CN202008654U (zh) * | 2010-11-25 | 2011-10-12 | 上海宇芯科技有限公司 | 一种真随机数生成装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103458316A (zh) * | 2013-07-22 | 2013-12-18 | 太原理工大学 | 一种图像加密方法 |
CN103458316B (zh) * | 2013-07-22 | 2016-05-04 | 太原理工大学 | 一种图像加密方法 |
CN104579630A (zh) * | 2013-10-25 | 2015-04-29 | 上海华力创通半导体有限公司 | 系统随机数生成方法 |
CN105005462A (zh) * | 2015-09-06 | 2015-10-28 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
CN105005462B (zh) * | 2015-09-06 | 2017-08-08 | 电子科技大学 | 一种混合式随机数发生器及其产生随机数的方法 |
CN112015368A (zh) * | 2020-08-28 | 2020-12-01 | 海光信息技术有限公司 | 一种真随机数发生器及电子设备 |
CN112181362A (zh) * | 2020-09-28 | 2021-01-05 | 苏州矗联电子技术有限公司 | 高可靠的物理随机数发生系统及方法 |
CN113542710A (zh) * | 2021-09-15 | 2021-10-22 | 广州匠芯创科技有限公司 | 基于误差扩散Dither算法的图像处理方法、系统及介质 |
CN113542710B (zh) * | 2021-09-15 | 2022-02-22 | 广州匠芯创科技有限公司 | 基于误差扩散Dither算法的图像处理方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102479067B (zh) | 2016-03-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schellekens et al. | FPGA vendor agnostic true random number generator | |
Golic | New methods for digital generation and postprocessing of random data | |
Sunar et al. | A provably secure true random number generator with built-in tolerance to active attacks | |
Majzoobi et al. | Techniques for design and implementation of secure reconfigurable PUFs | |
CN102479067A (zh) | 一种真随机数生成方法及装置 | |
Acosta et al. | Embedded electronic circuits for cryptography, hardware security and true random number generation: an overview | |
KR101987141B1 (ko) | 난수 발생기 | |
CN105426159A (zh) | 一种基于数字电路的真随机数发生器 | |
Masoodi et al. | An analysis of linear feedback shift registers in stream ciphers | |
WO2007049268A1 (en) | A digital component deterministic pseudo-random clock and noise source device based on a random frequency modulated oscillator | |
CN103019648A (zh) | 一种带有数字后处理电路的真随机数发生器 | |
CN102968290A (zh) | 一种异构轻量级的真随机数产生器 | |
US20140280413A1 (en) | Method for detecting a correlation | |
Balasch et al. | Design and testing methodologies for true random number generators towards industry certification | |
WO2021232255A1 (zh) | 真随机数发生器及电子设备 | |
Yu et al. | Recombination of physical unclonable functions | |
CN100541418C (zh) | 利用亚稳态锁存器生成随机数的方法和装置 | |
EP1451676A2 (en) | Method and apparatus for preventing noise influencing a random number generator based on flip-flop meta-stability | |
Vivek et al. | Design and implementation of physical unclonable function in field programmable gate array | |
Güneysu | True random number generation in block memories of reconfigurable devices | |
Bahadur et al. | Reconfigurable side channel attack resistant true random number generator | |
Kamadi et al. | Implementation of TRNG with SHA-3 for hardware security | |
Zhou et al. | Reliable SoC design and implementation of SHA-3-HMAC algorithm with attack protection | |
CN107678731A (zh) | 一种基于fpga的高频异步随机数发生器 | |
CN202008654U (zh) | 一种真随机数生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160316 Termination date: 20181125 |
|
CF01 | Termination of patent right due to non-payment of annual fee |