CN103034473B - 一种伪随机数生成器 - Google Patents
一种伪随机数生成器 Download PDFInfo
- Publication number
- CN103034473B CN103034473B CN201210549216.4A CN201210549216A CN103034473B CN 103034473 B CN103034473 B CN 103034473B CN 201210549216 A CN201210549216 A CN 201210549216A CN 103034473 B CN103034473 B CN 103034473B
- Authority
- CN
- China
- Prior art keywords
- module
- sequence
- random number
- pseudo
- digital
- 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.)
- Expired - Fee Related
Links
Abstract
本发明公开了一种伪随机数生成器,包括:晶振模块,PROM模块、FPGA模块和DAC模块。该晶振模块用于产生时钟频率;PROM模块用于控制和调用FPGA模块内部的逻辑门电路,以向FPGA模块下发指令;该FPGA模块用于以晶振时钟作为输入;并接收PROM模块下发的指令,根据预设的m序列的本原多项式,生成该m序列所对应的数字信号;该DAC模块用于将FPGA模块输出的数字信号转化为模拟信号并输出,以作为随机数源。本发明的生成器通过硬件来构建伪随机数生成器,其优点是产生的随机序列稳定性好,均匀性强,且基本不受外界影响,抗干扰能力强,且信号产生速率较快且可控,能随时改变随机数的随机性,控制输出形式,在信息安全领域具有很高的实用性。
Description
技术领域
本发明涉及随机数密码学,且特别涉及一种基于m序列的伪随机数生成器。
背景技术
随机数在密码学和安全信息系统中有着广泛的应用,随机数生成器有真随机和伪随机之分。实际上,伪随机数生成器产生的随机数并不是真的随机,且具有周期性,也就是说,其产生的随机数序列总会产生重复,不过如果产生器的周期足够长(至少要远远大于可能采集的随机数的长度),那么这个随机数生成器产生的局部的随机序列也就和真随机序列看起来没有什么区别了。由于伪随机序列具有预见的可确定性、可重复产生和易于设计等特点,在数据传输的误码测试中被广泛采用。伪随机序列的良好统计特性体现在序列中两种元素“0”和“1”的个数几乎相等,若把n个同种元素连续出现叫一个长度为n的游程,则序列中长度为n的游程比长度为n+1的游程多一倍,同时伪随机序列具有类似白噪声的自相关函数。所以用伪随机序列作为通讯的测试信号测得的结果能正确反映传输质量水平。
m序列又叫做伪随机序列、伪噪声码或伪随机码。可以预先确定并且可以重复实现的序列称为确定序列;既不能预先确定又不能重复实现的序列称随机序列;不能预先确定但可以重复产生的序列称伪随机序列。它是目前广泛应用的一种伪随机序列,其在通信领域有着广泛的应用,如扩频通信,卫星通信的码分多址,数字数据中的加密、加扰、同步、误码率测量等领域。
随着计算机技术和半导体集成技术的日益发展,利用硬件来构建真随机数生成器已经逐渐成为新的发展方向。目前世界上已经有一些真随机数产生器。这种利用电路热噪声的随机噪声一般是规定一个鉴别阈值,对物理噪声源进行采样,若采样信号大于阈值,则输出1(或0),反之输出0(或1)。这种方法的缺陷是由于物理噪声源会时刻受到外界环境的影响而变化,使其产生的随机序列稳定性和均匀性不好控制,而且真随机数产生器通常是要求条件苛刻,造价昂贵,不易普及。
发明内容
为了解决现有技术中的上述问题,本发明提供了一种基于m序列的伪随机数生成器,用于提高随机数生成的效率和稳定性。
本发明提供了一种伪随机数生成器,包括:晶振模块(1),可编程存储器(2)、可编程门阵列模块(3)和数模转换器模块(4);
该晶振模块(1)用于产生预设频率的时钟;
该可编程存储器模块(2)用于控制和调用可编程门阵列模块(3)内部的逻辑门电路,以向该可编程门阵列模块(3)下发指令;
该可编程门阵列模块(3)用于以晶振模块(1)产生的时钟作为输入;并接收该可编程存储器模块(2)下发的指令,根据预设的m序列的本原多项式,生成该m序列所对应的数字信号;
该数模转换器模块(4)用于将可编程门阵列模块(3)输出的数字信号转化为模拟信号并输出,以作为随机数源。
该可编程门阵列模块包括:12个m序列等几率随机单元(31)及一个高斯生成单元(32);
每个m序列等几率随机单元(31)产生该m序列的对应的数字信号,且各m序列等几率随机单元(31)产生的m序列的初值不同;
各该m序列等几率随机单元(31)输出至该高斯生成单元(32),由该高斯生成单元(32)对各该m序列等几率随机单元(31)进行随机源的高斯统计分布。
该可编程门阵列模块(3)采用串行或十六位并行输出的方式输出数字信号。
该数模转换器模块(4)用于将可编程门阵列模块3输出的每12位的串行数字信号转换成模拟信号,且该12位数字信号由该12个m序列等几率随机单元(31)分别输出的一位所构成。
该数模转换器模块(4)的输出端还与示波器连接,以通过该示波器进行调试和演示。
该数模转换器模块(4)的输出端还与多道分析仪连接,以通过该多道分析仪对数模转换器模块(4)的输出信号的幅度进行统计,以得到等几率分布图和高斯分布图。
本发明的生成器通过硬件来构建伪随机数生成器,其优点是产生的随机序列稳定性好,均匀性强,且基本不受外界影响,抗干扰能力强,且信号产生速率较快且可控,能随时改变随机数的随机性,控制输出形式,在信息安全领域具有很高的实用性。
附图说明
图1为本发明的伪随机数生成器的结构示意图。
图2所示为本发明的m序列的生成框图。
图3所示为m序列等几率随机单元31和高斯生成单元32的结构示意图。
具体实施方式
体现本发明特征与优点的典型实施例将在以下的说明中详细叙述。应理解的是本发明能够在不同的实施例上具有各种的变化,其皆不脱离本发明的范围,且其中的说明及所附附图在本质上是当作说明之用,而非用以限制本发明。
为了解决现有技术中的上述问题,本发明提供了一种基于m序列的伪随机数生成器,用于提高随机数生成的效率和稳定性。
本发明生成器通过VHDL硬件语言描述m序列,提出一种可以快速生成伪随机数序列,且生成的伪随机数序列具有等几率和高斯分布。
参见图1所示为本发明的生成器的结构示意图,该生成器包括:晶振模块1,PROM(programmableread-onlymemory,可编程序的只读存储器)模块2、FPGA(Field-ProgrammableGateArray),即现场可编程门阵列)模块3和DAC(digitaltoanalogconversion,数模转换器)模块4。
其中,该晶振模块1用于产生时钟频率,如可以为10MHz的频率,也可以为其他的频率。晶振模块1产生10MHz频率的时钟给FPGA模块3做输入,根据实际的需要,用不同频率时钟的晶振模块做输入就可以直接调节随机数的输出速率。
FPGA模块3用于以晶振时钟作为输入,基于m序列理论,用VHDL硬件语言描述,以产生串行或十六位并行输出的二进制数字信号的方波信号。
FPGA模块3具体包括:m序列等几率随机单元31,高斯生成单元32,输出信号类型转化单元33。
参见图3所示为高斯生成单元32和m序列等几率随机单元31的连接示意图,本发明中的FPGA模块3包括12个m序列等几率随机单元31,这些m序列等几率随机单元31基于该m序列产生对应的数字信号,将生成的m序列等几率随机源数字信号汇总到高斯生成单元32进行随机源的高斯统计分布,需要说明的是,这些m序列等几率随机单元31所产生的m序列的初值都不相同,以使得12个m序列等几率随机单元31产生的12个m序列的分布更符合高斯分布。
高斯分布是一种重要的概率分布,一般来说,如果一个量是由许多微小的独立随机因素影响的结果,那么就可以认为这个量具有正态分布。从理论上看,正态分布具有很多良好的性质,许多概率分布可以用它来近似;还有一些常用的概率分布是由它直接导出的,例如对数正态分布、t分布、F分布等。根据中心极限定理:有N个均匀分布的相互独立随机变量,当N很大时,其总和的分布接近高斯分布。试验表明,当N大于等于12时,结果就会比较理想了。所以本发明的m序列等几率随机单元31选取的个数为12,即在FPGA模块3中用VHDL语言描述12个不同初值的随机源相加。以此得到高斯统计分布,高斯生成单元32和m序列等几率随机单元31的输出信号输出至输出信号类型转化单元33进行转化后,输出至DAC模块4,经DAC模块4进行数模转换后,利用多道分析仪采集得到能谱,从而通过硬件得以实现和验证。
PROM模块2用于控制和调用FPGA模块3内部的逻辑门电路,由此实现在无电脑连接的情况下也可以给FPGA模块3下发指令;通过该PROM模块2下发指令可以采用人为调试的方式,或者也可以由在PROM模块2中所写入的程序实现。
FPGA模块3根据PROM模块2所下发的各项指令,用硬件实现VHDL语言的相关描述,输出具有预期VHDL语言描述的方波信号。
电源模块用于给FPGA模块3提供工作所需的3.3V,2.5V或1.2V的稳定电压。
DAC模块4用于将FPGA模块3输出的数字信号量转化为模拟信号量。
本发明中,由于FPGA模块3中包含12个m序列等几率随机单元31以生成m序列的数字信号,故本发明的DAC模块4也相应的设置为12位的数模转换,该12个m序列等几率随机单元31分别输出的一位就构成了一组12位数字信号,FPGA模块3采用串行的方式将这一组12位的信号输出至DAC模块4,DAC模块4就以一组12位为单位进行数模转换,把FPGA模块3输出的每一组12位的串行的数字信号转换成模拟信号。以便能很好的被示波器显示和多道采集,便于后期的数据处理和分析。
该生成器中,实际步骤是把编写好的VHDL语言文件通过软件平台烧到与FPGA模块3硬件匹配的PROM模块2里,再将晶振模块1的产生的时钟输出做为FPGA模块3的时钟,在已编译好的PROM模块2的控制下,调用FPGA模块3的硬件内部的逻辑门电路,实现用VHDL语言编写的文件的输出。由于FPGA模块3是数电芯片,它的输出只能是数字信号,还不能直接被多道分析仪采集和统计处理。所以中间通过DAC模块4实现数字信号向模拟信号的转换,达到可以由多道分析仪进行采集并进行验证。
FPGA模块3在晶振模块1的驱动下产生高低电平的方波信号流,里面包含了随机信息。FPGA模块3的输出信号通过DAC模块4的数模转换,转换成模拟方波信号,即特定字节的数字信号被翻译为对应高度的方波模拟信号。最后通过多道分析仪对模拟信号幅度做统计得到等几率分布图和高斯分布图。从而可验证并实现了m序列的等几率随机性和进一步的高斯统计分布。
根据上述的系统架构,本发明的生成器的工作原理如下:
晶振模块1产生的时钟信号输入到FPGA模块3中,在电源模块的供电和PROM模块2的配置下,FPGA模块3对PROM模块2的数据进行处理,将生成的数字信号输出给DAC模块4,DAC模块4将数字信号量转换为模拟信号量,最终将DAC模块4的输出作为随机源的总输出。
本发明中的伪随机序列采用的m序列,是一种线形移位寄存器序列,由周期为2n-1的m序列发生器通过n级移位寄存器组成,m序列的生成是在FPGA模块3中采用VHDL语言进行实现。
m序列的特点是:由n个比特所能组成的所有序列(除全0序列外)都会在m序列的一个周期内遍历,且相应的前后位置固定。其平衡性特性为:在一个周期中,m序列的1出现的次数为2n-1次;0出现的次数为2n-1-1次(即0比1少出现一次)。
对于m序列来说,只要找到了本原多项式,就能由它构成m序列产生器。但是寻找本原多项式并不是很简单的,经已有数据和资料整理得下表,参见表1所示为20-225的m序列的本原多项式及其对应周期的示意图。
表1
由上表可知,通过取不同的n值,可以产生不同长度的序列,从而控制了其随机性,n越大随机性越好。
本发明的一实施例中,优选的m序列的本原多项式为f(X)=X21+X2+1,其周期长度为2097151,其生成框图如图2所示。该m生成序列在FPGA中实现较为简单,每一个移位寄存器的每个节点都由一个D触发器实现。
以下以n=21时实现m序列的VHDL语言,其描述如下,其采用串行输出的方式:
n取其它值方法与上同理。
若想输出是十六位并行的,只需在其基础上添加些语句即可,具体要添加的主要语句是:
endprocess;--通过上述语句实现将串行输出转换为16位并行输出
由于本发明的生成器采用的二进制输出频率是10MHz,即与输入的晶振时钟频率相同。所以可以通过选用不同频率的晶振(或通过分频等语言描述)控制随机序列输出速率。
本发明的随机数生成器采用m序列的思想,应用m序列理论并结合VHDL硬件语言的简单描述,实现了随机性较好的随机源,其伪随机的周期可达2n-1,可在通信、雷达、系统可靠性测试和加密解密等方面有广泛应用。
此外,本发明的生成器通过多道采集方法进行验证,证实其随机性基本满足等几率统计分布,可以实现统计上按预期比例分布的控制,进一步可以产生满足高斯分布的信号。
本发明的生成器通过硬件来构建伪随机数生成器,其优点是产生的随机序列稳定性好,均匀性强,且基本不受外界影响,抗干扰能力强,且信号产生速率较快且可控,能随时改变随机数的随机性,控制输出形式,在信息安全领域具有很高的实用性。
本领域技术人员应当意识到在不脱离本实用新型所附的权利要求所揭示的本实用新型的范围和精神的情况下所作的更动与润饰,均属本实用新型的权利要求的保护范围之内。
Claims (5)
1.一种伪随机数生成器,其特征在于,包括:晶振模块(1),可编程存储器模块(2)、可编程门阵列模块(3)和数模转换器模块(4);
该晶振模块(1)用于产生预设频率的时钟;
该可编程存储器模块(2)用于控制和调用可编程门阵列模块(3)内部的逻辑门电路,以向该可编程门阵列模块(3)下发指令;
该可编程门阵列模块(3)用于以晶振模块(1)产生的时钟作为输入;并接收该可编程存储器模块(2)下发的指令,根据预设的m序列的本原多项式,生成该m序列所对应的数字信号;
该数模转换器模块(4)用于将可编程门阵列模块(3)输出的数字信号转化为模拟信号并输出,以作为随机数源;
其中该可编程门阵列模块包括:12个m序列等几率随机单元(31)、一个高斯生成单元(32)和输出信号类型转化单元(33);
每个m序列等几率随机单元(31)产生该m序列的对应的数字信号,且各m序列等几率随机单元(31)产生的m序列的初值不同;
各该m序列等几率随机单元(31)输出至该高斯生成单元(32),由该高斯生成单元(32)对各该m序列等几率随机单元(31)进行随机源的高斯统计分布;
该m序列等几率随机单元(31)和高斯生成单元(32)的输出信号输出至输出信号类型转化单元(33)进行转化后,输出至该数模转换器模块(4)。
2.根据权利要求1所述的伪随机数生成器,其特征在于,该可编程门阵列模块(3)采用串行或十六位并行输出的方式输出数字信号。
3.根据权利要求1所述的伪随机数生成器,其特征在于,该数模转换器模块(4)用于将可编程门阵列模块(3)输出的每12位的串行数字信号转换成模拟信号,且该12位数字信号由该12个m序列等几率随机单元(31)分别输出的一位所构成。
4.根据权利要求1所述的伪随机数生成器,其特征在于,该数模转换器模块(4)的输出端还与示波器连接,以通过该示波器进行调试和演示。
5.根据权利要求1所述的伪随机数生成器,其特征在于,该数模转换器模块(4)的输出端还与多道分析仪连接,以通过该多道分析仪对数模转换器模块(4)的输出信号的幅度进行统计,以得到等几率分布图和高斯分布图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549216.4A CN103034473B (zh) | 2012-12-17 | 2012-12-17 | 一种伪随机数生成器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210549216.4A CN103034473B (zh) | 2012-12-17 | 2012-12-17 | 一种伪随机数生成器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103034473A CN103034473A (zh) | 2013-04-10 |
CN103034473B true CN103034473B (zh) | 2015-11-25 |
Family
ID=48021403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210549216.4A Expired - Fee Related CN103034473B (zh) | 2012-12-17 | 2012-12-17 | 一种伪随机数生成器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103034473B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103235863B (zh) * | 2013-05-10 | 2016-11-23 | 中国科学院高能物理研究所 | 模拟能谱的信号源系统 |
CN105302521A (zh) * | 2015-11-04 | 2016-02-03 | 上海电机学院 | 基于fpga的伪码产生电路 |
US11017289B2 (en) * | 2016-05-09 | 2021-05-25 | 1Qb Information Technologies Inc. | Method and system for improving a policy for a stochastic control problem |
CN111026360B (zh) * | 2019-11-01 | 2023-03-10 | 深圳震有科技股份有限公司 | 硬件随机数产生器、产生方法及装置、计算机设备 |
CN114416024B (zh) * | 2022-01-24 | 2022-12-02 | 扬州宇安电子科技有限公司 | 一种结合高斯分布及伪随机分布的噪声调制方法及调制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910056B1 (en) * | 2001-01-29 | 2005-06-21 | Altera Corporation | Method and apparatus for implementing a multi-step pseudo random sequence generator |
CN102468806A (zh) * | 2010-11-03 | 2012-05-23 | 北京普源精电科技有限公司 | 一种白噪声信号发生器 |
CN102736891A (zh) * | 2011-12-22 | 2012-10-17 | 云南大学 | 一种并行可调节的伪随机序列发生器设计 |
-
2012
- 2012-12-17 CN CN201210549216.4A patent/CN103034473B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6910056B1 (en) * | 2001-01-29 | 2005-06-21 | Altera Corporation | Method and apparatus for implementing a multi-step pseudo random sequence generator |
CN102468806A (zh) * | 2010-11-03 | 2012-05-23 | 北京普源精电科技有限公司 | 一种白噪声信号发生器 |
CN102736891A (zh) * | 2011-12-22 | 2012-10-17 | 云南大学 | 一种并行可调节的伪随机序列发生器设计 |
Non-Patent Citations (1)
Title |
---|
《基于FPGA的高斯白噪声发生器设计》;申艳,王新民,陈后金;《现代电子技术》;20091231(第23期);第1-2节,第3节第3段,图1,图5-6 * |
Also Published As
Publication number | Publication date |
---|---|
CN103034473A (zh) | 2013-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034473B (zh) | 一种伪随机数生成器 | |
CN102637122B (zh) | 基于物理噪声的奇偶性生成真随机数的方法及其系统 | |
CN105404495B (zh) | 用于调制宽带转换器的高速伪随机序列发生器及发生方法 | |
CN107340505A (zh) | 一种雷达信号的产生结构及方法 | |
CN107819456B (zh) | 一种基于fpga进位链的高精度延时产生器 | |
CN104569900B (zh) | 智能电能表动态误差测试装置 | |
CN105045561A (zh) | 一种伪随机数产生方法 | |
CN104598198A (zh) | 一种真随机数发生器 | |
CN203025254U (zh) | 一种基于调制双稳态随机共振原理的微弱信号检测电路 | |
CN101882062A (zh) | 真随机比特流发生器 | |
US20130191427A1 (en) | Pseudo-noise generator | |
CN103427795A (zh) | 一种矩阵脉冲信号产生电路和产生方法 | |
CN208888796U (zh) | 一种真随机数发生器 | |
CN104182203A (zh) | 真随机数的产生方法和装置 | |
Nayak et al. | Adequacy assessment of wind energy conversion system through simulating wind speed using weibull distribution | |
CN102111129B (zh) | 具有输出噪声信号功能的信号发生器和输出噪声信号的方法 | |
CN106598134B (zh) | 一种数字式相参窄脉冲发生装置 | |
CN202772870U (zh) | 一种基于sopc的任意波形信号源装置 | |
Visan et al. | Direct sequence spread spectrum communication module for efficient wireless sensor networks | |
CN213637693U (zh) | 时钟自测fpga | |
CN107608657A (zh) | 一种基于时幅转换的可调真随机数发生系统 | |
CN100407601C (zh) | 一种模拟光信号误码的装置和方法 | |
CN106897114A (zh) | 一种基于fpga的实时仿真器的数模接口及其驱动方法 | |
CN102916681B (zh) | 一种脉宽可调的nrz/rz码转换装置 | |
RU99672U1 (ru) | Генератор случайных чисел |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 Termination date: 20181217 |