1.本发明属于集成电路技术领域,尤其涉及一种多熵源真随机数生成器、控制方法、介质、设备及终端。
背景技术:2.目前,随机数在现代密码学、信息加密通信系统、智能终端、科学实验等方面都有着广泛的应用和举足轻重的地位。随机数发生器(random number generator,rng)是密码系统的关键组件,然而在随机数发生器的应用中,伪随机数发生器prng不适合对安全性要求较高的场景;真随机数发生器trng受制于较高的硬件要求而无法得到大量推广。因此,需要提出一种安全快速实用的便携式真随机数发生器,填补面向消费者的高品质trng市场空缺。
3.通过上述分析,现有技术存在的问题及缺陷为:
4.(1)现有的伪随机数发生器prng不适合对安全性要求较高的场景。
5.(2)真随机数发生器trng受制于较高的硬件要求而无法得到大量推广。
技术实现要素:6.针对现有技术存在的问题,本发明提供了一种多熵源真随机数生成器、控制方法、介质、设备及终端,尤其涉及一种基于sm3的多熵源真随机数生成器、控制方法、介质、设备及终端。
7.本发明是这样实现的,一种多熵源真随机数生成器的控制方法,所述多熵源真随机数生成器的控制方法包括以下步骤:
8.步骤一,利用物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;
9.步骤二,利用认证通信模块进行上位机对下位机的认证通讯处理,并利用采集量化模块进行物理随机源的采样量化处理;
10.步骤三,利用在线检测模块对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;
11.步骤四,利用后处理模块消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。
12.进一步,所述步骤一中采用电阻热噪声、器件空间角度变化的物理抖动和放射性衰变三类熵源,将三者异或的结果作为一轮采样量化结果,进行8轮;将得到的8组32bit首尾相连拼接成256bit,作为初始序列。
13.进一步,所述步骤二中配置波特率为115200baud,串口数据位为8bit,停止位为1bit。
14.进一步,所述步骤二中的认证通信模块的双方验证通讯处理包括:利用证书颁布机构ca给单片机颁发一个证书,将单片机的公钥和证书的有效期信息用ca生成的私钥进行
sm2签名,即散列后加密;上位机开始请求通信时,单片机将证书发给上位机,上位机用ca的公钥进行验证,如果验签成功,上位机将生成一个nonce,并使用证书里包含的公钥加密nonce和会话密钥;将加密后的结果发给下位机,下位机用自己的私钥k_pri进行解密,再用会话密钥加密nonce;将加密后的结果传给上位机,上位机将自己加密的nonce与接收到的结果进行比对,若相同则证明单片机拥有合法的私钥,下位机认证成功。
15.进一步,所述步骤四中的后处理采用sm3算法,并将上一轮sm3运算过程中的第32次的压缩值混合到下一轮的熵源中,预防回溯攻击。
16.本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
17.物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;利用认证通信模块进行上位机对下位机的认证通讯处理,并利用采集量化模块进行物理随机源的采样量化处理;
18.利用在线检测模块对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;利用后处理模块消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。
19.本发明的另一目的在于提供一种执行所述多熵源真随机数生成器的控制方法的多熵源真随机数生成器,所述多熵源真随机数生成器包括物理熵源模块、认证通信模块、采集量化模块、在线检测模块以及后处理模块;
20.其中,所述物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;
21.所述认证通信模块,用于进行上位机对下位机的认证通讯处理;
22.所述采集量化模块,用于进行物理随机源的采样量化处理;
23.所述在线检测模块,用于对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;
24.所述后处理模块,用于消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。
25.本发明的另一目的在于提供一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机应用所述的多熵源真随机数生成器。
26.本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的多熵源真随机数生成器。
27.结合上述的技术方案和解决的技术问题,请从以下几方面分析本发明所要保护的技术方案所具备的优点及积极效果为:
28.第一、针对上述现有技术存在的技术问题以及解决该问题的难度,紧密结合本发明的所要保护的技术方案以及研发过程中结果和数据等,详细、深刻地分析本发明技术方案如何解决的技术问题,解决问题之后带来的一些具备创造性的技术效果。具体描述如下:
29.(1)生成的随机数质量较高,与市面上已有的trng质量相当。
30.本发明能够批量生成满熵的真随机数序列,通过美国国家标准与技术研究院所发布的nist sp 800-22测试、中华人民共和国密码行业标准发布的gb/t32915-2016-信息安
全技术二元序列随机性检测、德国bsi公司发布的随机数质量标准ais31检测,nist sp 800-90b的熵估计得到的比特熵不小于0.92/bit。
31.(2)生成随机数速率高:直接生成真随机数可达47.8kbps。
32.(3)以linux平台为例,注入熵后lrng真随机数生成速率可达83.2kbps,解决了通用linux系统trng生成速度慢、易阻塞的问题。
33.(4)最终实现的发明体积小,便于携带,填补了面向消费者的高品质trng市场空缺。
34.第二,把技术方案看做一个整体或者从产品的角度,本发明所要保护的技术方案具备的技术效果和优点,具体描述如下:
35.(1)随机数产生的速率高。
36.(2)生成的真随机数质量高。
37.(3)安全性良好:将多种熵源进行异或处理,极大地减小了熵源间的偏置;将sm3压缩第32轮的中间状态混合到下一次生成随机数的熵源中,增大了回溯攻击的难度;拼接为256位,其足够大的输入空间能够抵御穷举攻击。
38.(4)可扩展性与移植性强:可扩展性强,可选外设的拓展口,随意添加熵源,支持十轴传感器、盖革计数器等。自适应性强,可在多平台多种设备上正常工作。软件驱动有人机交互友好的gui界面,易用、易拓展。
39.(5)其他方面:硬件载体成品为u盘式,即插即用,方便快捷;设计的命令行轻量简洁;小型化,硬件开销小,低成本,对消费者比较友好,实用价值高。
40.(6)将sm3应用于随机数产生领域,有利于全面评估sm3算法的安全性,可以有效推动sm3算法在信息安全领域的推广和应用。
附图说明
41.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
42.图1是本发明实施例提供的多熵源真随机数生成器的控制方法流程图;
43.图2是本发明实施例提供的真随机数发生器的整体设计示意图;
44.图3是本发明实施例提供的双方验证通讯处理成功流程图;
45.图4是本发明实施例提供的sm3后处理过程示意图;
46.图5是本发明实施例提供的nist sp800-22测试部分结果截图;
47.图6是本发明实施例提供的1gbit、1.5gbit、2gbit的proportion示意图;
48.图7是本发明实施例提供的ais31测试截图;
49.图8是本发明实施例提供的nist sp800-90b熵估计结果示意图。
具体实施方式
50.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于
限定本发明。
51.针对现有技术存在的问题,本发明提供了一种多熵源真随机数生成器、控制方法、介质、设备及终端,下面结合附图对本发明作详细的描述。
52.一、解释说明实施例。为了使本领域技术人员充分了解本发明如何具体实现,该部分是对权利要求技术方案进行展开说明的解释说明实施例。
53.如图1所示,本发明实施例提供的多熵源真随机数生成器的控制方法包括以下步骤:
54.s101,利用物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;
55.s102,利用认证通信模块进行上位机对下位机的认证通讯处理,并利用采集量化模块进行物理随机源的采样量化处理;
56.s103,利用在线检测模块对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;
57.s104,利用后处理模块消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。
58.如图2所示,本发明实施例提供的多熵源真随机数生成器包括:
59.物理熵源模块,用于选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;
60.认证通信模块,用于进行上位机对下位机的认证通讯处理;
61.采集量化模块,用于进行物理随机源的采样量化处理;
62.在线检测模块,用于对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;
63.后处理模块,用于消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。
64.实施例1
65.(1)伪随机数发生器(pseudo randomnumber generator,prng)无法满足对随机数质量要求较高的系统。
66.prng使用一些初始种子和确定性算法来产生伪随机数,并可以产生高吞吐量。然而,一旦攻击者获得种子,所有安全性都会丢失。因此,使用prng产生密钥是危险的。在安全级别高的密码系统中,通常用trng作为密钥生成器。目前,已有诸多系统平台使用srng提供随机数服务,如linux随机数发生器(lrng)、基于lrng实现android系统的随机数发生器(aprng)、ios系统使用的yarrow、基于yarrow设计的fortuna随机数发生器,以及windows内核的随机数发生器cryptgenrandom。但同时,srng非常依赖于操作系统的随机性以及和用户的交互,熵源不够稳定。
67.为解决上述问题,本发明设计的随机数发生器基于硬件,产生真随机数。
68.(2)现有的真随机数发生器(true randomnumber generator,trng)能产生高质量随机数,但不便于个人用户使用。
69.trng由不可预测的物理过程产生二进制序列,这些物理过程具有统计学随机特性,如热力学噪声、电路噪声、核裂变、光电效应和量子现象,电子电路的非确定性效应,非
确定性事件,如系统时间、硬盘寻道时间、ram内容、用户交互,所产生序列具有分布均匀,不可预测,统计独立三个特征。trng可细分为基于物理源的硬件rng(hardware rng,hrng)和基于外部非物理源的软件rng(software rng,srng)。hrng生成的数据通常具有良好的不可预测性,但存在硬件更新困难、开发成本高等问题。
70.目前用于产生随机数的硬件实现方法有以下几种:
71.1.离散混沌系统的方法:利用具有确定性、类似随机的、非周期的、具有收敛性且对于初始值有极敏感依赖性的动力系统选取混沌作为伪随机数生成器。但其产生的随机数本质上是伪随机数,是通过数学算法实现的,不是真随机数;且混沌电路的实现方法的复杂度很高,功耗面积较大。
72.2.采用相位抖动的方法:基于环形振荡器釆样法产生真随机数,其釆样原理是利用低频时钟釆样环形振荡器的输出信号(存在相位噪声偏移),得到具有一定随机性的输出序列;然而利用相位抖动或振荡器的漂移作为随机源,初始序列具有很大相关性,无法达到足够的随机性能。
73.3.采用亚稳态的方法:产生随机数序列的速度较快,但是易于受压力、温度的影响;布局布线难度较大,一般需要定制电路完成,实用性较低。
74.4.采用热噪声的方法:包括基于自然界的噪声产生真随机数,如电源电压的自激振荡、电阻电容等元件的热噪声等。电路热噪声是由电子布朗运动产生的,其统计特性服从高斯分布,产生的随机数质量良好。
75.结合上述情况,本发明利用多种收集装置对电阻热噪声、物理噪声(抖动)、放射性衰变三种类型的熵源进行收集,并设计电路放大热噪声,用模数转换器adc和气压计、陀螺仪和各种传感器采样量化,得到初始序列。在上位机即电脑端实现了熵检测和后处理模块,得到最终的随机数。
76.(1)熵源选择
77.考虑到成本和可移植性,本发明选用了电阻热噪声、物理噪声和放射性衰变三种类型的熵源。这三类熵源都便宜易得,且在手机等目前移动设备上都具备,方便移植,克服了trng的现有硬件限制。熵源及采集的具体信息如表1所示。
78.表1物理熵源
[0079][0080]
电路中的噪声源多种多样,有些不服从均匀分布,且器件本身的电路特性也会导致采样源数据偏离均匀分布。本发明使用m-lsb、多路物理随机源异或、拼接的方法对原始熵源进行处理,减少各种可能导致的随机数质量下降问题,最终得到256bit初始序列。
[0081]
(2)认证通信模块
[0082]
为保证下位机不会被恶意控制,本发明设计了上位机对下位机的认证模块。图3表示了双方验证通讯处理成功流程:本发明作为证书颁布机构ca,给单片机颁发一个证书,即将单片机的公钥,证书的有效期等信息用本发明ca生成的私钥进行sm2签名(散列再加密)。上位机开始请求通信时,单片机将证书发给上位机,上位机用ca的公钥进行验证,如果验签成功,pc将生成一个nonce,并使用证书里包含的公钥来加密nonce和会话密钥,把加密后的结果发给下位机,下位机用自己生成的私钥k_pri进行解密,再用会话密钥加密nonce,把加密后的结果传给pc,pc端将自己加密的nonce与接收到的结果进行比对,若相同则证明单片机拥有合法的私钥,下位机认证成功。
[0083]
(3)在线检测
[0084]
为增强本发明的鲁棒性,本模块根据中华人民共和国密码行业标准《gm0078-2020密码随机数生成模块设计指南》,对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测,以便在采集量化熵源的物理器件发生故障、熵源不稳定以及攻击者恶意操纵熵源时检测到异常及时报警,停止输出。
[0085]
(4)后处理模块
[0086]
尽管理论上熵源可以提供真正的随机性,但原始随机比特流不可避免地与确定性噪声混合。从宏观上看原始随机比特流是比较均匀的,但为能确保随机数数学上的均匀分布,没有残差相关性,最大可能地保证安全性,消除原始位之间微小偏差,以及防止攻击者加入确定性噪音,用后处理来减少随机序列中的残差相关性,使输出均匀分布(见图4)。
[0087]
实施例2
[0088]
本发明实施例提供的基于sm3的多熵源真随机数生成器,包括物理熵源、认证通
信、采集量化、后处理等模块。
[0089]
发明采用了电阻热噪声、器件空间角度的变化等物理抖动和放射性衰变这三类熵源,每类熵源分别采样32bit,将三者异或的结果作为一轮采样量化结果,进行8轮。把得到的8组32bit首尾相连拼接成256bit作为初始序列。
[0090]
在通信模块,考虑到串口通信距离较短,误码率不大,故配置波特率为115200baud以提供较快的传输速率,另外配置串口数据位为8bit,停止位为1bit。为保证下位机不会被恶意控制,本发明设计了上位机对下位机的认证模块。本发明作为证书颁布机构ca,给单片机颁发一个证书,即将单片机的公钥,证书的有效期等信息用ca生成的私钥进行sm2签名。
[0091]
在输入后处理模块前对序列进行在线检测以保证在熵源稳定的情况下才输出。后处理采用sm3算法,并将上一轮sm3运算过程中的第32次的压缩值混合到下一轮的熵源中,保证了发生器内部状态的前向、后向安全性,同时预防了回溯攻击。
[0092]
此外,设计了轻量简洁的命令行和交互友好的gui界面便于各类用户使用。
[0093]
本发明的另一目的在于以linux平台为例,解决了通用linux系统trng生成速度慢、易阻塞的问题。
[0094]
将sm3应用于随机数产生领域,有利于全面评估sm3算法的安全性,可以有效推动sm3算法在信息安全领域的推广和应用。
[0095]
二、应用实施例。为了证明本发明的技术方案的创造性和技术价值,该部分是对权利要求技术方案进行具体产品上或相关技术上的应用实施例。
[0096]
(1)无需较高电力成本、硬件成本即可为个人用户提供高质量真随机数;
[0097]
(2)可为存在熵池阻塞情况的通用linux平台(包括嵌入式设备)注熵。
[0098]
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
[0099]
三、实施例相关效果的证据。本发明实施例在研发或者使用过程中取得了一些积极效果,和现有技术相比的确具备很大的优势,下面内容结合试验过程的数据、图表等进行描述。
[0100]
(1)生成的随机数质量较高,与市面上已有的trng质量相当。
[0101]
本发明能够批量生成满熵的真随机数序列,通过美国国家标准与技术研究院所发布的nist sp 800-22测试、中华人民共和国密码行业标准发布的gb/t 32915-2016-信息安全技术二元序列随机性检测、德国bsi公司发布的随机数质量标准ais31检测,nist sp 800-90b的熵估计得到的比特熵不小于0.92/bit。
[0102]
1.nist sp 800-22测试结果
[0103]
本发明的测试将显著性水平设定为0.01,分组测试数据总组数为1000,当通过率
大于98.1%时,便通过该项测试。测试完成后,会将结果写入finalanalysisreport.txt文件。
[0104]
nist sp800-22测试部分结果截图如图5所示,数据大小为1gbit具体测试结果如表2所示。
[0105]
表2 nist sp 800-22测试结果
[0106] 测试名称p值proportion结果1频率检测0.739920.990pass2块内频数检测0.911410.998pass3游程检测0.350490.990pass4块内最长游程检测0.017910.997pass5矩阵秩检测0.350490.994pass6离散傅里叶变换检测0.739920.988pass7非重叠模板匹配检测0.50310.995pass8重叠模板匹配检测0.534150.990pass9通用统计检测0.122330.990pass10线性复杂度检测0.350490.993pass11序列检测0.825670.996pass12近似熵检测0.739920.996pass13累加和检测0.300510.994pass14随机游动检测0.49950.995pass15随机游动变式检测0.57560.994pass
[0107]
通过率proportion大于0.981,且p值大于0.01。可以认为本发明设计的随机数发生器能通过nist sp800-22随机性检测。
[0108]
2.gb/t 32915-2016-信息安全技术二元序列随机性检测
[0109]
使用本发明生成的1gbit随机数进行国密gb/t 32915-2016-信息安全技术二元序列随机性检测,结果见表3(仅列出了相比nist sp 800-20的专有项目)。因为p-value均大于0.01,且proportion大于0.981,所以本发明实现的trng通过国密gb/t 32915-2016-信息安全技术二元序列随机性检测。
[0110]
表3 gb/t 32915-2016-信息安全技术二元序列随机性检测结果
[0111]
测试名称p-valueproportion测量结果自相关测试0.34760.991pass扑克测试0.85720.987pass游程分布测试0.69010.996pass二元推导检测0.17560.983pass
[0112]
使用大小为1gbit、1.5gbit、2gbit的随机数数据进行该项测试,并得到各自的通过率proportion如图6所示。
[0113]
在这三次测试中,实际平均通过率proportion大致为0.99,最低通过率proportion为0.987,大于0.981。因此,认为本发明设计的随机数发生器能通过gm/t 0005-2012随机性检测。
[0114]
3.ais31测试及结果
[0115]
ais31检测标准评估一共包含9个检测项目,9个检测项目可分成三个部分:p1:t0、p1:t1-t5、p2-特殊,其中p1中的to至t5测试属于基本检测项目,p2中的t6至t8为特殊检测项目。ais31测试截图如图7所示。
[0116]
ais31测试结果如表4所示,本发明生成的随机数质量良好。
[0117]
表4 ais31测试结果
[0118][0119]
[0120]
4.nist sp800-90b估计及结果
[0121]
对于非独立同分布的数据而言,nist sp800-90b包含10个计算待测序列随机性的熵估计器,分别是最常用值most common value测试,lz78y预测测试,马尔可夫测试markov,压缩测试compression,t元组测试t-turple,lrs测试,窗口中多重最常见预测测试multimcw,滞后预测测试lag,计数型多重卡尔可夫模型预测测试multimmc,碰撞测试collision。待测数据的熵是取10个熵估计器计算结果的最小值。当待测试熵源的统计性质符合或近似90b测试包中某一项检测的预期时,通过90b检测可以得到较为准确的熵估计结果。
[0122]
用本发明生成的448mbits数据进行测试,得到如图8所示的结果。
[0123]
重复多次使用本发明生成真随机数并进行nist sp800-90b检测,得到本发明trng的比特熵的范围在0.93-0.95;同时,对lrng的两个随机数生成器接口进行重复多次nist sp800-90b检测,得到/dev/random和/dev/urandom的比特熵分别在0.93、0.92-0.94,说明本发明实现的trng的质量良好,与/dev/random相当,优于/dev/urandom,对比结果见表5。
[0124]
表5对比lrng的输出与本发明的trng的输出质量
[0125][0126]
(2)生成随机数速率高。
[0127]
直接生成真随机数可达47.8kbps。
[0128]
(3)以linux平台为例,注入熵后lrng真随机数生成速率可达83.2kbps,解决了通用linux系统trng生成速度慢、易阻塞的问题。
[0129]
(4)最终实现的发明体积小,便于携带,填补了面向消费者的高品质trng市场空缺。
[0130]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
技术特征:1.一种多熵源真随机数生成器的控制方法,其特征在于,所述多熵源真随机数生成器的控制方法包括以下步骤:步骤一,利用物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;步骤二,利用认证通信模块进行上位机对下位机的认证通讯处理,并利用采集量化模块进行物理随机源的采样量化处理;步骤三,利用在线检测模块对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;步骤四,利用后处理模块消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。2.如权利要求1所述的多熵源真随机数生成器的控制方法,其特征在于,所述步骤一中采用电阻热噪声、器件空间角度变化的物理抖动和放射性衰变三类熵源,将三者异或的结果作为一轮采样量化结果,进行8轮;将得到的8组32bit首尾相连拼接成256bit,作为初始序列。3.如权利要求1所述的多熵源真随机数生成器的控制方法,其特征在于,所述步骤二中配置波特率为115200baud,串口数据位为8bit,停止位为1bit。4.如权利要求1所述的多熵源真随机数生成器的控制方法,其特征在于,所述步骤二中的认证通信模块的双方验证通讯处理包括:利用证书颁布机构ca给单片机颁发一个证书,将单片机的公钥和证书的有效期信息用ca生成的私钥进行sm2签名,散列再加密;上位机开始请求通信时,单片机将证书发给上位机,上位机用ca的公钥进行验证,如果验签成功,pc将生成一个nonce,并使用证书里包含的公钥加密nonce和会话密钥;将加密后的结果发给下位机,下位机用自己生成的私钥k_pri进行解密,再用会话密钥加密nonce;将加密后的结果传给pc,pc端将自己加密的nonce与接收到的结果进行比对,若相同则证明单片机拥有合法的私钥,下位机认证成功。5.如权利要求1所述的多熵源真随机数生成器的控制方法,其特征在于,所述步骤四中的后处理采用sm3算法,并将上一轮sm3运算过程中的第32次的压缩值混合到下一轮的熵源中,预防回溯攻击。6.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:利用物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;利用认证通信模块进行上位机对下位机的认证通讯处理,并利用采集量化模块进行物理随机源的采样量化处理;利用在线检测模块对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;利用后处理模块消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。7.一种执行权利要求1~5任意一项所述多熵源真随机数生成器的控制方法的多熵源真随机数生成器,其特征在于,所述多熵源真随机数生成器包括物理熵源模块、认证通信模块、采集量化模块、在线检测模块以及后处理模块;其中,所述物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源
分别采样32bit,并获得初始序列;所述认证通信模块,用于进行上位机对下位机的认证通讯处理;所述采集量化模块,用于进行物理随机源的采样量化处理;所述在线检测模块,用于对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;所述后处理模块,用于消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。8.一种计算机可读存储介质,储存有指令,当所述指令在计算机上运行时,使得计算机应用如权利要求7所述的多熵源真随机数生成器。9.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求7所述的多熵源真随机数生成器。
技术总结本发明属于集成电路技术领域,公开了一种多熵源真随机数生成器、控制方法、介质、设备及终端,利用物理熵源模块选用电阻热噪声、物理噪声和放射性衰变三类熵源,每类熵源分别采样32bit,并获得初始序列;利用认证通信模块进行上位机对下位机的认证通讯处理,并利用采集量化模块进行物理随机源的采样量化处理;利用在线检测模块对物理随机源采样量化后的输出序列进行频率检测、扑克检测、游程总数检测以及线性复杂度检测;利用后处理模块消除原始位之间微小偏差,减少随机序列中的残差相关性,使输出均匀分布。本发明随机数产生的速率高,生成的真随机数质量高,安全性良好,可扩展性与移植性强,有利于全面评估SM3算法的安全性。有利于全面评估SM3算法的安全性。有利于全面评估SM3算法的安全性。
技术研发人员:苏锐丹 胡夏南 吴灿 董梦迪
受保护的技术使用者:西安电子科技大学
技术研发日:2022.03.19
技术公布日:2022/7/5