CN116055039A - 一种基于分组密码算法的随机数生成方法及装置 - Google Patents
一种基于分组密码算法的随机数生成方法及装置 Download PDFInfo
- Publication number
- CN116055039A CN116055039A CN202211713899.2A CN202211713899A CN116055039A CN 116055039 A CN116055039 A CN 116055039A CN 202211713899 A CN202211713899 A CN 202211713899A CN 116055039 A CN116055039 A CN 116055039A
- Authority
- CN
- China
- Prior art keywords
- data
- random number
- temporary
- number seed
- updating
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000006870 function Effects 0.000 claims description 30
- 230000007613 environmental effect Effects 0.000 description 21
- 238000004590 computer program Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- OTZZZISTDGMMMX-UHFFFAOYSA-N 2-(3,5-dimethylpyrazol-1-yl)-n,n-bis[2-(3,5-dimethylpyrazol-1-yl)ethyl]ethanamine Chemical compound N1=C(C)C=C(C)N1CCN(CCN1C(=CC(C)=N1)C)CCN1C(C)=CC(C)=N1 OTZZZISTDGMMMX-UHFFFAOYSA-N 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
Images
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
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
Abstract
本发明公开了一种基于分组密码算法的随机数生成方法及装置,该方法包括:获取随机数种子数据,将随机种子数据拆分为第一数据和第二数据,以第一数据为密钥,调用分组密码算法对第二数据进行加密,生成随机数。本发明的技术方案,无需专门设置密钥,只需妥善存放随机数种子,密钥从随机数种子中产生;另外,无需多次调用加密运算,即可以实现随机数的生成和随机数种子的更新。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于分组密码算法的随机数生成方法及装置。
背景技术
由于只有56比特密钥的DES算法容易被破译,用DES实现的ANSI X9.17伪随机数生成器的安全性受到质疑,密钥和种子易于被求取。但是,用AES或TDEA算法(3DES)实现的ANSI X9.17的伪随机数产生器被认为是密码强度很高的伪随机数生成器。
ANSI X9.17逻辑结构中,每产生一个随机数,需要调用了3次分组加密运算,运算效率不高,且需要安全存储加密密钥及内部状态种子数据。当使用3DES算法时,需要安全存储两个密钥和种子,还要调用采样熵源,不仅运算效率不高,而且每次只生成8字节随机数。
因此,在保证安全生成随机数的前提下,如何生成满足质量要求及检测指标的随机数,减少密码运算次数,提高生产效率,较少占用存储空间及降低安全管理成本,是随机数发生器设计中需要解决的技术问题。
发明内容
本发明实施例提供一种基于分组密码算法的随机数生成方法及装置,解决了生成随机数规模较小,密码运算次数较多,占用存储空间较多,安全管理成本较高的问题。
第一方面,本发明实施例提供了一种基于分组密码算法的随机数生成方法,包括:
获取随机数种子数据,将所述随机种子数据拆分为第一数据和第二数据;
以所述第一数据为密钥,调用分组密码算法对所述第二数据进行加密,生成随机数。
本发明的实施例技术方案,仅从随机数种子数据中获取密钥即可生成随机数,无需多次调用加密运算,提高了生成随机数的效率。随机数是由分组密码算法产生的,合格的分组密码算法的安全性得到了公认,产生的密文符合随机性指标已经得到论证。本发明的实施例技术方案,不需要使用密钥,仅需要随机数种子数据安全存放,易于推广及实现,可应用于各种需要随机数的场景。
在一些实施例中,获取随机数种子数据,包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第一临时数据;
基于所述第一临时数据与所述第二数据,确定第二临时数据;以所述第一数据为密钥,调用分组密码算法对所述第二临时数据进行加密,获得第三临时数据;
将所述随机数种子数据中的第二数据更新为所述第一数据,将所述随机数种子数据的第一数据更新为所述第三临时数据。
在一些实施例中,所述方法还包括:
对所述随机数种子数据进行N+1次迭代更新,N为自然数。
本发明的实施例的技术方案,利用了各种环境数据作为参数,增加了熵源的多样性和复杂性,进而使获得的输入参数具有一定的复杂性、随机性和不可预测性。将输入参数作为分组密码算法的输入来生成随机数种子,生成的随机数种子满足了随机性及不可预测性的要求。且本发明实施例的技术方案,通过对随机数种子数据进行多次更新即可获得最新数据,保证了随机数种子的随机性及不可预测性。
在一些实施例中,生成随机数之后,还包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第四临时数据;
基于所述第四临时数据与所述第二数据,确定第五临时数据;以所述第一数据为密钥,调用分组密码算法对所述第五临时数据进行加密,获得第六临时数据;
将所述随机数种子数据中的第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第六临时数据。
本发明的实施例的技术方案中,在生成随机数后,基于当前存储的随机数种子数据与再次获取的各种环境数据作为参数共同更新随机数种子数据,即使当前存储的随机数种子数据被破译者截取,破译者若猜不对那些环境数据的参数状态,则不能得到新种子,一定程度上保证了随机数种子的安全性。在利用当前存储的随机数种子数据与再次获取的各种环境数据生成新的随机种子数据后,将新的随机数种子数据代替原来的随机数种子,使随机数种子具有更强的不确定性。
第二方面,本发明实施例提供了一种基于分组密码算法的随机数生成装置,所述装置包括:
获取模块,获取随机数种子数据,将所述随机种子数据拆分为第一数据和第二数据;
生成模块,以所述第一数据为密钥,调用分组密码算法对所述第二数据进行加密,生成随机数。
在一些实施例中,所述获取模块包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第一临时数据;
基于所述第一临时数据与所述第二数据,确定第二临时数据;以所述第一数据为密钥,调用分组密码算法对所述第二临时数据进行加密,获得第三临时数据;
将所述随机数种子数据中的第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第三临时数据。
在一些实施例中,所述装置还包括:
对所述随机数种子数据进行N+1次迭代更新,N为自然数。
在一些实施例中,生成随机数之后,还包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第四临时数据;
基于所述第四临时数据与所述第二数据,确定第五临时数据;以所述第一数据为密钥,调用分组密码算法对所述第五临时数据进行加密,获得第六临数据;
将所述随机数种子数据中的第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第六临时数据。
第三方面,本发明实施例提供了一种电子设备,包括:处理器和存储器;
所述处理器用于调用所述存储器中存储的程序,当所述程序被执行时,使得处理器执行上述第一方面中任一项所述的方法。
第四方面,本发明实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述第一方面中任一项所述的方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种随机数生成方法的流程图;
图2为本发明实施例提供的又一种随机数生成方法的流程图;
图3为本发明实施例提供的一种随机数生成装置示意框图;
图4为本发明实施例提供的一种电子设备示意框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要理解的是,在本发明实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本发明中字符“/”,一般表示前后关联对象,是一种“或”的关系。
目前,较为知名的基于软件实现的伪随机数方案,当属美国伪随机数生成器标准ANS I X9.17的逻辑结构。
不过,ANS I X9.17逻辑结构中,每产生一个随机数,需要调用3次密钥进行加密运算,采用三次加密的部分原因是因为系统时间容易被破译者获取或预测,即当前时间是可以被破译者预测出来的,但是由于破译者不知道加密密钥,因此他无法预测加密后的加密时间,通过内部状态种子进行异或操作后,破译者在获取不到内部状态种子及密钥的前提下,第一次加密后的结果相对比较安全,将第二加密的结果作为随机数输出,再进行第三次加密后,将第三次的加密结果作为新种子,以便下一次调用。
通过分析上述步骤,可以发现,ANS I X9.17的逻辑结构,加密密钥的使用保证了破译者无法根据输出的伪随机数列来推测出内部状态的种子数据,也无法通过预测当前时间及输出的伪随机数列推断内部种子数据,即,三次加密的技术方案,保证了破译者无法通过预测当前时间及根据输出的随机数来推断出内部种子状态,该方案可以被反复的调用并多次输出随机数。
因此,为了实现上述方案,需要安全的保护种子数据及加密密钥两种数据,且该种随机数的生成方式,需要调用三次加密运算,生成随机数的效率不高,因此,在保证安全生成随机数的前提下,如何生成满足要求的随机数,减少加密运算次数,以提高随机数的效率,减少安全存储数据的个数,降低安全管理成本,是一个需要解决的技术问题。
本发明实施例提供了一种随机数生成方法,可以应用于诸如各种终端,例如手机、平板电脑、可穿戴设备(例如,手表、手环等)、车载设备、笔记本电脑、个人计算机(PC机)、台式计算机、上网本、个人数字助理(persona l d i g ita lass i stant,PDA)、智能家居设备(例如,智能电视,智能音箱,智能摄像头等)等各种电子设备。可以理解的是,本申请实施例对可应用的电子设备的具体类型不作任何限制。
在详细阐述本发明之前,首先对本发明相关的名词进行解释。
(1)分组密码算法
分组密码(b l ock c i pher)的数学模型是将明文消息编码表示后的数据流,划分成长度为n比特的组,每组分别在密钥的控制下变换成等长的密文组,最后将密文组串接后输出密文数据流。
本发明实施例提供了一种随机数生成方法,包括:
获取随机数种子数据,将所述随机种子数据拆分为第一数据和第二数据;
以所述第一数据为密钥,调用分组密码算法对所述第二数据进行加密,生成随机数。
以下通过具体实施例进行说明,见图1、图2、图3所示。图1为本发明实施例提供的一种随机数生成方法流程图,图2为本发明实施例提供的又一种随机数生成方法流程图。
本发明实施例提供的一种随机数生成方法流程图,详见图1。
S101:获取随机数种子数据,将随机数种子数据拆分为第一数据和第二数据。
一般的,本方法在运行之前具有预存储的随机数种子数据,但若为首次使用,优选的,建议对随机数种子数据进行初始化操作,初始化过程中可以是将各种环境样本数据,例如,使用者正在输入的键盘中输入的数据、鼠标移动的速度、光标所在当前屏幕中位置坐标点等信息,也可以是获得的时间数据、或是采集到的声音信息数据等中的至少一个,作为获取的环境样本数据,根据环境样本数据及预设函数,生成随机数种子数据,并将随机数种数据存储到存储单元中。
由于获得的环境样本数据不仅只有一个或一种,也可以具有多个及多种,因此可以根据获取到的各种环境数据通过预设函数进行计算而获得,例如针对多种环境样本数据通过异或运算而获得,对于预设函数的确定,本领域技术人员可根据实际需要自行确定,可选择某些编译系统中能产生随机数的函数,如C语言或C++中的rand()函数。
若不进行初始化操作,随机种子数据具有默认的初始值。
随机种子数据通常在终端中具有单独的存储单元,由于受实际应用存储空间的限制,随机种子数据往往会受其长度的限制,如随机种子数据小于等于16字节,或是小于等于32字节,或是小于等于40字节等,可根据实际情况具体进行设置,通常的,随机种子数据的长度越长,相对的熵量越高,但出于综合性考虑,优选的,随机种子的长度等于32字节时即可以满足需要。
当然,若是有足够的存储空间,随机种子数据是可以不受长度限制的,因此,本发明未对随机种子的长度进行限定,但为了便于说明本发明的实施例,某些实施例中对随机种子的长度进行了限定,但应理解的是,这并不能构成对本发明的限制。
另外,将随机数种子数据拆分为第一数据和第二数据。示例性的,若随机数种子数据为32字节,可将随机数种子数据分为前16字节和后16字节,前16字节为第一数据,后16字节为第二数据。
S102:以第一数据为密钥,调用分组密码算法对第二数据进行加密,生成随机数。
本发明的实施例技术方案,仅从随机数种子数据中获取密钥即可生成随机数,无需多次调用加密运算,提高了生成随机数的效率。随机数是由分组密码算法产生的,合格的分组密码算法的安全性得到了公认,产生的密文符合随机性指标已经得到论证。本发明的实施例技术方案,不需要使用密钥,仅需要随机数种子数据安全存放,降低了安全管理成本,易于推广及实现,可应用于各种需要随机数的场景。
可选的,作为其中一种实施例,获取随机数种子数据,包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据环境样本数据及预设函数,生成第一临时数据。
基于第一临时数据与第二数据,确定第二临时数据;以第一数据为密钥,调用分组密码算法对第二临时数据进行加密,获得第三临时数据。
将随机数种子数据中的第二数据更新为第一数据,将随机数种子数据中的第一数据更新为第三临时数据。
以下通过具体实施例进行说明。
对实时采集的环境数据进行处理,获得的环境样本数据,是根据采集到的环境数据进行处理之后,获得的处理器可识别的数值数据,数值数据可以是数字、比特、字节、符号等各种表征形式。
由于获取到的环境样本数据的表现形式可能会各不相同,因此,需要将其转换为第一临时数据后使用,本领域的技术人员根据具体的应用场景及获取到的环境样本数据,通过预设函数处理,转化为所需要的第一临时数据,当然,由于获得的环境样本数据不仅只有一个或一种,也可以具有多个及多种,因此可以根据获取到的各种环境数据通过预设函数进行计算而获得,或是针对多种环境样本数据通过如异或运算而获得,对于预设函数的确定,本领域技术人员可根据实际需要自行确定,可选择某些编译系统中能产生随机数的函数,如C语言或C++中的rand()函数。优选的,第一临时数据可以由n字节字符组成,4≤n≤16,其中,n为正整数。
获取到第一临时数据以后,则基于第二数据及第一临时数据,确定出第二临时数据。而基于第二数据及第一临时数据,确定出第二临时数据的过程,可以为各种处理函数,如将第二数据及第一临时数据作为某个处理函数的输入,将获得的函数的输出作为第二临时数据,也可以为各种运算,如,将第二数据及第一临时数据采用异或运算获得的结果作为第二临时数据,或是采用字符的拼接方式获得的第二临时数据等,也可以是根据实际需要定义的运算方式,对于本领域的技术人员来说,只需要利用第二数据及第一临时数据得到第二临时数据即可,使得到的第二临时数据,与第二数据、第一临时数据不同。
确定了分组密码算法后,将第二临时数据作为分组密码算法的输入,即可以确定输出的第三临时数据。
将所述随机数种子数据中的第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第三临时数据,更新随机数种子数据的方式可进行字节移位操作、数据累加等方式。示例性的,随机数种子数据数组A为32字节,更新随机数种子数据的一种方式,可将随机数种子数据数组A进行16字节移位,假设随机数种子数据数组A第一数据为16字节的A1,第二数据为16字节的A0,第三临时数据为16字节的A2,那么更新后的第二数据为A1,更新后的第一数据为A2;更新随机数种子数据的另一种方式,可将随机数种子数据数组A进行16字节累加,假设随机数种子数据数组A第一数据为16字节的A1,第二数据为16字节的A0,第三临时数据为16字节的A2,那么更新后的第二数据为A1+A0,更新后的第一数据为A2+A0;示例性的,随机数种子数据数组A为40字节,更新随机数种子数据的一种方式,可将随机数种子数据数组A进行16字节移位,假设随机数种子数据数组A第一数据为16字节的A1,第二数据为16字节的A0,第三临时数据为16字节的A2,第四临时数据为空余的8个字节,更新时,可将第四临时数据插在第三临时数据A2之前,将这样串接的数据记作Ax,那么更新后的第二数据为A1,更新后的第一数据为Ax中的右端16字节,以后再次更新时Ax的最左端8字节进入第一数据。
可选的,作为其中一种实施例,所述方法还包括:
对随机数种子数据进行N+1次迭代更新,N为自然数。
为了保证每次获取的随机数种子数据都是最新的数据,可对随机数种子数据进行多次迭代更新。示例性的,对随机数种子数据进行2次更新,即可获得最新的数据。
本发明实施例的技术方案,利用了各种环境数据作为参数,增加了熵源的多样性和复杂性,进而使获得的输入参数具有一定的复杂性、随机性和不可预测性。将输入参数作为分组密码算法的输入来生成随机数种子,生成的随机数种子满足了安全性及不可预测性的要求。且本发明实施例的技术方案,通过对随机数种子数据进行多次更新即可获得最新数据,保证了随机数种子的随机性及不可预测性。
可选的,作为其中一种实施例,生成随机数之后,具体包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据环境样本数据及预设函数,生成第四临时数据;
基于第四临时数据与第二数据,确定第五临时数据;以第一数据为密钥,调用分组密码算法对第五临时数据进行加密,获得第六临时数据;
将随机数种子数据中的第二数据更新为第一数据,将随机数种子数据中的第一数据更新为第六临时数据。
生成随机数之后,还可以对随机数种子数据进行再次更新,更新方式与获取随机数种子数据方式相同,这里不再赘述。在生成随机数后,基于当前存储的随机数种子数据与再次获取的各种环境数据作为参数共同生成随机数种子数据,即使当前存储的随机数种子数据被破译者截取,破译者若猜不对环境数据的参数状态,则不能推算出新种子,一定程度上增强了随机数种子的安全性,在利用当前存储的随机数种子数据与再次获取的各种环境数据生成新的随机种子数据后,将新的随机数种子数据代替原来的随机数种子,保证了随机数种子更强的不确定性。
本发明实施例提供的又一种随机数生成方法流程图,详见图2。本发明实施例提供的软件随机数发生器属于确定性随机数发生器(DRNG,deterministic random numbergenerator)。它可以被看作是某密码系统的一个子函数。软件随机数发生器算法工作过程中需要用到两串数据。这两串数据可以被读入到无符号字符型数组中,为叙述方便,将它们命名为数组A和数组B。
其中,数组A用于存储伪随机变化的32字节秘密种子。种子是随机数发生器中最核心的安全参数,也是软件随机数发生器中的主要熵源。数组B中存放一串临时产生的字符,产生方法可以有多种,比如在编译系统中获取系统时间、获取光标位置或调用随机数生成函数或语句,例如执行C语言中的rand()函数,Java和Python语言中也有类似的语句。
软件随机数发生器开始工作之前先要对数组A进行第一次初始化,即收集各种随机信息用于给数组A赋初始值。给数组A赋初始值时,可以是通过记录键盘输入值、敲击之间的时间间隔、鼠标移动速度和距离等信息,产生全部或部分随机数据;也可以是获取当前的系统时间,光标所在屏幕中的坐标位置数值,或者采集到的噪声或声音等多类信息数据,将这些数据或数值依某种转换函数转化成字节型数据后构成数组A。
当数组A从键盘、鼠标或系统等方面得到的32字节随机数据后,再次重新获取系统时间、光标位置等信息,并将其按转换函数转化成n字节送入数组B,将数组B可看作16字节,不足16字节时可后边补若干个0x00。将数组A中的32字节按前16字节和后16字节分别记作A1和A0,以下为随机数产生的步骤:
S201:以A1为密钥,调用分组密码算法将A0⊕B加密得A2,即A2=EncA1(A0⊕B)。
S202:将数组A右移16字节,使得A1成为新的A0,A2成为新的A1。
S203:重新产生数组B。
S204:重复执行S201,S202。
S205:以新的A1为密钥,调用分组密码算法将新的A0加密,记作R=EncA1(A0),将R作为随机数输出。
S206:重新产生数组B。
S207:重复执行S201,S202,完成种子更新。
本发明实施例的技术方案,用到了三个16字节数据组A1、A0和B,调用一个128位分组密码算法,以A1为密钥,加密A0产生随机数,加密A0⊕B产生新种子的高位16字节,种子原来的高位16字节移到低位(原来的低位16字节A0被丢弃)。本发明实施例的技术方案产生的随机数满足随机性检测标准是随机数发生器设计的基本要求,由于输出的16字节随机数是由某分组密码算法(比如SM4)用随机密钥加密随机数据产生的,易于符合随机性指标。
可选的,作为其中的一种实施例,本发明实施例还提供了一种基于分组密码算法的随机数生成装置300,见附图3,基于分组密码算法的随机数生成装置300包括:
获取模块301,获取随机数种子数据,将随机种子数据拆分为第一数据和第二数据;
生成模块302,以第一数据为密钥,调用分组密码算法对第二数据进行加密,生成随机数。
可选的,作为其中的一种实施例,获取模块301包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据环境样本数据及预设函数,生成第一临时数据;
基于第三临时数据与所述第二数据,确定第二临时数据;以第一数据为密钥,调用分组密码算法对第二临时数据进行加密,获得第三临时数据;
将随机数种子数据中的第二数据更新为第一数据,将随机数种子数据中的第一数据更新为第三临时数据。
可选的,作为其中的一种实施例,获取模块301还包括:
对随机数种子数据进行N+1次迭代更新,N为自然数。
可选的,作为其中的一种实施例,生成随机数之后,基于分组密码算法的随机数生成装置300还包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据环境样本数据及预设函数,生成第四临时数据;
基于第四临时数据与第二数据,确定第五临时数据;以第一数据为密钥,调用分组密码算法对第五临时数据进行加密,获得第六临时数据;
将随机数种子数据中的第二数据更新为第一数据,将随机数种子数据中的第一数据更新为第六临时数据。
可选的,作为其中一种实施例,本发明的实施例还提供了一种电子设备400,包括:处理器401和存储器402;
所述处理器401用于调用所述存储器402中存储的程序,当所述程序被执行时,使得处理器401执行上述实施例中任一项所述的方法。
可选的,作为其中一种实施例,还提供一种计算机存储介质,其特征在于,存储有计算机程序,该计算机程序包括用于执行上述实施例中任一项所述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种基于分组密码算法的随机数生成方法,其特征在于,包括:
获取随机数种子数据,将所述随机种子数据拆分为第一数据和第二数据;
以所述第一数据为密钥,调用分组密码算法对所述第二数据进行加密,生成随机数。
2.如权利要求1所述的方法,其特征在于,获取随机数种子数据,包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第一临时数据;
基于所述第一临时数据与所述第二数据,确定第二临时数据;以所述第一数据为密钥,调用分组密码算法对所述第二临时数据进行加密,获得第三临时数据;
将所述随机数种子数据中的第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第三临时数据。
3.如权利要求2所述的方法,其特征在于,还包括:
对所述随机数种子数据进行N+1次迭代更新,N为自然数。
4.如权利要求1所述的方法,其特征在于,生成随机数之后,还包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第四临时数据;
基于所述第四临时数据与所述第二数据,确定第五临时数据;以所述第一数据为密钥,调用分组密码算法对所述第五临时数据进行加密,获得第六临时数据;
将所述随机数种子数据中的第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第六临时数据。
5.一种基于分组密码算法的随机数生成装置,其特征在于,包括:
获取模块,获取随机数种子数据,将所述随机种子数据拆分为第一数据和第二数据;
生成模块,以所述第一数据为密钥,调用分组密码算法对所述第二数据进行加密,生成随机数。
6.如权利要求5所述的装置,其特征在于,所述获取模块包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第一临时数据;
基于所述第一临时数据与所述第二数据,确定第二临时数据;以所述第一数据为密钥,调用分组密码算法对所述第二临时数据进行加密,获得第三临时数据;
将所述随机数种子数据中第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第三临时数据。
7.如权利要求6所述的装置,所述装置还包括:
对所述随机数种子数据进行N+1次迭代更新,N为自然数。
8.如权利要求5所述的装置,其特征在于,所述装置还包括:
对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第四临时数据;
基于所述第四临时数据与所述第二数据,确定第五临时数据;以所述第一数据为密钥,调用分组密码算法对所述第五临时数据进行加密,获得第六临时数据;
将所述随机数种子数据中第二数据更新为所述第一数据,将所述随机数种子数据中的第一数据更新为所述第六临时数据。
9.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~4中任一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~4中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211713899.2A CN116055039B (zh) | 2022-12-29 | 2022-12-29 | 一种基于分组密码算法的随机数生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211713899.2A CN116055039B (zh) | 2022-12-29 | 2022-12-29 | 一种基于分组密码算法的随机数生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116055039A true CN116055039A (zh) | 2023-05-02 |
CN116055039B CN116055039B (zh) | 2023-11-14 |
Family
ID=86128841
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211713899.2A Active CN116055039B (zh) | 2022-12-29 | 2022-12-29 | 一种基于分组密码算法的随机数生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116055039B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9828538D0 (en) * | 1998-12-23 | 1999-02-17 | Motorola Ltd | Method for encrypting data |
CN1354848A (zh) * | 1999-06-08 | 2002-06-19 | 通用器材公司 | 可靠的随机数发生器 |
CN101645772A (zh) * | 2009-09-11 | 2010-02-10 | 华东交通大学 | 基于t半序的伪随机序列生成方法及序列发生器 |
US20170195117A1 (en) * | 2014-09-18 | 2017-07-06 | Huawei International Pte. Ltd. | Encryption function and decryption function generating method, encryption and decryption method and related apparatuses |
CN107943450A (zh) * | 2017-11-17 | 2018-04-20 | 上海众人网络安全技术有限公司 | 随机数生成方法、装置、计算机设备及计算机可读介质 |
CN109510703A (zh) * | 2018-11-23 | 2019-03-22 | 北京海泰方圆科技股份有限公司 | 一种数据加解密方法及装置 |
CN110058843A (zh) * | 2019-03-27 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法、装置和服务器 |
CN111400730A (zh) * | 2020-03-11 | 2020-07-10 | 西南石油大学 | 一种基于弱关联性的aes密钥扩展方法 |
CN112953716A (zh) * | 2019-11-26 | 2021-06-11 | 北京沃东天骏信息技术有限公司 | 一种兑换码生成及其验证方法和装置 |
CN114553566A (zh) * | 2022-02-25 | 2022-05-27 | 中国工商银行股份有限公司 | 数据加密方法、装置、设备及存储介质 |
CN115051798A (zh) * | 2022-06-10 | 2022-09-13 | 北京海泰方圆科技股份有限公司 | 一种随机数生成方法、装置、电子设备及存储介质 |
-
2022
- 2022-12-29 CN CN202211713899.2A patent/CN116055039B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9828538D0 (en) * | 1998-12-23 | 1999-02-17 | Motorola Ltd | Method for encrypting data |
CN1354848A (zh) * | 1999-06-08 | 2002-06-19 | 通用器材公司 | 可靠的随机数发生器 |
CN101645772A (zh) * | 2009-09-11 | 2010-02-10 | 华东交通大学 | 基于t半序的伪随机序列生成方法及序列发生器 |
US20170195117A1 (en) * | 2014-09-18 | 2017-07-06 | Huawei International Pte. Ltd. | Encryption function and decryption function generating method, encryption and decryption method and related apparatuses |
CN107943450A (zh) * | 2017-11-17 | 2018-04-20 | 上海众人网络安全技术有限公司 | 随机数生成方法、装置、计算机设备及计算机可读介质 |
CN109510703A (zh) * | 2018-11-23 | 2019-03-22 | 北京海泰方圆科技股份有限公司 | 一种数据加解密方法及装置 |
CN110058843A (zh) * | 2019-03-27 | 2019-07-26 | 阿里巴巴集团控股有限公司 | 伪随机数的生成方法、装置和服务器 |
CN112953716A (zh) * | 2019-11-26 | 2021-06-11 | 北京沃东天骏信息技术有限公司 | 一种兑换码生成及其验证方法和装置 |
CN111400730A (zh) * | 2020-03-11 | 2020-07-10 | 西南石油大学 | 一种基于弱关联性的aes密钥扩展方法 |
CN114553566A (zh) * | 2022-02-25 | 2022-05-27 | 中国工商银行股份有限公司 | 数据加密方法、装置、设备及存储介质 |
CN115051798A (zh) * | 2022-06-10 | 2022-09-13 | 北京海泰方圆科技股份有限公司 | 一种随机数生成方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116055039B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115051798B (zh) | 一种随机数生成方法、装置、电子设备及存储介质 | |
US8320557B2 (en) | Cryptographic system including a mixed radix number generator with chosen statistical artifacts | |
Eastlake 3rd et al. | Randomness requirements for security | |
US8345876B1 (en) | Encryption/decryption system and method | |
US8681976B2 (en) | System and method for device dependent and rate limited key generation | |
WO2019114122A1 (zh) | 登录信息的加密方法、装置、电子设备及介质 | |
US20120269340A1 (en) | Hierarchical encryption/decryption device and method thereof | |
JP3696209B2 (ja) | シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器 | |
CN111010266B (zh) | 消息的加解密、读写方法、装置、计算机设备和存储介质 | |
Marton et al. | Generation and testing of random numbers for cryptographic applications | |
CN112054896A (zh) | 白盒加密方法、装置、终端及存储介质 | |
CN110851112A (zh) | 一种随机比特生成方法、装置及电子设备和存储介质 | |
Röck | Pseudorandom number generators for cryptographic applications | |
CN116055039B (zh) | 一种基于分组密码算法的随机数生成方法及装置 | |
CN115632782B (zh) | 基于sm4计数器模式的随机数生成方法、系统及设备 | |
WO2019113844A1 (zh) | 生成随机数的方法、芯片和电子设备 | |
CN115714644B (zh) | 一种随机数生成方法及装置 | |
Eastlake 3rd et al. | Rfc 4086: randomness requirements for security | |
CN113901437A (zh) | 密码生成方法、装置、计算机设备和存储介质 | |
CN115114279A (zh) | 置换表生成方法、数据加、解密方法及装置、介质、设备 | |
CN117891432A (zh) | 一种随机数生成方法、装置及电子设备 | |
Yee et al. | Secret channel using video steganography | |
CN115567199B (zh) | 一种随机数种子生成方法、装置、电子设备及存储介质 | |
CN116010977A (zh) | 保留格式的加密、解密方法、装置、电子设备和介质 | |
JP2015114434A (ja) | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
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 |