CN116743371B - 一种随机数的确定方法及装置 - Google Patents
一种随机数的确定方法及装置 Download PDFInfo
- Publication number
- CN116743371B CN116743371B CN202310890116.6A CN202310890116A CN116743371B CN 116743371 B CN116743371 B CN 116743371B CN 202310890116 A CN202310890116 A CN 202310890116A CN 116743371 B CN116743371 B CN 116743371B
- Authority
- CN
- China
- Prior art keywords
- random number
- length
- output
- values
- message digest
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012545 processing Methods 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 12
- 238000013461 design Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 13
- 238000001514 detection method Methods 0.000 description 12
- 239000000284 extract Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000001583 randomness test Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000000528 statistical test Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种随机数的确定方法及装置,该方法包括根据第一随机数确定N个具有第一长度的第一数值。其中,第一随机数的长度为第二长度,第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数。根据消息摘要算法对N个第一数值进行处理,获得N个第一输出摘要。其中,每个第一输出摘要的数据长度为第一长度,第i个第一输出摘要是根据消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数。将N个第一输出摘要进行拼接,获得第二随机数。其中,第二随机数的长度与第一随机数的长度均为第二长度。若第二随机数满足随机性要求,则输出第二随机数。因此该方法可以提升随机数的随机性,从而提升随机数的质量。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种随机数的确定方法及装置。
背景技术
随机数被广泛地用于对称或非对称密码算法的密钥产生、挑战-响应方案中的挑战值、数字签名方案中的秘密信息、抗侧信道分析攻击等密码应用领域,并且随机数的质量在密码应用领域中起到了决定性的作用。例如,对称或非对称密码算的密钥质量取决于产生密钥的随机数的质量。目前随机数一般由随机数发生器(Random Number Generator,RNG)生成。
然而,目前的随机数发生器生成的随机数的质量不高,有待改进。
发明内容
本申请实施例提供一种随机数的确定方法及装置,用以提升随机数的质量。
第一方面,本申请实施例提供了一种随机数的确定方法,包括:根据第一随机数确定N个具有第一长度的第一数值,第一随机数的长度为第二长度,第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数;根据消息摘要算法对N个第一数值进行处理,获得N个第一输出摘要,每个第一输出摘要的数据长度为第一长度,第i个第一输出摘要是根据消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数;将N个第一输出摘要进行拼接,获得第二随机数,第二随机数的长度为第二长度;若第二随机数满足随机性要求,则输出第二随机数。
采用该方法,将第一随机数拆分为多个第一数值,再根据多个第一数值获得多个第一输出摘要,将多个第一输出摘要合并为第二随机数,可以提升随机数的随机性,从而提高随机数的质量。
在一种可能的设计中,根据第三随机数确定M个具有第三长度的第二数值,第三长度为消息摘要算法支持的长度,M为大于或等于2的正整数;根据消息摘要算法对M个第二数值进行处理,获得M个第二输出摘要,每个第二输出摘要的数据长度为第三长度,第k个第二输出摘要是根据消息摘要算法对第k个第二数值进行处理获得的,k为小于等于M的正整数;将M个第二输出摘要进行拼接,获得第四随机数,第四随机数的长度与第三随机数的长度均为第四长度;若第二随机数不满足随机性要求,且第四随机数满足随机性要求,则输出第四随机数。
采用该设计,生成多个随机数,并对多个随机数进行随机性检测,当随机数满足随机性要求时,才会输出该随机数,进而保证输出的随机数均满足随机性要求,确保输出的随机数满足各种密码算法、密码协议和密码产品对随机数的随机性要求。
在一种可能的设计中,将N个第一输出摘要进行拼接,获得第五随机数,第五随机数的长度为第一长度的N倍;若第五随机数和第六随机数满足随机性要求,将第五随机数与第六随机数进行拼接获得满足随机性要求的第二随机数。
采用该设计,验证第五随机数和第六随机数的随机性,保证输出的随机数均满足随机性要求。
在一种可能的设计中,第二长度大于或等于第一长度的N倍。
在一种可能的设计中,第二长度大于第一长度的N倍,且小于第一长度的N+1倍;根据第一随机数确定N个具有第一长度的第一数值以及具有第五长度的第三数值,第五长度小于所述第一长度;根据消息摘要算法对第三数值进行处理,获得第五长度的第三输出摘要;将N个第一输出摘要与第三输出摘要进行拼接,获得第二随机数。
基于该实施例,本申请可通过该分割方式对无法均匀分割(即第二长度无法被第一长度整除)的随机数进行分割,从而提升本申请的适用性。
第二方面,本申请实施例提供了一种随机数的确定装置,包括:处理模块,用于根据第一随机数确定N个具有第一长度的第一数值,第一随机数的长度为第二长度,第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数;处理模块,还用于根据消息摘要算法对N个第一数值进行处理,获得N个第一输出摘要,每个第一输出摘要的数据长度为第一长度,第i个第一输出摘要是根据消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数;处理模块,还用于将N个第一输出摘要进行拼接,获得第二随机数,第二随机数的长度为第二长度;若第二随机数满足随机性要求,输出模块用于输出第二随机数。
在一种可能的设计中,处理模块,还用于根据第三随机数确定M个具有第三长度的第二数值,第三长度为消息摘要算法支持的长度,M为大于或等于2的正整数;处理模块,还用于根据消息摘要算法对M个第二数值进行处理,获得M个第二输出摘要,每个第二输出摘要的数据长度为第三长度,第k个第二输出摘要是根据消息摘要算法对第k个第二数值进行处理获得的,k为小于等于M的正整数;处理模块,还用于将M个第二输出摘要进行拼接,获得第四随机数,第四随机数的长度与第三随机数的长度均为第四长度;若第二随机数不满足随机性要求,且第四随机数满足随机性要求,输出模块还用于输出第四随机数。
在一种可能的设计中,处理模块,具体用于:将N个第一输出摘要进行拼接,获得第五随机数,第五随机数的长度为第一长度的N倍;若第五随机数和第六随机数满足随机性要求,将第五随机数与第六随机数进行拼接获得满足随机性要求的第二随机数。
在一种可能的设计中,第二长度大于或等于第一长度的N倍。
在一种可能的设计中,第二长度大于第一长度的N倍,且小于第一长度的N+1倍,处理模块具体用于:根据第一随机数确定N个具有第一长度的第一数值以及具有第五长度的第三数值,第五长度小于第一长度;根据消息摘要算法对第三数值进行处理,获得第五长度的第三输出摘要;将N个第一输出摘要与第三输出摘要进行拼接,获得第二随机数。
第三方面,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时,实现第一方面和第二方面及其任意一种设计的方法。
第四方面,本申请实施例还提供了一种电子设备,包括存储器和处理器,存储器上存储有可在处理器上运行的计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面和第二方面及其任意一种设计的方法。
第二方面至第四方面及其任意一种设计所带来的技术效果可参见第一方面中对应的设计所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种随机数的确定方法的流程示意图;
图2为本申请实施例提供的一种随机数确定方法的结构示意图;
图3为本申请实施例提供的另一种随机数确定方法的结构示意图;
图4为本申请实施例提供的一种随机数的确定装置的结构示意图;
图5为本申请实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作可选的详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面,结合现有技术对确定随机数的方法进行介绍。
目前现有技术中产生随机数的方案,随机数一般由随机数发生器生成。随机数发生器可以主要分为真随机数发生器和伪随机数发生器。
然而,目前的随机数发生器生成的随机数的质量不高,有待改进。
例如,真随机数发生器容易受到外界客观环境因素的影响,导致真随机数发生器生成的随机数不稳定,从而影响随机数的质量。
又如,伪随机数发生器根据确定性算法和一个随机数序列生成随机数,若输入的随机数序列和使用的确定性算法保持不变,则伪随机数发生器生成的随机数也是相同的,导致随机数的随机性不高,导致随机数的质量不高。
为了解决上述技术缺陷,本申请提供一种随机数的确定方法及装置,用以提升随机数的质量。
本申请中,采用的方法包括:第一设备可根据第一随机数确定N个具有第一长度的第一数值。其中,第一随机数的长度为第二长度,第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数。第一设备还可以根据消息摘要算法对N个第一数值进行处理,获得N个第一输出摘要。其中,每个第一输出摘要的数据长度为第一长度,第i个第一输出摘要是第一设备根据消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数。第一设备还可以将N个第一输出摘要进行拼接,获得第二随机数。其中,第二随机数的长度与第一随机数的长度均为第二长度。若第二随机数满足随机性要求,则第一设备输出第二随机数。因此该方法可以提升随机数的随机性,从而提升随机数的质量。
此外,第一设备可以是计算机系统,也可以是数据设备中用于执行本申请所示方法的装置,如处理器或处理模块等,本申请不具体限定。
图1为本发明实施例提供的一种随机数的确定方法的流程示意图。以第一设备为执行主体为例,该流程可以包括以下步骤:
S101,第一设备根据第一随机数确定N个具有第一长度的第一数值。其中,第一随机数的长度为第二长度,第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数。
具体的,第一随机数可以是随机数发生器生成的第二长度的随机数。其中,第二长度为任意长度,也就是说本申请中不对第一随机数的长度做具体限定。随机数发生器可以是真随机数发生器,也可以是伪随机数发生器,本申请不做具体限定。
第一长度为消息摘要算法支持的长度。可理解的,第一长度小于或等于消息摘要算法输出数据的长度。例如,SM3算法为消息摘要算法中的一种算法。在SM3算法中,SM3的输入数值的长度可以为任意长度,SM3的输出数值的长度均为256比特。因此,若本申请采用SM3算法,则第一长度小于或等于SM3的输出数值的长度,即第一长度小于或等于256比特。
在一个或多个实施例中,第二长度可以等于第一长度的N倍,N为大于或等于2的正整数。也就是说,第一随机的长度可以被第一长度整除。
具体的,当第一随机数的长度等于第一长度的N倍时,第一设备可以将第一随机数分割为N个长度为第一长度的第一数值,N为大于或等于2的正整数。
例如,图2为本申请实施例提供的一种随机数确定方法的结构示意图。其中,A为长度为107616比特的随机数,分割长度为128比特。第一长度可以表示为128比特,第二长度可以表示为107616比特,则第二长度可以被第一长度整除。可理解的,N为7872,第二长度等于第一长度的7872倍。第一随机数可以是A,第一长度可以是128比特,则第一设备可以将A分割为7872个长度为128比特的数值。
基于该实施例,本申请可以采用均匀分割的方式,将第一随机数分割为N个第一数值,从而提升第一数值的随机性。
在一个或多个实施例中,第二长度可以大于第一长度的N倍,N为大于或等于2的正整数。也就是说,第一随机数的长度不可以被第一长度整除,即本申请还支持采用非均匀分割的方式分割第一随机数。
具体的,当第一随机数的长度大于第一长度的N倍时,第一设备可以将第随机数分割为N个长度为第一长度的第一数值和1个剩余比特的数值。其中,剩余比特的数值的长度小于第一长度,N为大于或等于2的正整数。
例如,图3为本申请实施例提供的一种随机数确定方法的结构示意图。第一随机数可以表示为C第一随机数为长度为107716比特的随机数,分割长度为128比特,即第一长度为128比特,第二长度为107716比特,第二长度不可以被第一长度整除,则第一设备可将C分割为7872个长度为128比特的数值,以及1个长度为100比特的数值。
基于该实施例,本申请可通过该分割方式对无法均匀分割(即第二长度不可以被第一长度整除)的随机数进行分割,从而提升本申请的适用性。
此外,本申请中的N个第一数值是指根据第一随机数获得的N个长度为第一长度的数值,但不限定该N个数值的取值均相同。其中,每个第一数值的值可以相同,也可以不同。
基于步骤S101,第一设备将任意长度的第一随机数分割为多个第一数值,确保了后续处理算法的有效性和灵活性。
S102,第一设备根据消息摘要算法对N个第一数值进行处理,获得N个第一输出摘要。
其中,每个第一输出摘要的数据长度为第一长度,第i个第一输出摘要是根据消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数。
具体的,若第一随机数的长度等于第一长度的N倍,第一设备可将第一随机数分割为N个具有第一长度的第一数值。第一设备可根据消息摘要算法对第i个第一数值进行处理,获得第i个输出数值。其中,第i个输出数值为对第i个第一数值进行消息摘要算法运算后的运算结果。第一设备还可从第i个输出数值中抽取长度为第一长度的数值作为第i个第一输出摘要。
可选的,第一设备可以从任一输出数值中抽取连续的数值,作为相应的第一输出摘要。例如,第1个输出数值长度为256比特,第一长度为128比特,则第一设备可以将第1个输出数值的前128比特的数值作为第1个第一输出摘要。第一设备也可以从任一输出数值中离散的抽取数值,作为相应的第一输出摘要。例如,第2个输出数值长度为256比特,第一长度为128比特,则第一设备可以将从第2个输出数值中随机抽取的128比特个数值进行拼接,作为第2个第一输出摘要。
示例性的,如图2所示,第一随机数可以是A,第一长度可以为128比特。第一设备将A分割为7872个具有128比特的第一数值。第一设备根据SM3算法对第i个128比特的数值进行处理,获得第i个256比特的数值。第一设备从第i个256比特的数值中抽取前128比特的数值,作为第i个输出摘要。其中,i为小于或等于7872的正整数。
基于步骤S102,第一设备根据消息摘要算法分别多个第一数值进行处理,获得多个第一输出摘要,可以提高第一输出摘要的随机性。
S103,第一设备将N个第一输出摘要进行拼接,获得第二随机数。
具体的,第一设备根据N个第一数值的排列顺序,将N个第一输出摘要进行拼接,获得第二随机数。第i个第一数值在第一随机数中的位置,与第i个第一输出摘要在第二随机数中的位置相同。
示例性的,如图2所示,A是一个长度为1007616的随机数,B是一个长度为1007616的随机数。其中,A可以分割为7872个128比特的数值,B可以是由7872个输出摘要拼接获得的。第1个输出摘要是根据SM3算法对第1个128比特的数值进行处理获得。第1个输出摘要在B中的位置与第1个128比特的数值在A中的位置相同。
基于步骤S103,第一设备根据N个第一数值的排列顺序,将N个第一输出摘要进行拼接,获得第二随机数,可以保证第二随机数的随机性和稳定性。
在一个或多个实施例中,若第二长度大于第一长度的N倍,且小于第一长度的N+1倍,则第一随机数可被分割为N个长度为第一长度的第一数值,以及1个第五长度的第三数值。其中,第五长度小于第一长度。第一设备可根据消息摘要算法对第i个第一数值进行处理,获得的第i个输出数值。其中,i为小于或等于N+1的正整数。也就是,第一设备根据消息摘要算法对N个第一数值和1个第三数值分别进行处理,获得N+1个输出数值。其中,前N个输出数值一一对应于N个第一数值,第N+1个输出数值对应于第三数值。第一设备还可从第j个输出数值中抽取长度为第一长度的数值作为第j个第一输出摘要,从第N+1个输出数值中抽取第五长度的数值作为第N+1个第一输出摘要。其中,j为小于或等于N。将N个第一输出摘要与1个第三输出摘要进行拼接,获得第二随机数。
示例性的,如图3所示,第一随机数可以为C,第二随机数可以为D,则第一随机数的长度为107716比特,分割长度为128比特。第一设备可以将第一随机数分割为7872个具有128比特的第一数值和1个剩余100比特的数值。第一设备根据SM3算法对第i个第一数值进行处理,获得第i个256比特的输出数值,根据SM3算法对剩余100比特的数值进行处理,获得第7873个256比特的输出数值。第一设备从第i个256比特的输出数值中抽取前128比特的数值,作为第i个输出摘要。其中,i为小于或等于7872的正整数。第一设备还从第7873个256比特中抽取前100比特的输出数值,作为第7873个输出摘要。将前7872个输出摘要与第7873个输出摘要进行拼接,获得长度为107716比特的第二随机数。
在一个或多个实施例中,第一设备可以将根据N个第一数值的排列顺序,将N个第一输出摘要进行拼接后的随机数输入到随机数间接命中缓冲区。其中,随机数间接命中缓冲区用于存储随机数。可理解的,由于第一设备检测随机数的随机性的效率较低,第一设备可以将生成的随机数存储到随机数间接命中缓冲区,再对随机数间接命中缓冲区中的随机数进行随机性检测,从而避免由于随机性检测效率低,导致生成随机数的效率降低。
第一设备还可以对随机数间接命中缓冲区中的随机数进行随机性检测。例如,第一设备可根据GM/T 0005《随机性检测规范》对该随机数进行随机性检测,也可以根据NISTSP800-22《A Statistical Test Suite for the Validation of Random NumberGenerators and Pseudo Random Number Generators for Cryptographic Application》对该随机数进行随机性检测。
若该随机数满足随机性要求,则第一设备将该随机数输入到随机数直接命中缓冲区。其中,随机数直接命中缓冲区用于存储随机数。随机数直接命中缓冲区与随机数间接命中缓冲区可以为同一个存储设备,也可以为不同的存储设备。
S104,若第二随机数满足随机性要求,则第一设备输出第二随机数。
具体的,第一设备在输出第二随机数之前,还可以对第二随机数进行随机性检测,若第二随机数满足随机性要求,则输出第二随机数。
例如,第一设备可根据GM/T 0005《随机性检测规范》对第二随机数进行随机性检测,或根据NIST SP800-22《A Statistical Test Suite for the Validation of RandomNumber Generators and Pseudo Random Number Generators for CryptographicApplication》对第二随机数进行随机性检测。若第二随机数满足随机性检测,则输出第二随机数。
基于步骤S104,第一设备对随机数进行随机性检测,当随机数满足随机性要求时,才输出随机数,确保输出的随机数满足各种密码算法、密码协议和密码产品对随机数的随机性要求。
在一个或多个实施例中,第一设备还可根据第三随机数确定M个具有第三长度的第二数值。其中,第三长度为消息摘要算法支持的长度,第三长度与第一长度可以相同,也可以不同。M为大于或等于2的正整数,M与N可以相同,也可以不同。第一设备获得第二数值的方式,与第一设备获得第一数值的方式相同,此处不再赘述。
第一设备还可以根据消息摘要算法对M个第二数值进行处理,获得M个第二输出摘要。其中,每个第二输出摘要的数据长度为第三长度,第k个第二输出摘要是根据消息摘要算法对第k个第二数值进行处理获得的,k为小于等于M的正整数。第一设备获得第二输出摘要的方式,与第一设备获得第一输出摘要的方式相同,此处不再赘述。
第一设备还可以将M个第二输出摘要进行拼接,获得第四随机数。其中,第四随机数的长度与第三随机数的长度均为第四长度。第一设备获得第四随机数的方式,与第一设备获得第二随机数的方式相同,此处不再赘述。
若第二随机数不满足随机性要求,且第四随机数满足随机性要求,则第一设备输出第四随机数。
可理解的,若第二随机数不满足随机性要求,则第一设备可以重新生成第四随机数,并对第四随机数进行随机性检验,若第四随机数满足随机性要求,则输出第四随机数。此外,第四随机数也可以是随机数间接命中缓冲区中多个随机数中的一个随机数。若第二随机数不满足随机性要求,则第一设备可从间接命中缓冲区中选取第四随机数,并对第四随机数做随机性检验,若第四随机数满足随机性要求,则输出第四随机数。
基于该实施例,第一设备可以生成多个随机数,并对多个随机数进行随机性检测,当随机数满足随机性要求时,才会输出该随机数。采用该方式可以保证输出的随机数均满足随机性要求,确保输出的随机数满足各种密码算法、密码协议和密码产品对随机数的随机性要求。
第一设备还可以从随机数直接命中缓冲区中抽取指定长度的随机数,直接输出该随机数,即第二随机数。
可选的,第一设备可以将拼接后的随机数存储至随机数间接命中缓存区。第一设备还可以对随机数间接命中缓存区中的随机数进行随机行检验,若满足随机性要求,将该随机数输入到随机数直接命中缓冲区中,从而对满足随机数性要求的随机数进行缓存。当使用随机数时,则可以直接从随机数直接命中缓冲区中获取随机数,提高了获取随机数的效率。
作为一种示例,若第一设备确定第二随机数满足随机性要求,则可以将该第二随机数存储至随机数直接命中缓冲区。
进一步的,若随机数直接命中缓冲区中的随机数的长度小于指定长度,第一设备还可以通过以下方式获得第二随机数:
在一个或多个实施例中,第一设备可以将N个第一输出摘要进行拼接,获得第五随机数。其中,第五随机数的长度为第一长度的N倍。若第五随机数和第六随机数满足随机性要求,将第五随机数与第六随机数进行拼接获得满足随机性要求的第二随机数。
具体的,第一设备将N个第一输出摘要拼接为第五随机数,若第五随机数满足随机性,则将第五随机数输入到随机数直接命中缓冲区中。其中,第五随机数的长度为第一长度的N倍。若随机数直接命中缓冲区中的随机数的长度小于指定长度,即随机数直接命中缓冲区中只有第五随机数,且指定长度大于第一长度的N倍,则第一设备还可以从随机数间接命中缓冲区中获取第六随机数。其中,第六随机数的长度与第五随机数的长度的和等于指定长度。
在将第五随机数与第六随机数拼接之前,第一设备还可以对第六随机数进行随机性检验,若第六随机数满足随机性要求,则将第五随机数与第六随机数进行拼接获得第二随机数。若第六随机数不满足随机性要求,则第一设备再次从随机数间接命中缓冲区中获取第六随机数。可以理解,若第五随机数满足随机性要求,并且第六随机数满足随机性要求,则可以认为拼接第五随机数和第六随机数所得的第二随机数满足随机性要求。即,此时不需要额外再验证该第二随机数是否满足随机性要求。
基于该实施例,为了避免随机数直接命中缓冲区的第五随机数的长度小于指定长度,导致输出的随机数不满足使用需求,第一设备还可以从随机数间接明中缓冲区获取缺少长度的第六随机数。若第五随机数和第六随机数均满足随机性要求,则将第五随机数与第六随机数进行拼接,获得满足使用需求的随机数。
基于上述内容和相同构思,本申请提供一种随机数的确定装置。如图4所示,该装置包括处理模块401和输出模块402。
处理模块401,用于根据第一随机数确定N个具有第一长度的第一数值,第一随机数的长度为第二长度,第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数;处理模块401,还用于根据消息摘要算法对N个第一数值进行处理,获得N个第一输出摘要,每个第一输出摘要的数据长度为第一长度,第i个第一输出摘要是根据消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数;处理模块401,还用于将N个第一输出摘要进行拼接,获得第二随机数,第二随机数的长度为第二长度;若第二随机数满足随机性要求,输出模块402用于输出第二随机数。
在一种可能的设计中,处理模块401,还用于根据第三随机数确定M个具有第三长度的第二数值,第三长度为消息摘要算法支持的长度,M为大于或等于2的正整数;处理模块401,还用于根据消息摘要算法对M个第二数值进行处理,获得M个第二输出摘要,每个第二输出摘要的数据长度为第三长度,第k个第二输出摘要是根据消息摘要算法对第k个第二数值进行处理获得的,k为小于等于M的正整数;处理模块401,还用于将M个第二输出摘要进行拼接,获得第四随机数,第四随机数的长度与第三随机数的长度均为第四长度;若第二随机数不满足随机性要求,且第四随机数满足随机性要求,输出模块402还用于输出第四随机数。
在一种可能的设计中,处理模块401,具体用于:将N个第一输出摘要进行拼接,获得第五随机数,第五随机数的长度为第一长度的N倍;若第五随机数和第六随机数满足随机性要求,将第五随机数与第六随机数进行拼接获得满足随机性要求的第二随机数。
在一种可能的设计中,第二长度大于或等于第一长度的N倍。
在一种可能的设计中,第二长度大于第一长度的N倍,且小于第一长度的N+1倍,处理模块401,具体用于:根据第一随机数确定N个具有第一长度的第一数值以及具有第五长度的第三数值,第五长度小于第一长度;根据消息摘要算法对第三数值进行处理,获得第五长度的第三输出摘要;将N个第一输出摘要与第三输出摘要进行拼接,获得第二随机数。
图5示出了本申请实施例提供的一种电子设备结构示意图。
本申请实施例中的电子设备可包括处理器501。处理器501是该装置的控制中心,可以利用各种接口和线路连接该装置的各个部分,通过运行或执行存储在存储器503内的指令以及调用存储在存储器503内的数据。可选的,处理器501可包括一个或多个处理单元,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。在一些实施例中,处理器501和存储器503可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器501可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法步骤可以直接由硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器503存储有可被至少一个处理器501执行的指令,至少一个处理器501通过执行存储器503存储的指令,可以用于执行本申请实施例所公开的方法步骤。
存储器503作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器503可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等。存储器503是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器503还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中,该装置还可以包括通信接口502,电子设备可以通过该通信接口502传输数据。
可选的,可由图5所示处理器501(或处理器501和通信接口502)实现图2所示的处理模块401和/或输出模块402,也就是说,可以由处理器501(或处理器501和通信接口502)执行处理模块401和/或输出模块402的动作。
基于相同的发明构思,本申请实施例还提供一种计算机可读存储介质,其中可存储有指令,当该指令在计算机上运行时,使得计算机执行上述方法实施例提供的操作步骤。该计算机可读存储介质可以是图5所示的存储器503。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种随机数的确定方法,其特征在于,所述方法包括:
根据第一随机数确定N个具有第一长度的第一数值,所述第一随机数的长度为第二长度,所述第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数,所述第二长度大于所述第一长度的N倍;
根据所述消息摘要算法对N个所述第一数值进行处理,获得N个第一输出摘要,每个第一输出摘要的数据长度为所述第一长度,第i个第一输出摘要是根据所述消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数;
将N个所述第一输出摘要进行拼接,获得第二随机数,所述第二随机数的长度为所述第二长度;
从随机数直接命中缓冲区中输出所述第二随机数;
所述将N个所述第一输出摘要进行拼接,获得第二随机数,包括:
将N个所述第一输出摘要进行拼接,获得第五随机数,所述第五随机数的长度为所述第一长度的N倍;
从随机数间接命中缓冲区中获取第六随机数;
若所述第五随机数和所述第六随机数满足随机性要求,将所述第五随机数与所述第六随机数进行拼接获得满足随机性要求的所述第二随机数,并将所述第二随机数存储至所述随机数直接命中缓冲区;
若所述第六随机数不满足随机性要求,从所述随机数间接命中缓冲区中获取第七随机数;
若所述第五随机数和所述第七随机数满足随机性要求,将所述第五随机数与所述第七随机数进行拼接获得满足随机性要求的所述第二随机数,并将所述第二随机数存储至所述随机数直接命中缓冲区。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据第三随机数确定M个具有第三长度的第二数值,所述第三长度为所述消息摘要算法支持的长度,M为大于或等于2的正整数;
根据所述消息摘要算法对M个所述第二数值进行处理,获得M个第二输出摘要,每个所述第二输出摘要的数据长度为所述第三长度,第k个第二输出摘要是根据所述消息摘要算法对第k个第二数值进行处理获得的,k为小于等于M的正整数;
将M个所述第二输出摘要进行拼接,获得第四随机数,所述第四随机数的长度与所述第三随机数的长度均为第四长度;
若所述第二随机数不满足随机性要求,且所述第四随机数满足随机性要求,则输出所述第四随机数。
3.如权利要求1或2所述的方法,其特征在于,所述第二长度大于或等于所述第一长度的N倍。
4.如权利要求3所述的方法,其特征在于,所述第二长度大于所述第一长度的N倍,且小于所述第一长度的N+1倍;
所述根据第一随机数确定N个具有第一长度的第一数值,包括:
根据所述第一随机数确定N个具有第一长度的第一数值以及具有第五长度的第三数值,所述第五长度小于所述第一长度;
所述方法还包括:
根据所述消息摘要算法对所述第三数值进行处理,获得所述第五长度的第三输出摘要;
所述将N个所述第一输出摘要进行拼接,获得第二随机数,包括:
将所述N个所述第一输出摘要与所述第三输出摘要进行拼接,获得所述第二随机数。
5.一种随机数的确定装置,其特征在于,所述装置包括:
处理模块,用于根据第一随机数确定N个具有第一长度的第一数值,所述第一随机数的长度为第二长度,所述第一长度为消息摘要算法支持的长度,N为大于或等于2的正整数,所述第二长度大于所述第一长度的N倍;
所述处理模块,还用于根据所述消息摘要算法对N个所述第一数值进行处理,获得N个第一输出摘要,每个第一输出摘要的数据长度为所述第一长度,第i个第一输出摘要是根据所述消息摘要算法对第i个第一数值进行处理获得的,i为小于或等于N的正整数;
所述处理模块,还用于将N个所述第一输出摘要进行拼接,获得第二随机数,所述第二随机数的长度为所述第二长度;
输出模块,用于从随机数直接命中缓冲区中输出所述第二随机数;
所述处理模块,具体用于:
将N个所述第一输出摘要进行拼接,获得第五随机数,所述第五随机数的长度为所述第一长度的N倍;
从随机数间接命中缓冲区中获取第六随机数;
若所述第五随机数和所述第六随机数满足随机性要求,将所述第五随机数与所述第六随机数进行拼接获得满足随机性要求的所述第二随机数,并将所述第二随机数输出至所述随机数直接命中缓冲区;
若所述第六随机数不满足随机性要求,从所述随机数间接命中缓冲区中获取第七随机数;
若所述第五随机数和所述第七随机数满足随机性要求,将所述第五随机数与所述第七随机数进行拼接获得满足随机性要求的所述第二随机数,并将所述第二随机数存储至所述随机数直接命中缓冲区。
6.如权利要求5所述的装置,其特征在于,所述处理模块,还用于根据第三随机数确定M个具有第三长度的第二数值,所述第三长度为所述消息摘要算法支持的长度,M为大于或等于2的正整数;
所述处理模块,还用于根据所述消息摘要算法对M个所述第二数值进行处理,获得M个第二输出摘要,每个所述第二输出摘要的数据长度为所述第三长度,第k个第二输出摘要是根据所述消息摘要算法对第k个第二数值进行处理获得的,k为小于等于M的正整数;
所述处理模块,还用于将M个所述第二输出摘要进行拼接,获得第四随机数,所述第四随机数的长度与所述第三随机数的长度均为第四长度;
若所述第二随机数不满足随机性要求,且所述第四随机数满足随机性要求,所述输出模块还用于输出所述第四随机数。
7.如权利要求5或6所述的装置,其特征在于,所述第二长度大于或等于所述第一长度的N倍。
8.如权利要求7所述的装置,其特征在于,所述第二长度大于所述第一长度的N倍,且小于所述第一长度的N+1倍,所述处理模块具体用于:
根据所述第一随机数确定N个具有第一长度的第一数值以及具有第五长度的第三数值,所述第五长度小于所述第一长度;
根据所述消息摘要算法对所述第三数值进行处理,获得所述第五长度的第三输出摘要;
将所述N个所述第一输出摘要与所述第三输出摘要进行拼接,获得所述第二随机数。
9.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-4中任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-4中任一所述方法的步骤。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310890116.6A CN116743371B (zh) | 2023-07-19 | 2023-07-19 | 一种随机数的确定方法及装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310890116.6A CN116743371B (zh) | 2023-07-19 | 2023-07-19 | 一种随机数的确定方法及装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116743371A CN116743371A (zh) | 2023-09-12 |
| CN116743371B true CN116743371B (zh) | 2024-07-23 |
Family
ID=87916983
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310890116.6A Active CN116743371B (zh) | 2023-07-19 | 2023-07-19 | 一种随机数的确定方法及装置 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116743371B (zh) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112306457A (zh) * | 2020-08-07 | 2021-02-02 | 神州融安科技(北京)有限公司 | 一种随机数生成方法及装置 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN107943450A (zh) * | 2017-11-17 | 2018-04-20 | 上海众人网络安全技术有限公司 | 随机数生成方法、装置、计算机设备及计算机可读介质 |
| CN108388421A (zh) * | 2017-12-29 | 2018-08-10 | 北京欧链科技有限公司 | 随机数的生成方法和装置 |
| CN111290734B (zh) * | 2020-03-05 | 2023-09-08 | 中安云科科技发展(山东)有限公司 | 一种真随机数获取方法、系统及密码机 |
-
2023
- 2023-07-19 CN CN202310890116.6A patent/CN116743371B/zh active Active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112306457A (zh) * | 2020-08-07 | 2021-02-02 | 神州融安科技(北京)有限公司 | 一种随机数生成方法及装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116743371A (zh) | 2023-09-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3208788B1 (en) | Method of protecting a circuit against a side-channel analysis | |
| CN100576174C (zh) | 检验密码应用的可能素数 | |
| US8472621B2 (en) | Protection of a prime number generation for an RSA algorithm | |
| US9298947B2 (en) | Method for protecting the integrity of a fixed-length data structure | |
| Medwed et al. | Template attacks on ECDSA | |
| US20100262840A1 (en) | Method and devices for protecting a microcircuit from attacks for obtaining secret data | |
| US9571289B2 (en) | Methods and systems for glitch-resistant cryptographic signing | |
| US8681976B2 (en) | System and method for device dependent and rate limited key generation | |
| US8509429B2 (en) | Protection of a prime number generation against side-channel attacks | |
| US11646867B2 (en) | Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources | |
| US20130218937A1 (en) | Arithmetic apparatus, elliptic scalar multiplication method of arithmetic apparatus, elliptic scalar multiplication program, residue operation method of arithmetic apparatus, and residue operation program | |
| Amiel et al. | Fault analysis of DPA-resistant algorithms | |
| CN111262686A (zh) | 一种rssp-i安全通信的安全校验方法 | |
| Tunstall | Smart card security | |
| JP5831203B2 (ja) | 個体別情報生成装置、暗号化装置、認証システム、及び個体別情報生成方法 | |
| US20180343119A1 (en) | System, method, and apparatus for obfuscating device operations | |
| CN116743371B (zh) | 一种随机数的确定方法及装置 | |
| US8707037B2 (en) | Cryptographic authentication apparatus, systems and methods | |
| US12219056B2 (en) | Masking of key generation operations with random matrices in cryptographic applications | |
| US20230216677A1 (en) | Cipher accelerator and differential fault analysis method for encryption/decryption operation | |
| CN116611096A (zh) | 故障检测方法、装置、电子设备及存储介质 | |
| CN115603906A (zh) | 一种数据处理方法、装置、设备及介质 | |
| CN107003903B (zh) | 使用多个不同且独立的分支来执行敏感计算的方法 | |
| CN117251884B (zh) | 一种数据验证方法及装置 | |
| EP4618472A1 (en) | Device for testing a cryptographic algorithm hardware |
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 | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |