CN107943450A - 随机数生成方法、装置、计算机设备及计算机可读介质 - Google Patents

随机数生成方法、装置、计算机设备及计算机可读介质 Download PDF

Info

Publication number
CN107943450A
CN107943450A CN201711147763.9A CN201711147763A CN107943450A CN 107943450 A CN107943450 A CN 107943450A CN 201711147763 A CN201711147763 A CN 201711147763A CN 107943450 A CN107943450 A CN 107943450A
Authority
CN
China
Prior art keywords
parameter
entropy pool
parameters
random number
random
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.)
Pending
Application number
CN201711147763.9A
Other languages
English (en)
Inventor
谈剑锋
郑建华
马翔
杨德光
姜立稳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Peoplenet Security Technology Co Ltd
Original Assignee
Shanghai Peoplenet Security Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Peoplenet Security Technology Co Ltd filed Critical Shanghai Peoplenet Security Technology Co Ltd
Priority to CN201711147763.9A priority Critical patent/CN107943450A/zh
Publication of CN107943450A publication Critical patent/CN107943450A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例公开了一种随机数生成方法、装置、计算机设备及计算机可读介质,其中随机数生成方法,包括:获取系统当前随机参数和当前熵池参数,其中,熵池参数通过预先迭代训练生成;对所述当前随机参数和当前熵池参数进行离散处理,并根据离散处理结果生成密钥参数和原文参数;利用所述密钥参数对所述原文参数进行加密,生成随机数。本发明实施例提供的一种随机数生成方法、装置、计算机设备及计算机可读介质,根据实时收集的系统随机参数与当前熵池参数生成真随机数序列,提高了真随机数生成效率,且随机性高,安全性高。

Description

