一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

真随机数生成方法、装置、电子设备、存储介质及系统与流程

2022-06-02 13:02:49 来源:中国专利 TAG:


1.本技术涉及密码学和信息安全领域,特别是涉及一种真随机数生成方法、装置、电子设备、计算机可读存储介质及系统。


背景技术:

2.随机数在保密通信、网络验证码、数值计算、统计分析和信息安全等等诸多方面起着非常重要的作用。目前,在生成随机数时主要是基于硅基puf(physical unclonable function,物理不可克隆函数)电路生成随机数,传统的硅基电学puf电路具有较低的熵值,通常需要使用额外的前处理或后处理熵补偿单元,存在生成效率低、易被木马病毒攻击(即安全性差)等缺陷。
3.因此,如何解决上述技术问题应是本领域技术人员重点关注的。


技术实现要素:

4.本技术的目的是提供一种真随机数生成方法、装置、电子设备、计算机可读存储介质及系统,以提升真随机数的生成效率。
5.为解决上述技术问题,本技术提供一种真随机数生成方法,包括:
6.获取散斑图;其中,所述散斑图由随机编码后光束经过光学物理不可克隆函数器件发生相干多重散射而产生的散射光得到;
7.根据所述散斑图的灰度信息将所述散斑图转换为第一数列;
8.根据安全散列算法的输入数列长度,将所述第一数列划分为多个第二数列;
9.利用安全散列算法分别将多个所述第二数列对应转换成多个随机数列;
10.组合多个所述随机数列形成一个长随机数序列,作为真随机数。
11.可选的,所述根据安全散列算法的输入数列长度,将所述第一数列划分为多个第二数列之前,还包括:
12.确定所述散斑图的最小熵;
13.根据所述最小熵和所述散斑图的像素深度,确定所述真随机数的最优提取率;
14.根据所述第一数列中数据的数量和所述最优提取率,确定所述输入数列长度。
15.可选的,所述根据所述最小熵和所述散斑图的像素深度,确定所述真随机数的最优提取率包括:
16.根据f=e/d,确定所述最优提取率;
17.其中,f为最优提取率,e为最小熵,d为像素深度。
18.可选的,当所述散斑图的数量为多个时,所述组合多个所述随机数列形成一个长随机数序列包括:
19.将每个所述散斑图的多个所述随机数列组合为一个长随机数子序列;
20.将多个所述长随机数子序列组合为一个所述长随机数序列。
21.可选的,所述获取散斑图包括:
22.获取彩色散斑图;
23.对所述彩色散斑图进行灰度转换,形成所述散斑图。
24.可选的,所述根据所述散斑图的灰度信息将所述散斑图转换为第一数列包括:
25.获取所述散斑图中每一个像素的灰度值;
26.将每个所述灰度值转换为进制数;
27.将多个所述进制数组合成所述第一数列。
28.本技术还提供一种真随机数生成装置,包括:
29.获取模块,用于获取散斑图;其中,所述散斑图由随机编码后光束经过光学物理不可克隆函数器件发生相干多重散射而产生的散射光得到;
30.第一转换模块,用于根据所述散斑图的灰度信息将所述散斑图转换为第一数列;
31.划分模块,用于根据安全散列算法的输入数列长度,将所述第一数列划分为多个第二数列;
32.第二转换模块,用于利用安全散列算法分别将多个所述第二数列对应转换成多个随机数列;
33.组合模块,用于组合多个所述随机数列形成一个长随机数序列,作为真随机数。
34.本技术还提供一种电子设备,包括:
35.存储器,用于存储计算机程序;
36.处理器,用于执行所述计算机程序时实现上述任一种所述的真随机数生成方法的步骤。
37.本技术还提供一种真随机数生成系统,包括:
38.激光光源、扩束镜、预选器件、光学物理不可克隆函数器件、相机、上述所述的电子设备;所述预选器件为空间光调制器或者数字微镜器件;
39.其中,所述电子设备与所述相机连接,所述扩束镜、所述预选器件、所述光学物理不可克隆函数器件、所述相机均位于所述激光光源发出的光束所在的光路上;所述扩束镜、所述预选器件、所述光学物理不可克隆函数器件、所述相机在所述光路上依次远离所述激光光源。
40.本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种所述的真随机数生成方法的步骤。
41.本技术所提供的一种真随机数生成方法,包括:获取散斑图;其中,所述散斑图由随机编码后光束经过光学物理不可克隆函数器件发生相干多重散射而产生的散射光得到;根据所述散斑图的灰度信息将所述散斑图转换为第一数列;根据安全散列算法的输入数列长度,将所述第一数列划分为多个第二数列;利用安全散列算法分别将多个所述第二数列对应转换成多个随机数列;组合多个所述随机数列形成一个长随机数序列,作为真随机数。
42.可见,本技术中在生成真随机数时,获取散斑图并根据散斑图的灰度信息将散斑图转换为第一数列,然后采用安全散列算法对第一数列进行处理,先根据安全散列算法的输入数列长度将第一数列划分为多个第二数列,再将第二数列转换为随机数列,再对随机数列进行组合得到真随机数,将散斑图转换为第一数列并采用安全散列算法进行处理的整个过程非常适用于随机数的生成,因此本技术真随机数的生成效率高,可达70%以上,并
且,由于本技术中真随机数的熵源为由随机编码后光束经过光学物理不可克隆函数器件发生相干多重散射而产生的散射光得到的散斑图,图中携带的信息量足够多,也使得真随机数的生成效率提高;另外,由于光学物理不可克隆函数器件的安全性高于电学puf电路,因此本技术中得到的真随机数的安全性也有所提升。
43.此外,本技术还提供一种具有上述优点的装置、电子设备、计算机可读存储介质及系统。
附图说明
44.为了更清楚的说明本技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
45.图1为本技术实施例所提供的一种真随机数生成方法的流程图;
46.图2为本技术实施例所提供的长随机数序列的可视化矩阵图;
47.图3为本技术实施例所提供的一种真随机数生成装置的结构框图;
48.图4为本技术实施例所提供的一种电子设备的结构框图;
49.图5为本技术实施例所提供的一种真随机数生成系统的结构示意图;
50.图6为本技术实施例中相机拍摄的散斑图;
51.图7为本技术实施例中空间光调制器加载的伪随机图案。
具体实施方式
52.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
54.正如背景技术部分所述,目前在生成随机数时主要是基于量子原理生成随机数,例如通过干涉仪使激光信号发生干涉,然后利用光电探测器对发生干涉的光信号进行光电转换,形成电信号,进而对电信号进行处理,得到随机数。在生成随机数时,一方面生成方式导致随机数的效率低,另一方面,由于使用熵源为光信号,光信号中携带的信息量少,也使得随机数的生成效率低。
55.有鉴于此,本技术提供了一种真随机数生成方法,请参考图1,包括:
56.步骤s101:获取散斑图;其中,所述散斑图由随机编码后光束经过光学物理不可克隆函数器件发生相干多重散射而产生的散射光得到。
57.利用相机拍摄发生相干多重散射而产生的散射光即可形成散斑图。
58.优选地,散斑图为灰度图像,相较于彩色图像,灰度图只有一个通道,可以简化生成方法。本技术中对获取灰度形式的散斑图的方式不做限定,例如,直接获取的散斑图即为
灰度图像,此时相机拍摄形成的图像可以直接为灰度图像,或者,所述获取散斑图包括:
59.获取彩色散斑图;
60.对所述彩色散斑图进行灰度转换,形成所述散斑图。
61.对彩色散斑图进行灰度转换的方式可参考相关技术,本技术中不再赘述。
62.步骤s102:根据所述散斑图的灰度信息将所述散斑图转换为第一数列。
63.作为一种可实施方式,步骤s102包括:
64.步骤s1021:获取所述散斑图中每一个像素的灰度值。
65.设散斑图中像素的行数为p,列数为q,则像素数目为p
×
q。
66.步骤s1022:将每个所述灰度值转换为进制数。
67.需要说明的是,本技术中对进制数的类型不做限定,可自行选择。例如,可以将每个像素的灰度值转换为二进制数,或者八进制数等等。
68.当将像素的灰度值转换为二进制数时,进制数的长度等于散斑图的像素深度d,像素深度d是灰度由暗到亮的灰阶数,本技术中对像素深度也不做限定,例如像素深度可以为8bit、10bit、12bit、16bit等,对应的,二进制数的长度也为8位、10位、12位、16位等。
69.步骤s1023:将多个所述进制数组合成所述第一数列。
70.第一数列的长度为p
×q×
d,第一数列与进制数的类型相同,为二进制数,或者八进制数等等。
71.步骤s103:根据安全散列算法的输入数列长度,将所述第一数列划分为多个第二数列。
72.第二数列的长度等于输入数列长度,第二数列的长度小于第一数列的长度。
73.设定输入数列长度为l2,则第二数列的数量k=p
×q×
d/l2。
74.步骤s104:利用安全散列算法分别将多个所述第二数列对应转换成多个随机数列。
75.安全散列算法包括多种算法,例如sha(secure hash algorithm,安全散列算法)-256、sha-1、sha-224、sha-384和sha-512等,本技术中对采用的具体算法类型不做限定。
76.随机数列的数量等于第二数列的数量k,随机数列的长度等于安全散列算法的输出数列长度l1。
77.步骤s105:组合多个所述随机数列形成一个长随机数序列,作为真随机数。
78.当所述散斑图的数量为一个时,组合多个所述随机数列形成一个长随机数序列,即,直接将k个随机数列组合形成一个长随机数序列,长随机数序列的长度为k
×
l1,便得到真随机数。
79.当所述散斑图的数量为多个时,所述组合多个所述随机数列形成一个长随机数序列包括:
80.将每个所述散斑图的多个所述随机数列组合为一个长随机数子序列;
81.将多个所述长随机数子序列组合为一个所述长随机数序列。
82.每个散斑图对应得到一个长随机数,当有n(n≥2)个散斑图时即得到n个长随机数,每个长随机数的长度均为k
×
l1,再将n个长随机数组合为一个长随机数序列,得到真随机数。
83.下面对本技术中得到的长随机数序列为真随机数的验证进行阐述。本技术中采用
三种随机测试套件nits,testu01 alphabit,dieharder对长随机数列进行测试,套件参数设置为默认参数。nist测试中的所有15个测试指标对应的uniformity of p-values均大于0.0001且通过率大于98%,表示通过nist测试;testu01 alphabit测试中所有17个测试指标的p-value介于区间[0.001,0.999]内,说明测试通过;dieharder中的所有测试指标对应的p-value值均在区间[0.005,0.095]内,表示dieharder测试通过;因此,长随机数序列通过三种随机测试套件nits,testu01 alphabit,dieharder的测试,证明该长随机数序列是真随机数序列,即生成的随机数为真随机数。
[0084]
本技术中在生成真随机数时,获取散斑图并将散斑图转换为第一数列,然后采用安全散列算法对第一数列进行处理,先根据安全散列算法的输入数列长度将第一数列划分为多个第二数列,再将第二数列转换为随机数列,再对随机数列进行组合得到真随机数,将散斑图转换为第一数列并采用安全散列算法进行处理的整个过程非常适用于随机数的生成,因此本技术真随机数的生成效率高,可达70%以上,并且,由于本技术中真随机数的熵源为由随机编码后光束经过光学物理不可克隆函数器件发生相干多重散射而产生的散射光得到的散斑图,图中携带的信息量足够多,也使得真随机数的生成效率提高;另外,由于光学物理不可克隆函数器件的安全性高于电学puf电路,因此本技术中得到的真随机数的安全性也有所提升。本技术的方法实际真随机数提取率可达70%以上,真随机数产生速率为1gbit/s以上。
[0085]
在上述实施例的基础上,在本技术的一个实施例中,所述根据安全散列算法的输入数列长度,将所述第一数列划分为多个第二数列之前,还包括:
[0086]
确定所述散斑图的最小熵;
[0087]
根据所述最小熵和所述散斑图的像素深度,确定所述真随机数的最优提取率;
[0088]
根据所述第一数列中数据的数量和所述最优提取率,确定所述输入数列长度。
[0089]
最小熵的确定方式可参考相关技术,本技术中不再详细赘述。
[0090]
作为一种可实施方式,最优提取率的确定方式包括:
[0091]
根据f=e/d,确定所述最优提取率;
[0092]
其中,f为最优提取率,e为最小熵,d为像素深度。
[0093]
安全散列算法的输入数列长度为l2为大于或者等于l1/f的整数,其中,l1为安全散列算法的输出数列长度,f为真随机数的最优提取率。
[0094]
以面阵尺寸为2448
×
2048灰度格式的散斑图,sha-256算法为例,其中,相机采集的散斑图以8bit的灰度格式保存,散斑图数量为n,对真随机数生成过程进行阐述。
[0095]
步骤1、灰度提取:对一张散斑图中每一个像素的灰度值转为为8位的二进制数(例如,0转为00000000,255转为11111111),得到长度为2448
×
2048
×
8的二进制数列s1;其中,由于散斑图是8bit的灰度格式,则散斑图像素深度为8。
[0096]
步骤2、确定散斑图的最小熵,计算公式为:
[0097][0098]
式中,e为最小熵,pi表示散斑图中灰度级i的概率。
[0099]
步骤3、确定最优提取率:根据f=e/d,确定散斑图的最优提取率,其中d为像素深度,f为最优提取率。
[0100]
步骤4、确定安全散列算法的输入数列长度:sha-256算法的输出数列长度l1为256,则输入数列长度l2为大于或等于256/f的整数。
[0101]
步骤5、将长度为2448
×
2048
×
8的二进制数列s1划分成k个长度为l2的短数列,k=2448
×
2048
×
8/l2。
[0102]
步骤6、采用sha-256算法处理k个长度为l2的短数列,得到k个长度为256的随机数列s2,并将k个随机数列s2组合成一个长随机数子序列,长随机数子序列的长度为k
×
256。
[0103]
步骤7、对剩余所有散斑图均进行步骤1至步骤6的操作,一共得到n个长度为k
×
256的长随机数子序列,并将n个长随机数子序列组成一个长随机数序列,即得到真随机数。
[0104]
其中,长随机数序列的可视化矩阵示意图如图2所示,该图均匀且无任何特征,表明该真随机数具有良好随机性。
[0105]
下面对本技术实施例提供的真随机数生成装置进行介绍,下文描述的真随机数生成装置与上文描述的真随机数生成方法可相互对应参照。
[0106]
图3为本技术实施例提供的真随机数生成装置的结构框图,参照图3真随机数生成装置可以包括:
[0107]
获取模块100,用于获取散斑图;其中,所述散斑图由随机编码后光束经过光学物理不可克隆函数器件发生相干多重散射而产生的散射光得到;
[0108]
第一转换模块200,用于根据所述散斑图的灰度信息将所述散斑图转换为第一数列;
[0109]
划分模块300,用于根据安全散列算法的输入数列长度,将所述第一数列划分为多个第二数列;
[0110]
第二转换模块400,用于利用安全散列算法分别将多个所述第二数列对应转换成多个随机数列;
[0111]
组合模块500,用于组合多个所述随机数列形成一个长随机数序列,作为真随机数。
[0112]
本实施例的真随机数生成装置用于实现前述的真随机数生成方法,因此真随机数生成装置中的具体实施方式可见前文中的真随机数生成方法的实施例部分,例如,获取模块100,第一转换模块200,划分模块300,第二转换模块400,组合模块500,分别用于实现上述真随机数生成方法中步骤s101,s102,s103,s104和s105,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
[0113]
可选的,真随机数生成装置还包括:
[0114]
第一确定模块,用于确定所述散斑图的最小熵;
[0115]
第二确定模块,用于根据所述最小熵和所述散斑图的像素深度,确定所述真随机数的最优提取率;
[0116]
第三确定模块,用于根据所述第一数列中数据的数量和所述最优提取率,确定所述输入数列长度。
[0117]
可选的,所述第二确定模块具体用于根据f=e/d,确定所述最优提取率;
[0118]
其中,f为最优提取率,e为最小熵,d为像素深度。
[0119]
可选的,当所述散斑图的数量为多个时,组合模块500包括:
[0120]
第一组合单元,用于将每个所述散斑图的多个所述随机数列组合为一个长随机数
子序列;
[0121]
第二组合单元,用于将多个所述长随机数子序列组合为一个所述长随机数序列。
[0122]
可选的,获取模块100包括:
[0123]
第一获取单元,用于获取彩色散斑图;
[0124]
第一转换单元,用于对所述彩色散斑图进行灰度转换,形成所述散斑图。
[0125]
可选的,第一转换模块200包括:
[0126]
第二获取单元,用于获取所述散斑图中每一个像素的灰度值;
[0127]
第二转换单元,用于将每个所述灰度值转换为进制数;
[0128]
第三组合单元,用于将多个所述进制数组合成所述第一数列。
[0129]
下面对本技术实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的真随机数生成方法可相互对应参照。
[0130]
请参考图4,本技术提供的一种电子设备,包括:
[0131]
存储器11,用于存储计算机程序;
[0132]
处理器12,用于执行所述计算机程序时实现上述任一实施例所述的真随机数生成方法的步骤。
[0133]
下面对本技术实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的真随机数生成方法可相互对应参照。
[0134]
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的真随机数生成方法的步骤。
[0135]
请参考图5,本技术还提供一种真随机数生成系统,包括:
[0136]
激光光源1、扩束镜2、预选器件3、光学物理不可克隆函数器件4、相机5、上述实施例所述的电子设备6;所述预选器件3为空间光调制器或者数字微镜器件;
[0137]
其中,所述电子设备6与所述相机5连接,所述扩束镜2、所述预选器件3、所述光学物理不可克隆函数器件4、所述相机5均位于所述激光光源1发出的光束所在的光路上;所述扩束镜2、所述预选器件3、所述光学物理不可克隆函数器件4、所述相机5在所述光路上依次远离所述激光光源1。
[0138]
其中,空间光调制器可以为相位型空间光调制器,或振幅型空间光调制器。
[0139]
相机5的帧率小于或者等于空间光调制器的帧率,以避免采集到相同的散斑图,优选的,相机5的帧率与空间光调制器的帧率保持相同。
[0140]
以预选器件3为空间光调制器为例,对真随机数生成系统的工作过程进行阐述。激光光源1发射出激光光束,激光光束进入到扩束镜2,扩束镜2对激光光束进行扩束,扩束后的光束入射到空间光调制器,空间光调制器连续的对扩束后的光束随机编码,随机编码后的光束入射到光学物理不可克隆函数器件4发生相干多重散射现象而产生散射光,相机5拍摄散射光,得到散斑图,电子设备6从相机5处获取散斑图,并利用散斑图生成真随机数。
[0141]
相机5优选为灰度相机,拍摄的散斑图如图6所示。相机5采用型号可以为gs3-u3-51s5m。
[0142]
当预选器件3为空间光调制器,空间光调制器连续呈现不同的伪随机图案对扩束后的光束进行连续编码,其中,空间光调制器加载的伪随机图案如图7所示。当预选器件3为相位型空间光调制器,则伪随机图案中每个像素点的值随机均匀分布于0~2pi之间,当预
选器件3为振幅型空间光调制器,则伪随机图案中每个像素点的值随机均匀分布于0~1之间。
[0143]
当预选器件3为数字微镜器件(digtial micromirror devices,dmd),每个像素点随机设置为0或1。数字微镜器件优选为高速dmd。
[0144]
光学物理不可克隆函数器件4的材料是一种三维随机散射材料,光学物理不可克隆函数器件4为具有表面微纳结构或内部含有微纳结构的薄膜,使得散斑图复杂度高,最终生成的真随机数随机性能好,能够通过多种权威测试套件的检测。
[0145]
光学物理不可克隆函数器件4的散射光为透射光或反射光。
[0146]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0147]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0148]
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0149]
以上对本技术所提供的真随机数生成方法、装置、电子设备、计算机可读存储介质及系统进行了详细介绍。本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献