CN110955408A - 一种基于Xilinx FPGA的真随机数生成方法和系统 - Google Patents
一种基于Xilinx FPGA的真随机数生成方法和系统 Download PDFInfo
- Publication number
- CN110955408A CN110955408A CN201911211407.8A CN201911211407A CN110955408A CN 110955408 A CN110955408 A CN 110955408A CN 201911211407 A CN201911211407 A CN 201911211407A CN 110955408 A CN110955408 A CN 110955408A
- Authority
- CN
- China
- Prior art keywords
- data
- fpga chip
- power supply
- random number
- fpga
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Analogue/Digital Conversion (AREA)
Abstract
本发明公开了一种基于Xilinx FPGA的真随机数生成器的方法和装置,其方法包括如下步骤,步骤一,ADC对开关电源的输出电源的数据进行采集并转换成数字信号数据,步骤二,数字信号数据通过FPGA芯片的内部软件的数据模数据模数采集控制模块、数据融合算法进行不改变随机性的操作,步骤三,FPGA芯片将数据提供给相关设备,其系统包括FPGA芯片的最小工作系统和FPGA芯片内的内部软件,所述FPGA芯片上设置有ADC,所述内部软件包括数据模数采集控制模块、数据融合算法,所述ADC对FPGA芯片的最小工作系统的输出电源进行采样。本发明,成本较低,随机数真实性不受外界环境影响和干扰,而且能够产生带宽较大的随机数。
Description
技术领域
本发明涉及高速数据通信技术领域,具体为一种基于Xilinx FPGA的真随机数生成方法和系统。
背景技术
真随机数在统计模拟随机抽样、专用算法、通信加密等领域中具有重要的作用,通过随机抽样,可以获得统计系统特性,算法的完备健壮性,尤其在通信领域,真随机数可以作为序列密码的产生、主机密码系统中密钥的产生、密钥分配、签名和鉴别重要组成部分。
目前的真随机数生成器基本的设计方案有:
基于光子的真随机数生成器,采用激光器激发生成光子,光子通过光束分束器时,会有50%的概率通过,50%的概率产生反射,通过控制激光器产生光子的数量(最小可以到单光子级别),这些光子通过光束分束器的数量是随机的,光束分束器连接多个单光子探测器,当单光子探测器检测到光子时,会产生一个宽度为30ns左右的脉冲,将这些脉冲进行整形,并由数字电路 (FPGA或者高速逻辑门)采集,传输或存储至需要的场景。
该方法的缺点:设备结构复杂,成本较高,激光器,单光子探测器都属于高精密设备,成本较高,而且需要定制外围信号调理和数据缓存系统。
内温度噪声的随机数生成器,采用片内温度传感器作为噪声源,由ADC 采样,将模拟信号量化成数字信号,根据ADC的量化误差以及环境温度的波动,采样获得随机数据。
该方案缺点:随机数真实性受环境影响较大,当外部温度波动较大而且呈周期性变化时,得到的可能是周期性的数据;随机数生成带宽较低,单片机性能有限,而且指令为顺序执行,效率较低;温度在一个环境中,温度的变化几乎不能突变,在短时间连续采样,得到的数据可能是完全相同,这在一定程度上限制了数据的随机特性。而且在高速数据传输时,所需的加密数据带宽要求大的情况下不能适用。
获取电子元件(晶体管,电阻电容等)内部自由电子运动,自然界声音等生成模拟信号,并采样,将获得模拟信号进行放大后采样,后处理得到随机数。
该方案缺点:将元件中自由电子运动和有效传输信号分离过于困难,电子的布朗运动相对有效信号十分微弱,几乎难以检测到,自然界中信号可能会受到周期信号的干扰,从而采集信号的主要成分不是随机信号,且随机数生成的带宽(单位时间内随机数生成的数据量)有限。
发明内容
本发明的目的在于提供一种基于Xilinx FPGA的真随机数生成方法和系统,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于Xilinx FPGA的真随机数生成方法,包括如下步骤:
步骤一,ADC对开关电源的输出电源的数据进行采集并转换成数字信号数据;
步骤二,数字信号数据通过FPGA芯片的内部软件的数据模数采集控制模块、高速缓存控制模块、数据融合算法进行不改变随机性的操作;
步骤三,FPGA芯片将数据提供给所需设备。
优选的,所述数据融合算法的计算方法为ADC对FPGA芯片的开关电源的输出电源的数据循环采样,得到采样数据多个采集通道的数据,将一次采样的其中两个通道的单字节的数据进行bit位的拆分并依次交叉拼接结合,作为一组数据,再将多个通道的数据之间进行两两结合,交叉拼接顺序对调,可以得到4字节数据,在充分利用FPGA芯片采集通道的情况下,一共可以得到25组源数据,按照前面描述的数据处理方法,最多可以得到325组处理后的数据,一共1300字节。
优选的,所述FPGA芯片为12位,采样率为1Msps,参考电压1.25V,对电压敏感度为UV级。
一种基于Xilinx FPGA的真随机数生成系统,包括FPGA芯片的最小工作系统和FPGA芯片内的内部软件,所述FPGA芯片上设置有ADC,所述内部软件包括数据模数采集控制模块、高速缓存控制模块、数据融合算法,所述ADC 对FPGA芯片的最小工作系统的输出电源进行采样。
优选的,所述FPGA芯片的最小工作系统包括FPGA芯片、输入电源、对输入电源的电压和电流调整的开关电源,所述ADC对开关电源的输出电源进行采样。
与现有技术相比,本发明的有益效果是:
本发明,成本较低,随机数真实性不受外界环境影响和干扰,而且能够产生带宽较大的随机数。
附图说明
图1为本发明的真随机数生成方法流程图;
图2为本发明的硬件结构示意图;
图3为本发明的内部软件逻辑结构图;
图4为本发明的开关电源电路图;
图5为本发明的数据融合算法的示例图;
图6为本发明的模拟生成随机数结果示例图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-5,本发明提供一种技术方案:一种基于Xilinx FPGA的真随机数生成方法,包括如下步骤:
步骤一,ADC对开关电源的输出电源的数据进行采集并转换成数字信号数据;
步骤二,数字信号数据通过FPGA芯片的内部软件的数据模数采集控制模块、高速缓存控制模块、数据融合算法进行不改变随机性的操作;
步骤三,FPGA芯片将数据提供给所需设备。
具体的,数据融合算法的计算方法为ADC对FPGA芯片的开关电源的输出电源的数据循环采样,得到采样数据多个采集通道的数据,将一次采样的其中两个通道的单字节的数据进行bit位的拆分并依次交叉拼接结合,作为一组数据,再将多个通道的数据之间进行两两结合,交叉拼接顺序对调,可以得到4字节数据,在充分利用FPGA芯片采集通道的情况下,一共可以得到25 组源数据,按照前面描述的数据处理方法,最多可以得到325组处理后的数据,一共1300字节,FPGA芯片内ADC采样率为1Msps,则数据生成带宽为 1.2695GB/s。
具体的,FPGA芯片为12位,采样率为1Msps,参考电压1.25V,对电压敏感度为UV级,对于FPGA芯片容许的电压纹波在±5%的电压变化范围内,在这个范围内会产生值为±164的采样数值的变化,在硬件设计允许的电源纹波范围内,对FPGA芯片内部多路供电电压进行轮流采样,对于高位数据(12bit 的高4bit),变化较小或者可能不变,因此将高位数据舍弃,低数据位的数据则包含电源随机噪声的采样值,这部分为真随机数据,将该部分数据取出即可发送到所需的设备端以供使用。
一种基于Xilinx FPGA的真随机数生成系统,包括FPGA芯片的最小工作系统和FPGA芯片内的内部软件,FPGA芯片上设置有ADC,内部软件包括数据模数采集控制模块、高速缓存控制模块、数据融合算法,ADC对FPGA芯片的最小工作系统的输出电源进行采样。
具体的,FPGA芯片的最小工作系统包括FPGA芯片、输入电源、对输入电源的电压和电流调整的开关电源,ADC对开关电源的输出电源进行采样。
图6为模拟生成随机数结果示例图:其中vccint,vccux,vcco_0,vcco_1 分别代表开关电源的输出电源采集转换得到的数据,将这些数据按照步骤二中描述的方法进行融合计算,即得到多组随机数据。在源数据是随机数的基础上,即使得到数据拼接的规律,逆向变化得到的数据依然是随机数,不会对加密通信带来隐患。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种基于Xilinx FPGA的真随机数生成方法,其特征在于包括如下步骤:
步骤一,ADC对开关电源的输出电源的数据进行采集并转换成数字信号数据;
步骤二,数字信号数据通过FPGA芯片的内部软件的数据模数采集控制模块、高速缓存控制模块、数据融合算法进行不改变随机性的操作;
步骤三,FPGA芯片将数据提供给所需设备。
2.根据权利要求1所述的一种基于Xilinx FPGA的真随机数生成方法,其特征在于:所述数据融合算法的计算方法为ADC对FPGA芯片的开关电源的输出电源的数据循环采样,得到采样数据多个采集通道的数据,将一次采样的其中两个通道的单字节的数据进行bit位的拆分并依次交叉拼接结合,作为一组数据,再将多个通道的数据之间进行两两结合,交叉拼接顺序对调,可以得到4字节数据,在充分利用FPGA芯片采集通道的情况下,一共可以得到25组源数据,按照前面描述的数据处理方法,最多可以得到325组处理后的数据,一共1300字节。
3.根据权利要求1所述的一种基于Xilinx FPGA的真随机数生成方法,其特征在于:所述FPGA芯片为12位,采样率为1Msps,参考电压1.25V,对电压敏感度为UV级。
4.一种基于Xilinx FPGA的真随机数生成系统,其特征在于包括FPGA芯片的最小工作系统和FPGA芯片内的内部软件,所述FPGA芯片上设置有ADC,所述内部软件包括数据模数采集控制模块、高速缓存控制模块、数据融合算法,所述ADC对FPGA芯片的最小工作系统的输出电源进行采样。
5.根据权利要求4所述的一种基于Xilinx FPGA的真随机数生成系统,其特征在于:所述FPGA芯片的最小工作系统包括FPGA芯片、输入电源、对输入电源的电压和电流调整的开关电源,所述ADC对开关电源的输出电源进行采样。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911211407.8A CN110955408A (zh) | 2019-12-02 | 2019-12-02 | 一种基于Xilinx FPGA的真随机数生成方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911211407.8A CN110955408A (zh) | 2019-12-02 | 2019-12-02 | 一种基于Xilinx FPGA的真随机数生成方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110955408A true CN110955408A (zh) | 2020-04-03 |
Family
ID=69979553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911211407.8A Pending CN110955408A (zh) | 2019-12-02 | 2019-12-02 | 一种基于Xilinx FPGA的真随机数生成方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110955408A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116298811A (zh) * | 2023-03-31 | 2023-06-23 | 上海威固信息技术股份有限公司 | 一种基于fpga的芯片封装检测系统及其封装方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1922570A (zh) * | 2004-02-12 | 2007-02-28 | 日立超大规模集成电路系统株式会社 | 随机数发生方法和半导体集成电路器件 |
US20090316898A1 (en) * | 2006-09-13 | 2009-12-24 | Astrium Limited | Random number generation |
CN106293617A (zh) * | 2016-08-12 | 2017-01-04 | 上海坚芯电子科技有限公司 | 真随机数发生器 |
CN110286878A (zh) * | 2019-06-25 | 2019-09-27 | 电子科技大学 | Mcu随机间隔转换电桥电压的真随机数产生器及产生方法 |
-
2019
- 2019-12-02 CN CN201911211407.8A patent/CN110955408A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1922570A (zh) * | 2004-02-12 | 2007-02-28 | 日立超大规模集成电路系统株式会社 | 随机数发生方法和半导体集成电路器件 |
US20090316898A1 (en) * | 2006-09-13 | 2009-12-24 | Astrium Limited | Random number generation |
CN106293617A (zh) * | 2016-08-12 | 2017-01-04 | 上海坚芯电子科技有限公司 | 真随机数发生器 |
CN110286878A (zh) * | 2019-06-25 | 2019-09-27 | 电子科技大学 | Mcu随机间隔转换电桥电压的真随机数产生器及产生方法 |
Non-Patent Citations (1)
Title |
---|
赵东亮: "基于混沌激光的一位物理随机数实时提取技术研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116298811A (zh) * | 2023-03-31 | 2023-06-23 | 上海威固信息技术股份有限公司 | 一种基于fpga的芯片封装检测系统及其封装方法 |
CN116298811B (zh) * | 2023-03-31 | 2024-04-02 | 上海威固信息技术股份有限公司 | 一种基于fpga的芯片封装检测系统及其封装方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106354476B (zh) | 基于激光相位涨落的量子随机数发生器和量子随机数生成方法 | |
CN113037463B (zh) | 基于混沌放大量子噪声实时高速生成量子随机码的方法 | |
CN101980146B (zh) | 基于光子数可分辨探测的真随机数发生器 | |
CN110286878B (zh) | Mcu随机间隔转换电桥电压的真随机数产生器及产生方法 | |
CN109240645A (zh) | 一种量子随机数发生器及量子随机数生成方法 | |
CN102637122B (zh) | 基于物理噪声的奇偶性生成真随机数的方法及其系统 | |
CN106444216B (zh) | 多通道光模数转换系统中宽带信号采集通道失配校正方法 | |
CN104581166A (zh) | 一种基于多通道采集影像的压缩成像系统及方法 | |
JPWO2007083417A1 (ja) | 物理乱数生成方法及び物理乱数生成装置 | |
CN105975248A (zh) | 一种基于放大自发辐射的量子随机数发生器和产生方法 | |
CN110955408A (zh) | 一种基于Xilinx FPGA的真随机数生成方法和系统 | |
CN110851111A (zh) | 一种高安全的源无关量子随机数产生装置与方法 | |
AU2018401978A1 (en) | Method and system for generating a random bit sample | |
CN206115423U (zh) | 一种基于放大自发辐射的量子随机数发生器 | |
CN105783953B (zh) | 应用于光纤布拉格光栅波长解调的快速高斯拟合方法 | |
CN108536424B (zh) | 一种基于真空涨落的量子随机数发生器 | |
CN104034936A (zh) | 一种利用光纤测量雷电流参数的装置 | |
CN108037907B (zh) | 一种基于真空并行的量子随机数产生方法 | |
Zhang et al. | FPGA implementation of Toeplitz hashing extractor for real time post-processing of raw random numbers | |
CN113821943A (zh) | Ase噪声量子随机数产生方案的随机性量化模型及方法 | |
CN209265419U (zh) | 一种基于光子自发辐射的高速量子随机数发生器 | |
CN111505701B (zh) | 一种紧凑型加速器束流相位及位置测量系统及方法 | |
CN110286877B (zh) | 一种提高量子随机数发生器量子熵含量的方法 | |
Li et al. | Analysis of the effects of temperature increase on quantum random number generator | |
Sahasranand et al. | Anomaly-aware adaptive sampling for electrical signal compression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200403 |