随机数生成方法、装置、计算机设备及计算机可读介质
技术领域
本发明实施例涉及安全认证技术,尤其涉及一种随机数生成方法、装置、计算机设备及计算机可读介质。
背景技术
随机数是安全认证技术的基础之一,已经被广泛应用于身份认证、移动支付、电子博彩等领域中。随机数可分为伪随机数和真随机数。其中,伪随机数可由计算机通过预先设置随机数种子,然后调用随机数函数使用线性同余法生成。伪随机数并不具有真随机性,一旦知道随机数种子和函数算法,即可推测到所有随机数序列,安全性能低。真随机数可依赖于自然界物理现象的随机性生成,例如,可以依赖于掷硬币、电子元件噪声、核裂变等物理现象的随机性生成。真随机数具有样本不可重现的性质,无法预测随机数序列,安全性能高。人们对快速生成真随机数需求日益增强。
目前,真随机数主要生成方法有:利用物理噪声生成真随机数和利用离散时间生成真随机数。利用物理噪声生成真随机数,通常需要对物理噪声进行采样并进行二值化来生成二进制随机数序列,此方法容易受环境因素影响,导致生成随机数的随机性较低,即随机数的熵值较低。利用离散时间生成真随机数,通常需要采集两事件间的时间间隔来确定有限的几位随机数,虽然随机性较高,但随机数生成效率较低,容易发生阻塞现象。
发明内容
有鉴于此,本发明实施例提供了一种随机数生成方法、装置、计算机设备及计算机可读介质,根据实时收集的系统随机参数与当前熵池参数生成真随机数序列,提高了真随机数生成效率,且随机性高,安全性高。
第一方面,本发明实施例提供了一种随机数生成方法,包括:
获取系统当前随机参数和当前熵池参数,其中,熵池参数通过预先迭代训练生成;
对所述当前随机参数和当前熵池参数进行离散处理,并根据离散处理结果生成密钥参数和原文参数;
利用所述密钥参数对所述原文参数进行加密,生成随机数。
第二方面,本发明实施例提供了一种随机数生成装置,包括:
参数获取模块,配置于所述装置,用于获取系统当前随机参数和当前熵池参数,其中,熵池参数通过预先迭代训练生成;
离散处理模块,配置于所述装置,用于对所述当前随机参数和当前熵池参数进行离散处理,并根据离散处理结果生成密钥参数和原文参数;
随机数生成模块,配置于所述装置,用于利用所述密钥参数对所述原文参数进行加密,生成随机数。
第三方面,本发明实施例提供了一种计算机设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任一实施例所述的随机数生成方法。
第四方面,本发明实施例提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现本发明任一实施例所述的随机数生成方法。
本发明实施例提供的一种随机数生成方法、装置、计算机设备及计算机可读介质,根据实时收集的系统随机参数与当前熵池参数生成真随机数序列,提高了真随机数生成效率,且随机性高,安全性高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种随机数生成方法流程图;
图2是本发明实施例二提供的一种随机数生成装置结构示意图;
图3是本发明实施例三提供的一种计算机设备结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1是本发明实施例一提供的一种随机数生成方法流程图,本实施例可适用于随机数生成情况,例如可以是身份认证、移动支付、电子博彩等随机数生成情况。该方法可以由随机数生成装置实现,例如可以是计算机设备、或者诸如智能手机和智能手环等的智能终端设备,具体可以通过计算机设备中的硬件和/或软件来实施。
参见图1,本实施例中一种随机数生成方法包括如下步骤:
S110、获取系统当前随机参数和当前熵池参数,其中,熵池参数通过预先迭代训练生成。
其中,随机参数是指系统中传感器所采集的数据,例如可以是,话筒采集的音频数据、摄像头采集的视频数据、陀螺仪采集的角速度数据、加速度传感器采集的加速度数据,还可以是红外传感器、温度传感器、重力传感器、地磁传感器、光感传感器等采集的数据。可选的,随机参数可以是上述任意一种传感器采集的数据,也可以是至少两个传感器采集数据的随机组合。其中,系统当前随机参数是指,系统在收到生成随机数指令时,系统中传感器所采集的数据。
可选的,系统接收到生成随机数指令时,检测系统中是否存在处于开启状态的传感器,若是,则基于上述处于开启状态的传感器采集随机数据,并将上述随机数据进行随机筛选或组合,形成系统随机参数;若否,则确定至少一个传感器,开启上述至少一个传感器采集随机数据,并将上述随机数据进行随机筛选或组合,形成系统随机参数,相应的,在采集随机数据之后,关闭上述至少一个传感器。本实施例中,通过系统传感器采集随机参数,相比于计算机生成的随机数据,随机性强,获取方式简单快捷。
其中,熵在密码学中可以指数据的随机程度;熵池可以指存储熵池参数的存储空间,其中存储空间可以包含多个存储单元,通常我们可以把存储一个字节的空间当作一个存储单元,示例性的,熵池初始化时,可以采集32字节的数据进行存储,则该32字节的存储空间可以作为熵池。
其中,熵池参数可以指熵池内包含的所有数据,用作生成随机数的熵池参数可以通过预先的迭代训练生成。
可选的,熵池参数通过预先的迭代训练生成,可以是:
采集系统随机参数,将采集的系统随机参数与原有的熵池参数进行逻辑运算,并将运算结果替换原有的熵池参数;重复上述迭代步骤,直至熵池参数的熵大于预设熵值,或者直至迭代次数大于等于预设次数时,停止迭代训练。其中,逻辑运算例如可以是与、或、非和异或等任一逻辑运算。
本实施例中,以熵池的形式不断收集和更新熵池参数,提高熵池参数的混乱程度,提高了熵池参数的随机性;采集系统随机参数用以生成随机数,提高了随机数生成效率;将系统随机参数与原有的熵池参数进行逻辑运算;将运算结果替换原有的熵池参数,并重复预设次数的迭代过程,用以作为预先的迭代训练。通过迭代训练得到了随机性更高的熵池参数,从而提高了生成的随机数的随机性及安全性。
S120、对当前随机参数和当前熵池参数进行离散处理,并根据离散处理结果生成密钥参数和原文参数。
根据当前随机参数和当前熵池参数生成离散参数,对所述离散参数进行拆分,生成密钥参数和原文参数。本实施例中,对当前随机参数和当前熵池参数进行离散处理例如可以是基于有限差分法、SM3哈希算法、SHA算法(Secure Hash Algorithm,安全散列算法)等。其中SHA算法,包括SHA-1、SHA-224、SHA-256、SHA-384和SHA-512。需要注意的是,上述算法仅是示例性算法,并不对离散处理方法进行限定。
其中,当离散处理方法是有限差分法时,通过求取多次差分,从而生成预设字节数的差分结果,即生成离散参数。示例性的,若当前随机参数字节数为1字节,当前熵池参数字节数为1字节,则拼接后得到2字节数据量,即16位数据量。若想要得到1字节的离散结果,则需进行8次差分。
其中,当离散处理方法是SM3哈希算法时,由当前随机参数和当前熵池参数经过哈希运算生成离散参数。示例性的,当前随机参数大于等于32字节,当前熵池参数为32字节,基于SM3哈希算法,将大于等于32字节的当前随机参数和32字节的当前熵池参数拼接,获得大于等于64字节的拼接参数,即拼接参数长度L大于等于512bit。首先进行填充操作,即将bit“1”添加到拼接参数末尾,再加k个“0”,k是满足L+1+k=448mod 512的最小非负整数,然后再添加一个64bit串,该串是L的二进制表示,填充后的拼接参数长度为512的整数倍。然后,进行压缩操作,即将填充后的拼接参数按照512bit分为n组,并利用CF压缩函数进行n轮迭代压缩,生成256bit杂凑值,即生成32字节的哈希参数,即生成32字节的离散参数。
其中,离散处理方法是SHA-256安全散列算法时,则当前随机参数和当前熵池参数拼接参数长度不能超过2^64二进制位。处理流程为对当前随机参数和当前熵池参数拼接参数进行填充、分组、摘要计算最后获得32字节的信息摘要,即生成32字节的离散参数。
其中,根据离散处理结果生成密钥参数和原文参数,可以包括:
将离散处理结果拆分为密钥参数和原文参数,其中,密钥参数和原文参数字节数相同。以离散处理方法为SM3哈希算法举例,将哈希参数拆分为字节数相同的两组参数,一组作为密钥参数,另一组作为原文参数,其中,对哈希参数进行分组例如可以是将前半组参数作为密钥参数,后半组参数作为原文参数,可以是前半组参数作为原文参数,后半组参数作为密钥参数,还可以是在哈希参数中的各字节随机组成两组字节数相同的参数。其中,哈希参数字节数是32字节,密钥参数和原文参数字节数均为16字节。
S130、利用所述密钥参数对所述原文参数进行加密,生成随机数。
其中,加密处理方法例如可以是,DES(Data Encryption Standard,数据加密标准)算法、3DES算法、AES(Advanced Encryption Standard,高级加密标准)算法、SM4加密算法等。需要注意的是,上述算法仅是示例性算法,并不对加密处理方法进行限定。
其中,当加密算法为DES算法时,密钥参数和原文参数需要皆为8个字节,其算法主要步骤为:生成一套加密密钥,将8字节密钥参数通过等分、移位、选取和迭代形成一套16个加密密钥,分别供每一轮运算中使用;对8字节的原文参数进行初始置换,16轮完全相同的迭代运算(在每一轮运算过程中数据与相应的密钥结合)以及逆置换,得到加密结果,作为随机数输出。3DES算法是DES加密算法的一种模式,它需要使用3个8字节的密钥参数对数据进行三次加密。
其中,加密算法为AES算法时,密钥参数可以是16字节、24字节、32字节,原文参数是16字节。其算法主要步骤分为密钥扩展和加密两步,首先利用密钥参数作为主密钥生成轮密钥(其中,16字节密钥对应10轮,24字节密钥对应12轮,32字节对应14轮);然后利用轮密钥对移位、置换后的原文参数进行迭代加密,得到加密结果,作为随机数输出。
其中,加密算法为SM4加密算法时,密钥参数和原文参数需要皆为16字节。其算法主要步骤分为,首先将密钥参数作为主密钥,将主密钥进行32轮的迭代,每次迭代的结果作为轮密钥,其中轮密钥用于对原文参数进行迭代加密,利用轮密钥将原文参数进行32轮加密后得到加密结果,作为随机数输出。可选的,利用密钥参数对原文参数进行加密,生成随机数,具体可以是:
利用密钥参数对原文参数进行加密,生成加密参数;
根据随机数的需求字节数对加密参数进行分组,生成各分组参数,将各分组参数进行预设逻辑运算,生成随机数;
其中,各分组参数字节数等于需求字节数。
其中,各分组参数可以通过分组进行与、或、非和异或等任一逻辑运算生成需求字节的随机数。示例性的,假设加密结果字节数为8字节,若随机数的需求字节数为4个字节,则可以将加密结果均分为两组数据,再将两组数据进行与、或、非、异或等逻辑运算生成4个字节的随机数;若随机数的需求字节数为2个字节,则可以将加密结果均分为四组数据,再将四组数据进行与、或、非、异或等逻辑运算生成2个字节的随机数。
本实施例中利用离散处理后的离散结果生成密钥参数和原文参数;利用密钥参数对原文参数进行加密,并利用加密结果生成预设字节数的随机数。通过离散算法和加密算法生成随机数,可以进一步地提高随机数的随机性与安全性。
可选的,在利用所述密钥参数对所述原文参数进行加密,生成随机数之后,还可以包括:将加密参数进行填补,生成填补随机数,其中,填补随机数的字节数与当前熵池参数的字节数相同;将填补随机数与离散处理结果进行预设逻辑运算生成更新参数,以更新当前熵池参数;或者,将填补随机数与当前熵池参数进行预设逻辑运算生成更新参数,以更新当前熵池参数。
将加密参数进行填补生成填补随机数,填补随机数可以与离散处理结果进行与、或、非和异或等任一逻辑运算,也可以与当前熵池参数进行与、或、非和异或等任一逻辑运算生成更新参数,用以更新当前熵池参数,可以进一步提高熵池参数的随机性,从而提高生成的随机数的随机性及安全性。
本实施例提供的一种随机数生成方法,通过对系统随机参数预先进行迭代训练生成熵池参数;获取系统当前随机参数和当前熵池参数,通过离散处理及加密处理生成随机数,该方法提高了真随机数生成效率,且随机性高,安全性高。
在上述实施例的基础上,熵池参数通过预先的迭代训练生成,具体可以是:
获取初始熵池参数并存储,用以建立熵池,其中,初始熵池参数为系统初始随机参数或外部输入参数;对熵池进行循环初始化,直到初始化次数大于等于预设次数;其中,对熵池进行循环初始化,包括:采集系统随机参数,根据系统随机参数和初始熵池参数生成更新随机数,将更新随机数与初始熵池参数进行预设逻辑运算,生成更新熵池参数;将更新熵池参数替换初始熵池参数,并将初始化次数加一。
其中,初始熵池参数可以指,熵池初始化时第一次采集并存储的数据;其中初始熵池参数可以是系统收到熵池初始化指令时,采集的系统初始随机参数,可以是外部随机输入的参数。
其中对熵池进行的循环初始化过程,即为熵池参数的迭代过程,直到循环次数大于等于预设次数时,停止初始化。其中,系统随机参数和初始熵池参数可以通过与、或、非和异或等任一逻辑运算以及离散算法、加密算法等算法生成更新随机数。其中,更新随机数与初始熵池参数可以进行过与、或、非和异或等任一逻辑运算生成更新熵池参数。其中,初始熵池参数与更新熵池参数的字节数相同。
本实施例中初始熵池参数可以是系统初始随机参数或外部输入参数,将初始熵池参数与系统随机参数进行逻辑运算,生成更新随机数;并将更新随机数与初始熵池参数进一步逻辑运算,生成更新熵池参数,用以替换初始熵池参数;重复预设次数的迭代过程,用以作为预先的迭代训练,得到了随机性更高的熵池参数,从而提高了生成的随机数的随机性及安全性。并且,通过采集的系统随机参数生成随机数,提高了随机数生成效率。
进一步地,本实施例将给出一种“熵池参数通过预先的迭代训练生成”的可选的实施方式,具体是:
获取32字节系统初始随机数据或者32字节用户随机输入数据作为初始熵池参数并存储,用以建立熵池;
对熵池进行循环初始化,直到初始化次数等于64次;
其中,对熵池进行循环初始化,包括:
采集大于等于32字节的系统随机参数,基于SM3哈希算法,将大于等于32字节的系统随机参数和32字节的初始熵池参数拼接之后进行填充和迭代压缩,生成32字节的哈希值;
将32字节的哈希值拆分为两组16字节的数据,其中一组作为密钥数据,另一组作为原文数据,基于SM4加密算法,利用密钥数据将原文数据加密为16字节的加密值;
将16字节的加密值填充为32字节的随机数,作为更新随机数,将更新随机数与初始熵池参数进行异或运算,生成更新熵池参数;
将更新熵池参数替换初始熵池参数,并将初始化次数加一。
本实施例中将初始熵池参数与系统随机参数进行SM3哈希算法和SM4加密算法,生成更新随机数;并将更新随机数与初始熵池参数进行异或运算,生成更新熵池参数,用以替换初始熵池参数;重复64次迭代过程,用以作为预先的迭代训练,得到了随机性更高的熵池参数,从而提高了生成的随机数的随机性及安全性。
实施例二
图2是本发明实施例二提供的一种随机数生成装置结构示意图,本实施例可适用于随机数生成情况,例如可以是身份认证、移动支付、电子博彩等随机数生成情况。
参见图2,本实施例中随机数生成装置包括:
参数获取模块210,用于获取系统当前随机参数和当前熵池参数,其中,熵池参数通过预先迭代训练生成;
离散处理模块220,用于对当前随机参数和当前熵池参数进行离散处理,并根据离散处理结果生成密钥参数和原文参数;
随机数生成模块230,用于利用密钥参数对原文参数进行加密,生成随机数。
可选的,参数获取模块210,还可以包括:
熵池参数迭代训练模块,具体用于,
获取初始熵池参数并存储,用以建立熵池,其中,初始熵池参数为系统初始随机参数或外部输入参数;
对熵池进行循环初始化,直到初始化次数大于等于预设次数;
其中,对熵池进行循环初始化,包括:
采集系统随机参数,根据系统随机参数和初始熵池参数生成更新随机数,将更新随机数与初始熵池参数进行预设逻辑运算,生成更新熵池参数;
将更新熵池参数替换初始熵池参数,并将初始化次数加一。
其中,随机数生成模块230具体用于,
利用所述密钥参数对所述原文参数进行加密,生成加密参数;
根据所述随机数的需求字节数对所述加密参数进行分组,生成各分组参数,将所述各分组参数进行预设逻辑运算,生成所述随机数;
其中,所述各分组参数字节数等于所述需求字节数。
可选的,随机数生成装置,还可以包括:
当前熵池参数更新模块,具体用于,
将加密参数进行填补,生成填补随机数,其中,填补随机数的字节数与当前熵池参数的字节数相同;
将填补随机数与第一哈希参数进行预设逻辑运算生成更新参数,以更新当前熵池参数;或者,
将填补随机数与当前熵池参数进行预设逻辑运算生成更新参数,以更新当前熵池参数。
本实施例与实施例一提出的随机数生成方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。
实施例三
本实施例提供了一种计算机设备,可以用于随机数生成情况,例如可以是身份认证、移动支付、电子博彩等随机数生成情况。图3是本发明实施例三提供的一种计算机设备结构示意图。
参见图3,该计算机设备包括:
一个或多个处理器310;
存储器320,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器310执行,使得所述一个或多个处理器310实现如实施例一提出的随机数生成方法。
图3中以一个处理器为例;处理器和存储器可以通过总线或其他方式连接,图3中以通过总线连接为例。
存储器作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中计算机设备的随机数生成方法对应的程序指令/模块。处理器通过运行存储在存储器中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的随机数生成方法。
存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
另外,根据计算机设备的不同形式,除了处理器和存储器,计算机设备还可以包括其他模块或结构,例如,计算机设备可以是具有显示功能的设备,则包括显示屏幕,用于显示生成的随机数;又如,计算机设备可以是具有输入功能的设备,则还包括鼠标、键盘,用于用户输入初始熵池参数。
本实施例提出的计算机设备与实施例一提出的随机数生成方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。
实施例四
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一提出的随机数生成方法。
本实施例提出的计算机可读存储介质与实施例一提出的随机数生成方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见实施例一,并且本实施例与实施例一具有相同的有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

