随机数的检测装置及方法、存储介质、电子设备与流程
- 国知局
- 2024-07-31 22:38:44
本技术实施例涉及计算机领域,具体而言,涉及一种随机数的检测装置及方法、存储介质、电子设备。
背景技术:
1、随机数生成对于任何安全设备都至关重要。随机数可用于密钥生成、密钥交换、数字签名、加解密等领域,可应用于典型的安全协议,如ipsec、macsec、tls/ssl或无线协议,也在身份验证/密钥交换和数据传输阶段使用。随机数对于密码学、加解密及信息数据安全都有着至关重要的作用。
2、随机数发生器被分为真随机数发生器(trng)以及伪随机数(prng)发生器两种主要类型。相比于prng原理是基于固定算法,trng则利用了物理过程的随机性,熵源一般为不确定的、随机的事件或者一些物理现象,例如热噪声,电路抖动或者原子裂变等。通过这些自然界中无法预测和控制的现象产生随机数序列,这种随机数没有确定的趋势和显著的规律性,不容易被预测和攻击,但同时也不容易控制,安全性一般高于伪随机数。
3、理想的trng是一个在相互独立并且分布均匀的离散随机变量中取值的过程。trng输出的真随机数,一般要满足分布均匀性、相关性、随机性及独立性等要求。trng输出的真随机数,一般要满足分布均匀性、相关性、随机性及独立性等要求。基于这些要求,不同国家对于真随机数的质量有着不同的标准和检查项。
4、在相关技术中(包括硬件和软件检测),其首先对真随机数进行分组,例如分为group1 group2……每次检测都是在一个group内进行,在一个group的最后一个数据时(2048bit时),输出检测结果,然后再进行下一个group的检查。根据随机数的检测标准,对其取任意一段数据,都应该满足各项检测标准。当分别对 group1 和 group2 的数据进行检测时,可能是满足检测要求的,但是当取group1的后半部分数据和group2的前半部分数据进行分析时,则可能出现检测不通过的情况。按照已有技术进行检测,则不会检测报错,因此存在检测漏检或检测漏报的问题,导致存在缺陷的随机数输出,从而引发安全问题。
5、针对相关技术,对随机数的检测存在检测漏检或检测漏报的问题,目前尚未提出有效的解决方案。
6、因此,有必要对相关技术予以改良以克服相关技术中的所述缺陷。
技术实现思路
1、本技术实施例提供了一种随机数的检测装置及方法、存储介质、电子设备,以至少解决相关技术中对随机数的检测存在检测漏检或检测漏报的问题。
2、根据本技术的一个实施例,提供了一种随机数的检测装置,包括:熵源模块,与所述熵源模块连接的检测模块,其中,所述熵源模块,用于执行第一输入步骤:将第一随机数输入至所述检测模块,其中,所述第一随机数为目标随机数中的第n个数据组至第n+m个数据组,所述第n个数据组包括:所述目标随机数中的一个或者连续的多个比特值,所述第n+m个数据组包括:所述目标随机数中的一个或者连续的多个比特值,n、m为正整数;在n依次取2、3、……z的情况下,循环执行所述第一输入步骤,直至所述检测模块确定所述目标随机数的检测未通过,或者,将第z个数据组输入至所述检测模块;所述检测模块,用于确定所述第一随机数的第一检测结果,并根据所述第一检测结果确定所述目标随机数的第二检测结果。
3、在一个示例性实施例中,所述随机数的检测装置,还包括:与所述熵源模块和所述检测模块分别连接的先进先出存储器,其中,所述先进先出存储器,用于存储第二随机数,以及在所述检测模块根据所述第n个数据组至所述第n+m个数据组确定所述第一随机数的第一检测结果之后,将所述目标随机数中的第n个数据组输入至所述检测模块,其中,所述第二随机数为所述目标随机数中的第n个数据组至第n+m个数据组。
4、在一个示例性实施例中,所述熵源模块,还用于在所述检测模块根据所述第n个数据组至所述第n+m个数据组确定所述第一随机数的第一检测结果之后,将第n+m+1个数据组输入至检测模块;所述检测模块,还用于在接收到所述熵源模块输入的第n+m+1个数据组的情况下,将所述第n个数据组丢弃,以确定更新后的第一随机数;根据所述第n+m+1个数据组和/或所述第n个数据组确定所述更新后的第一随机数的第三检测结果,并根据所述第三检测结果确定所述第二检测结果。
5、在一个示例性实施例中,所述检测模块至少包括以下之一:单比特频数检测模块、扑克检测模块、重复计数检测模块,其中,所述单比特频数检测模块,用于根据所述第n+m+1个数据组和所述第n个数据组确定所述更新后的第一随机数的第三检测结果;所述扑克检测模块,用于根据所述第n+m+1个数据组和所述第n个数据组确定所述更新后的第一随机数的第三检测结果;所述重复计数检测模块,用于根据所述第n+m+1个数据组确定所述更新后的第一随机数的第三检测结果。
6、在一个示例性实施例中,所述单比特频数检测模块,还用于确定所述第n+m+1个数据组中的比特值与所述第n个数据组中的比特值是否一致,其中,所述第n+m+1个数据组和所述第n个数据组中均包括:一个比特值;在所述第n+m+1个数据组中的比特值与所述第n个数据组中的比特值一致的情况下,禁止调整第一计数值和第二计数值,并根据所述第一计数值和所述第二计数值确定更新后的第一随机数的第三检测结果,其中,所述第一计数值用于指示所述第n个数据组至所述第n+m个数据组中的第一比特值的数量;所述第二计数值用于指示所述第n个数据组至所述第n+m个数据组中的第二比特值的数量;在所述第n+m+1个数据组中的比特值与所述第n个数据组中的比特值不一致的情况下,调整所述第一计数值和所述第二计数值,并根据调整后的第一计数值和调整后的第二计数值确定更新后的第一随机数的第三检测结果。
7、在一个示例性实施例中,所述单比特频数检测模块,还用于确定所述第n+m+1个数据组中的比特值是否为所述第一比特值;在所述第n+m+1个数据组中的比特值为所述第一比特值的情况下,将所述第一计数值加预设数值,以及将所述第二计数值减预设数值;在所述第n+m+1个数据组中的比特值不为所述第一比特值的情况下,将所述第一计数值减预设数值,以及将所述第二计数值加预设数值。
8、在一个示例性实施例中,所述单比特频数检测模块,还用于确定调整后的第一计数值是否或者等于第一阈值,以及确定所述第二计数值是否或者等于第一阈值;在所述第一计数值大于或者等于所述第一阈值,或者,所述第二计数值大于或者等于所述第一阈值的情况下,确定更新后的第一随机数的第三检测结果,其中,所述第三检测结果指示所述更新后的第一随机数未通过检测;在所述第一计数值小于所述第一阈值,且所述第二计数值小于所述第一阈值的情况下,确定更新后的第一随机数的第三检测结果,其中,所述第三检测结果指示所述更新后的第一随机数通过检测。
9、在一个示例性实施例中,所述扑克检测模块,还用于确定所述第n+m+1个数据组中的比特值与所述第n个数据组中的比特值是否一致,其中,所述第n+m+1个数据组和所述第n个数据组中均包括:多个比特值;在所述第n+m+1个数据组中的比特值与所述第n个数据组中的比特值一致的情况下,禁止调整计数值集合中的计数值,并根据第三计数值集合中的计数值确定更新后的第一随机数的第三检测结果,其中,所述计数值集合中的计数值用于指示所述第n个数据组至所述第n+m个数据组中的目标数值的数量;在所述第n+m+1个数据组中的比特值与所述第n个数据组中的比特值不一致的情况下,调整所述计数值集合中的目标计数值,并根据调整后的目标计数值确定更新后的第一随机数的第三检测结果。
10、在一个示例性实施例中,所述扑克检测模块,还用于确定所述第n+m+1个数据组中的比特值对应的第一数值,以及确定所述第n个数据组中的比特值对应的第二数值;在所述计数值集合中确定所述第一数值对应的第三计数值,以及所述第二数值对应的第四计数值,其中,所述目标计数值包括:所述第三计数值和所述第四计数值;将所述第三计数值加预设数值,以及将所述第四计数值减预设数值。
11、在一个示例性实施例中,所述扑克检测模块,还用于确定所述调整后的目标计数值是否大于或者等于第二阈值;在所述调整后的目标计数值大于或者等于第二阈值的情况下,确定更新后的第一随机数的第三检测结果,其中,所述第三检测结果指示所述更新后的第一随机数未通过检测;在所述调整后的目标计数值小于第二阈值的情况下,确定更新后的第一随机数的第三检测结果,其中,所述第三检测结果指示所述更新后的第一随机数通过检测。
12、在一个示例性实施例中,所述重复计数检测模块,包括:移位寄存器和连续性比较模块,其中,所述移位寄存器,用于将所述第n+m+1个数据组中的比特值置于所述移位寄存器的最低位,以及将所述移位寄存器中的第n+1个数据组至所述第n+m个数据组中的比特值置于高位,其中,所述第n+m+1个数据组中包括:一个比特值,所述移位寄存器的位宽为重复计数检测的判断阈值;所述连续性比较模块,用于确定所述移位寄存器中的比特值是否均一致,并根据所述移位寄存器中的比特值是否均一致确定所述更新后的第一随机数的第三检测结果。
13、在一个示例性实施例中,所述连续性比较模块,还用于在确定所述移位寄存器中的比特值均一致的情况下,确定所述更新后的第一随机数的第三检测结果,其中,所述第三检测结果指示所述更新后的第一随机数未通过检测;在确定所述移位寄存器中的比特值不一致的情况下,确定所述更新后的第一随机数的第三检测结果,其中,所述第三检测结果指示所述更新后的第一随机数通过检测。
14、在一个示例性实施例中,所述单比特频数检测模块,还用于执行确定步骤:在确定所述第三检测结果指示所述更新后的第一随机数通过检测的情况下,接收所述熵源模块发送的第n+m+2个数据组和所述先进先出存储器发送的第n+1个数据组;根据所述第n+m+2个数据组和所述第n+1个数据组确定第二次更新后的第一随机数的第四检测结果;循环执行所述确定步骤,直至所述单比特频数检测模块确定任意一次更新后的第一随机数的检测未通过,或者,所述单比特频数检测模块确定每一次更新后的第一随机数的检测均通过。
15、在一个示例性实施例中,在所述检测模块包括:所述单比特频数检测模块和所述扑克检测模块,且所述单比特频数检测模块确定每一次更新后的第一随机数的检测均通过的情况下,所述扑克检测模块,还用于确定所述第一随机数的第一检测结果,并根据所述第一检测结果确定所述目标随机数的第二检测结果。
16、在一个示例性实施例中,所述随机数的检测装置还包括:与所述熵源模块连接的后处理模块,其中,所述后处理模块,用于接收所述熵源模块发送的所述目标随机数,并根据目标算法对所述目标随机数进行处理,以得到处理后的目标随机数。
17、在一个示例性实施例中,所述后处理模块,还用于执行第二输入步骤:将第三随机数输入至所述检测模块,其中,所述第三随机数为所述处理后的目标随机数中的第k个数据组至第k+j个数据组,所述第k个数据组包括:所述处理后的目标随机数中的一个或者连续的多个比特值,所述第k+j个数据组包括:所述处理后的目标随机数中的一个或者连续的多个比特值,k、j为正整数;在k依次取2、3、……y的情况下,循环执行所述第二输入步骤,直至所述检测模块确定所述处理后的目标随机数的检测未通过,或者,将第y个数据组输入至所述检测模块;所述检测模块,用于确定所述第三随机数的检测结果,并根据所述第三随机数的检测结果确定所述处理后的目标随机数的第四检测结果。
18、在一个示例性实施例中,所述随机数的检测装置还包括:与所述检测模块连接的输出模块,其中,所述输出模块,用于根据所述检测模块输出的所述第二检测结果和处理后的目标随机数的第四检测结果确定待输出的随机数。
19、在一个示例性实施例中,所述输出模块,还用于在所述第二检测结果指示所述目标随机数的检测通过,且所述处理后的目标随机数未通过的情况下,确定待输出的随机数为所述目标随机数;在所述第二检测结果指示所述目标随机数的检测未通过,且所述处理后的目标随机数通过的情况下,确定待输出的随机数为所述处理后的目标随机数;在所述第二检测结果指示所述目标随机数的检测通过,且所述处理后的目标随机数通过的情况下,确定待输出的随机数为所述处理后的目标随机数。
20、根据本技术的另一个实施例,提供了一种随机数的检测方法,包括:接收熵源模块输入的第一随机数,确定所述第一随机数的第一检测结果,并根据所述第一检测结果确定所述目标随机数的第二检测结果,其中,所述熵源模块执行第一输入步骤:将第一随机数输入至检测模块,其中,所述第一随机数为所述目标随机数中的第n个数据组至第n+m个数据组,所述第n个数据组包括:所述目标随机数中的一个或者连续的多个比特值,所述第n+m个数据组包括:所述目标随机数中的一个或者连续的多个比特值,n、m为正整数;在n依次取2、3、……z的情况下,循环执行所述第一输入步骤,直至所述检测模块确定所述目标随机数的检测未通过,或者,将第z个数据组输入至所述检测模块。
21、根据本技术的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
22、根据本技术的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
23、根据本技术的又一个实施例,还提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一项方法实施例中的步骤。
24、通过本技术中的装置,熵源模块,与所述熵源模块连接的检测模块,其中,所述熵源模块,用于执行第一输入步骤:将第一随机数输入至所述检测模块,其中,所述第一随机数为目标随机数中的第n个数据组至第n+m个数据组,所述第n个数据组包括:所述目标随机数中的一个或者连续的多个比特值,所述第n+m个数据组包括:所述目标随机数中的一个或者连续的多个比特值,n、m为正整数;在n依次取2、3、……z的情况下,循环执行所述第一输入步骤,直至所述检测模块确定所述目标随机数的检测未通过,或者,将第z个数据组输入至所述检测模块;所述检测模块,用于确定所述第一随机数的第一检测结果,并根据所述第一检测结果确定所述目标随机数的第二检测结果。即本技术中根据熵源模块循环将目标随机数中的第n个数据组至第n+m个数据组输入至检测模块,检测模块通过接收一个新数据的同时丢弃一个旧数据的方式,保证数据连续的同时随时更新数据组,保证不会出现漏检的情况,解决了相关技术中对随机数的检测存在检测漏检或检测漏报的问题。
本文地址:https://www.jishuxx.com/zhuanli/20240730/193980.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表