1.一种随机数生成方法,其特征在于,包括:
获取系统当前随机参数和当前熵池参数,其中,熵池参数通过预先迭代训练生成;
对所述当前随机参数和所述当前熵池参数进行离散处理,并根据离散处理结果生成密钥参数和原文参数;
利用所述密钥参数对所述原文参数进行加密,生成随机数。
2.根据权利要求1所述的方法,其特征在于,所述熵池参数通过预先迭代训练生成,包括:
获取初始熵池参数并存储,用以建立熵池,其中,所述初始熵池参数为系统初始随机参数或外部输入参数;
对所述熵池进行循环初始化,直到初始化次数大于等于预设次数;
其中,所述对所述熵池进行循环初始化,包括:
采集系统随机参数,根据所述系统随机参数和所述初始熵池参数生成更新随机数,将所述更新随机数与所述初始熵池参数进行预设逻辑运算,生成更新熵池参数;
将所述更新熵池参数替换所述初始熵池参数,并将所述初始化次数加一。
3.根据权利要求1所述的方法,其特征在于,所述利用所述密钥参数对所述原文参数进行加密,生成随机数,包括:
利用所述密钥参数对所述原文参数进行加密,生成加密参数;
根据所述随机数的需求字节数对所述加密参数进行分组,生成各分组参数,将所述各分组参数进行预设逻辑运算,生成所述随机数;
其中,所述各分组参数字节数等于所述需求字节数。
4.根据权利要求3所述的方法,其特征在于,在所述利用所述密钥参数对所述原文参数进行加密,生成随机数之后,还包括:
将所述加密参数进行填补,生成填补随机数,其中,所述填补随机数的字节数与所述当前熵池参数的字节数相同;
将所述填补随机数与所述离散处理结果进行预设逻辑运算生成更新参数,以更新所述当前熵池参数;或者,
将所述填补随机数与所述当前熵池参数进行预设逻辑运算生成更新参数,以更新所述当前熵池参数。
5.一种随机数生成装置,其特征在于,包括:
参数获取模块,配置于所述装置,用于获取系统当前随机参数和当前熵池参数,其中,熵池参数通过预先迭代训练生成;
离散处理模块,配置于所述装置,用于对所述当前随机参数和所述当前熵池参数进行离散处理,并根据离散处理结果生成密钥参数和原文参数;
随机数生成模块,配置于所述装置,用于利用所述密钥参数对所述原文参数进行加密,生成随机数。
6.根据权利要求5所述的装置,其特征在于,所述参数获取模块还包括:
熵池参数迭代训练模块,具体用于,
获取初始熵池参数并存储,用以建立熵池,其中,所述初始熵池参数为系统初始随机参数或外部输入参数;
对所述熵池进行循环初始化,直到初始化次数大于等于预设次数;
其中,所述对所述熵池进行循环初始化,包括:
采集系统随机参数,根据所述系统随机参数和所述初始熵池参数生成更新随机数,将所述更新随机数与所述初始熵池参数进行预设逻辑运算,生成更新熵池参数;
将所述更新熵池参数替换所述初始熵池参数,并将所述初始化次数加一。
7.根据权利要求5所述的装置,其特征在于,所述随机数生成模块具体用于:
利用所述密钥参数对所述原文参数进行加密,生成加密参数;
根据所述随机数的需求字节数对所述加密参数进行分组,生成各分组参数,将所述各分组参数进行预设逻辑运算,生成所述随机数;
其中,所述各分组参数字节数等于所述需求字节数。
8.根据权利要求7所述的装置,其特征在于,还包括:
当前熵池参数更新模块,具体用于,
将所述加密参数进行填补,生成填补随机数,其中,所述填补随机数的字节数与所述当前熵池参数的字节数相同;
将所述填补随机数与所述离散处理结果进行预设逻辑运算生成更新参数,以更新所述当前熵池参数;或者,
将所述填补随机数与所述当前熵池参数进行预设逻辑运算生成更新参数,以更新所述当前熵池参数。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的随机数生成方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的随机数生成方法。
CN201711147763.9A 2017-11-17 2017-11-17 随机数生成方法、装置、计算机设备及计算机可读介质 Pending CN107943450A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711147763.9A CN107943450A (zh) 2017-11-17 2017-11-17 随机数生成方法、装置、计算机设备及计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711147763.9A CN107943450A (zh) 2017-11-17 2017-11-17 随机数生成方法、装置、计算机设备及计算机可读介质

Publications (1)

Publication Number Publication Date
CN107943450A true CN107943450A (zh) 2018-04-20

Family

ID=61931834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711147763.9A Pending CN107943450A (zh) 2017-11-17 2017-11-17 随机数生成方法、装置、计算机设备及计算机可读介质

Country Status (1)

Country Link
CN (1) CN107943450A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959968A (zh) * 2018-07-23 2018-12-07 北京车和家信息技术有限公司 随机数序列生成方法及装置、车辆和存储介质
CN109840426A (zh) * 2019-03-05 2019-06-04 深圳市汇顶科技股份有限公司 加密方法、加密装置及电子设备
CN110008745A (zh) * 2019-03-29 2019-07-12 深圳供电局有限公司 一种加密方法、计算机设备和计算机存储介质
CN110210591A (zh) * 2019-06-05 2019-09-06 金邦达有限公司 一种智能ic卡个人化数据的写入方法、计算机装置及计算机可读存储介质
CN110399118A (zh) * 2019-07-15 2019-11-01 宇龙计算机通信科技(深圳)有限公司 一种随机数生成方法、装置、存储介质及电子设备
CN111222148A (zh) * 2019-12-26 2020-06-02 河南芯盾网安科技发展有限公司 密钥生成方法、加密方法、解密方法及装置
CN111290734A (zh) * 2020-03-05 2020-06-16 中安云科科技发展(山东)有限公司 一种真随机数获取方法、系统及密码机
CN112379859A (zh) * 2020-11-13 2021-02-19 北京灵汐科技有限公司 二值采样的处理方法及装置、对抗样本的生成方法及装置
CN112912838A (zh) * 2020-05-27 2021-06-04 华为技术有限公司 一种随机数生成装置及方法
CN116055039A (zh) * 2022-12-29 2023-05-02 北京海泰方圆科技股份有限公司 一种基于分组密码算法的随机数生成方法及装置
CN116301721A (zh) * 2022-12-27 2023-06-23 北京海泰方圆科技股份有限公司 一种随机数生成方法、装置、电子设备及介质
CN116743371A (zh) * 2023-07-19 2023-09-12 成都海泰方圆科技有限公司 一种随机数的确定方法及装置
CN118245019A (zh) * 2024-05-28 2024-06-25 山东云海国创云计算装备产业创新中心有限公司 真随机数发生器、真随机数生成方法、产品及介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1354848A (zh) * 1999-06-08 2002-06-19 通用器材公司 可靠的随机数发生器
CN1770094A (zh) * 2005-10-17 2006-05-10 浙江大学 高质量的真随机数产生器
US7469253B2 (en) * 2003-04-01 2008-12-23 Microsoft Corporation Associative hash partitioning using pseudo-random number generator
US7784086B2 (en) * 2006-03-08 2010-08-24 Panasonic Corporation Method for secure packet identification
CN102473098A (zh) * 2009-08-24 2012-05-23 微软公司 用于虚拟机的熵池
CN106030605A (zh) * 2013-12-31 2016-10-12 有限公司Ictk 数字值处理装置及方法
CN106775583A (zh) * 2016-11-18 2017-05-31 杭州电子科技大学 一种高速真随机数的产生方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1354848A (zh) * 1999-06-08 2002-06-19 通用器材公司 可靠的随机数发生器
US7469253B2 (en) * 2003-04-01 2008-12-23 Microsoft Corporation Associative hash partitioning using pseudo-random number generator
CN1770094A (zh) * 2005-10-17 2006-05-10 浙江大学 高质量的真随机数产生器
US7784086B2 (en) * 2006-03-08 2010-08-24 Panasonic Corporation Method for secure packet identification
CN102473098A (zh) * 2009-08-24 2012-05-23 微软公司 用于虚拟机的熵池
CN106030605A (zh) * 2013-12-31 2016-10-12 有限公司Ictk 数字值处理装置及方法
CN106775583A (zh) * 2016-11-18 2017-05-31 杭州电子科技大学 一种高速真随机数的产生方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108959968A (zh) * 2018-07-23 2018-12-07 北京车和家信息技术有限公司 随机数序列生成方法及装置、车辆和存储介质
CN109840426B (zh) * 2019-03-05 2023-07-25 深圳市汇顶科技股份有限公司 加密方法、加密装置及电子设备
CN109840426A (zh) * 2019-03-05 2019-06-04 深圳市汇顶科技股份有限公司 加密方法、加密装置及电子设备
CN110008745A (zh) * 2019-03-29 2019-07-12 深圳供电局有限公司 一种加密方法、计算机设备和计算机存储介质
CN110008745B (zh) * 2019-03-29 2024-01-16 深圳供电局有限公司 一种加密方法、计算机设备和计算机存储介质
CN110210591A (zh) * 2019-06-05 2019-09-06 金邦达有限公司 一种智能ic卡个人化数据的写入方法、计算机装置及计算机可读存储介质
CN110399118A (zh) * 2019-07-15 2019-11-01 宇龙计算机通信科技(深圳)有限公司 一种随机数生成方法、装置、存储介质及电子设备
CN111222148A (zh) * 2019-12-26 2020-06-02 河南芯盾网安科技发展有限公司 密钥生成方法、加密方法、解密方法及装置
CN111290734A (zh) * 2020-03-05 2020-06-16 中安云科科技发展(山东)有限公司 一种真随机数获取方法、系统及密码机
CN111290734B (zh) * 2020-03-05 2023-09-08 中安云科科技发展(山东)有限公司 一种真随机数获取方法、系统及密码机
CN112912838A (zh) * 2020-05-27 2021-06-04 华为技术有限公司 一种随机数生成装置及方法
CN112379859B (zh) * 2020-11-13 2023-08-18 北京灵汐科技有限公司 二值采样的处理方法及装置、对抗样本的生成方法及装置
CN112379859A (zh) * 2020-11-13 2021-02-19 北京灵汐科技有限公司 二值采样的处理方法及装置、对抗样本的生成方法及装置
CN116301721A (zh) * 2022-12-27 2023-06-23 北京海泰方圆科技股份有限公司 一种随机数生成方法、装置、电子设备及介质
CN116301721B (zh) * 2022-12-27 2023-09-19 北京海泰方圆科技股份有限公司 一种随机数生成方法、装置、电子设备及介质
CN116055039A (zh) * 2022-12-29 2023-05-02 北京海泰方圆科技股份有限公司 一种基于分组密码算法的随机数生成方法及装置
CN116055039B (zh) * 2022-12-29 2023-11-14 北京海泰方圆科技股份有限公司 一种基于分组密码算法的随机数生成方法及装置
CN116743371A (zh) * 2023-07-19 2023-09-12 成都海泰方圆科技有限公司 一种随机数的确定方法及装置
CN118245019A (zh) * 2024-05-28 2024-06-25 山东云海国创云计算装备产业创新中心有限公司 真随机数发生器、真随机数生成方法、产品及介质

Similar Documents

Publication Publication Date Title
CN107943450A (zh) 随机数生成方法、装置、计算机设备及计算机可读介质
JP6285536B2 (ja) データを暗号化するシステムおよび方法
US9553722B2 (en) Generating a key based on a combination of keys
JP5412414B2 (ja) 検索可能暗号処理システム
US5073934A (en) Method and apparatus for controlling the use of a public key, based on the level of import integrity for the key
CN105007157B (zh) 基于设备生成的密钥来生成和管理多个基密钥
CN101145911B (zh) 具有私密保护及口令找回功能的身份认证方法
CN114036565A (zh) 隐私信息检索系统及隐私信息检索方法
CN115051798A (zh) 一种随机数生成方法、装置、电子设备及存储介质
US11934323B2 (en) Diversifying a base symmetric key based on a public key
US20200177380A1 (en) Seed key expansion method and its uses
CN109934001A (zh) 一种基于正态云模型的数据加密方法
Prasanna et al. Performance analysis of md5 and sha-256 algorithms to maintain data integrity
Jallouli Chaos-based security under real-time and energy constraints for the Internet of Things
CN103400072A (zh) 哈希值密码的恢复方法和装置
KR101445339B1 (ko) 기밀성과 무결성을 제공하는 통합 암호화 장치 및 그 방법
Salkanovic et al. Analysis of cryptography algorithms implemented in android mobile application
CN104410498A (zh) 一种动态口令认证方法及其系统
CN116668005A (zh) 一种加密方法、装置、设备及介质
CN105959106A (zh) 一种低复杂度数字加密方法
Sivakumar et al. Generation of random key stream using word grid puzzle for the applications of cryptography
Nivetha et al. A comparative analysis of cryptography algorithms
CN114462088A (zh) 用于对共享数据进行去标识的方法及装置
TWI665901B (zh) 加密方法與解密方法
Sahni A review on cryptographic hashing algorithms for message authentication

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20180420