一种随机数生成方法、装置、电子设备及存储介质制造方法及图纸

技术编号:34920800 阅读:22 留言:0更新日期:2022-09-15 07:12
本发明专利技术提供了一种随机数生成方法、装置、电子设备及存储介质,属于数据处理技术领域,用于解决现有信息通信与处理技术中生成随机数问题,采用的技术方案是对实时采集的环境数据进行处理,获得环境样本数据,根据环境样本数据及预设函数,生成第一临时数据;获取存储的随机种子数据,基于随机种子数据及第一临时数据,确定出第二临时数据;根据第二临时数据及预设的哈希算法,获得预设长度的哈希值;根据预设长度的哈希值,更新随机种子数据,并生成第一长度的随机数;其中,预设长度大于第一长度。本发明专利技术的技术方案,仅需调用一次哈希运算,即可以实现对随机种子的更新及随机数的生成。成。成。

【技术实现步骤摘要】
一种随机数生成方法、装置、电子设备及存储介质


[0001]本专利技术涉及数据处理
,特别涉及一种随机数生成方法、装置、电子设备及存储介质。

技术介绍

[0002]随着计算机系统和通信技术的快速发展,信息的安全性对于人们来说也越来越重要,为了提高信息的安全性,通常需要对信息进行加密,而采用随机数配置某些参数是常见的实用方式之一,因此,生成一个高质量的随机数对于信息加密至关重要。
[0003]随机数要求具有一定的不可预测性,即获得的数据没有任何规律,是完全随机的,目前,基于硬件的随机数发生器和基于物理噪声的真随机数发生器已经被广泛的采用,但在某些场景下,基于硬件的随机数发生器由于需要相应的硬件支持而难以满足当前的实际应用场景,而基于软件实现的伪随机数生成器在实用性、低成本和易实现方面均占居优势,因此,相应的伪随机数的算法应运而生。
[0004]目前,基于软件实现的伪随机数常采用美国伪随机数生成器标准ANSI X9.17的逻辑结构,该结构每产生一个随机数,需要调用3次密钥进行加密运算,运算效率不高,且,需要安全存储加密密钥及内部状态种子数据,即需要安全存储两种数据以便于生成随机数。
[0005]因此,在保证安全生成随机数的前提下,如何生成满足要求的随机数,减少加密运算次数,提高随机数的效率,减少安全存储数据的个数,以减少存储空间及降低安全管理成本,是一个需要解决的技术问题。

技术实现思路

[0006]本专利技术实施例公开了一种随机数生成方法、装置、电子设备及存储介质,仅需调用一次哈希运算,即可以实现对随机种子的更新及随机数的生成。
[0007]第一方面,本专利技术实施例提供了一种随机数生成方法,包括:
[0008]对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第一临时数据;
[0009]获取存储的随机种子数据,基于所述随机种子数据及所述第一临时数据,确定出第二临时数据;根据所述第二临时数据及预设的哈希算法,获得预设长度的哈希值;
[0010]根据所述预设长度的哈希值,更新所述随机种子数据,并生成第一长度的随机数;
[0011]其中,所述预设长度大于所述第一长度。
[0012]本专利技术的实施例的技术方案,仅调用一次哈希算法即可生成随机数,省去了调用加密运算的次数,提高了生成随机数的效率,且在实施方案的过程中,利用了各种环境数据作为参数,增加了熵源的多样性和复杂性,进而使获得的输入参数具有一定的复杂性、随机性和不可预测性。将输入参数作为哈希算法的输入来生成随机数,生成的随机数满足了安全性及不可预测性的要求,且随机数是由哈希算法产生的,哈希算法的安全性得到了公认,哈希值符合随机性指标已经得到论证。且本专利技术的技术方案,不需要使用密钥,仅有一个随
机数种子数据需要安全性存放,减少了存储空间及降低了安全管理成本,技术方案逻辑结构简洁高效,易于推广及实现,可应用于各种需要随机数的场景,应用场景广泛。
[0013]在一些实施例中,所述基于所述随机种子数据及所述第一临时数据,确定出第二临时数据,具体包括:
[0014]将所述随机种子数据、所述第一临时数据,拼接为所述第二临时数据。
[0015]在一些实施例中,所述将所述随机种子数据、所述第一临时数据,拼接为所述第二临时数据,具体包括:
[0016]将所述随机种子数据转换为第一字符串;
[0017]将所述第一临时数据转换为第二字符串;
[0018]将所述第一字符串与所述第二字符串进行拼接,获得第三字符串;
[0019]所述第三字符串为所述第二临时数据。
[0020]在一些实施例中,所述根据所述预设长度的哈希值,更新所述随机种子数据,并生成第一长度的随机数,具体包括:
[0021]取所述预设长度的哈希值的部分/全部,拆分为第一子数据、第二子数据,其中,所述第二子数据的长度大于等于所述第一长度;
[0022]所述第一子数据用于更新所述随机种子数据,所述第二子数据用于生成所述随机数。
[0023]用拆分的方式确定第一子数据、第二子数据,可以确保第一子数据、第二子数据中不包含交叠的部分数据,即第一子数据、第二子数据之间不具有可利用的规律,提高了生成随机数的安全性。且本专利技术实施例的技术方案,利用哈希算法产生的哈希值,同时完成了对随机种子数据的更新及随机数的生成,相较于传统的生成随机数的方式来说,不需要通过多次调用加密算法生成随机数后再生成随机种子,不需要基于密钥调用加密算法,节省了系统资源的开销,在保证了随机数的安全性及不可预测性的同时,还提高了生成随机数的效率。
[0024]在一些实施例中,所述取所述预设长度的哈希值的部分/全部,拆分为第一子数据、第二子数据,具体包括:
[0025]将所述预设长度的哈希值转换为第四字符串;
[0026]将所述第四字符串的部分/全部字符串,拆分为第一子字符串、第二子字符串;
[0027]所述第一子字符串为所述第一子数据,所述第二子字符串为所述第二子数据。
[0028]在一些实施例中,所述第一子数据用于更新所述随机种子数据,具体包括:
[0029]基于当前存储的随机种子数据与所述第一子数据,生成新的随机种子数据,用所述新的随机种子数据更新存储的随机种子数据。
[0030]本专利技术的实施例在生成新的随机种子数据时,基于当前存储的随机种子数据与第一子数据共同生成的,即使第一子数据被破译者截取,破译者也无法获得随机种子的存储状态,保证了随机种子的安全性,在利用当前的随机种子及第一子数据生成新的随机种子数据后,将新的随机种子数据代替原来的随机种子,保证了随机种子动态的随机性。
[0031]在一些实施例中,所述基于当前存储的随机种子数据与所述第一子数据,生成新的随机种子数据,具体包括:
[0032]将当前存储的随机种子数据与所述第一子数据进行异或运算,将运算获得的数
据,作为所述新的随机种子数据;或者
[0033]将当前存储的随机种子数据与所述第一子数据进行拼接,获得临时拼接数据;并根据当前存储的随机种子数据的长度,从所述临时拼接数据中截取出相同长度且与当前存储的随机种子数据不完全相同的数据,作为所述新的随机种子数据;或者
[0034]从当前存储的随机种子数据及所述第一子数据中分别选取一部分数据,并将选取的各数据重新排列组合,作为所述新的随机种子数据;其中,被选取数据的总长度与当前存储的随机种子数据的长度相同。
[0035]该种更新方式,综合考虑了原随机种子,及由哈希算法生成的从中截取的第一子数据的随机性,哈希算法的安全性很高,因此,哈希算法生成的哈希值的结果也无法被破解者所破译的,从中截取出的数据片段作为第一子数据同样对于破解者来说无法获取,因此,将第一子数据与原随机种子进行运算时,破译者无法有效的猜测第一子数据,更无从下手获得随机种子数据,因此,该种方式,生成随机种子的安全性很高,满足了生成随机种子本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种随机数生成方法,其特征在于,包括:对实时采集的环境数据进行处理,获得环境样本数据,根据所述环境样本数据及预设函数,生成第一临时数据;获取存储的随机种子数据,基于所述随机种子数据及所述第一临时数据,确定出第二临时数据;根据所述第二临时数据及预设的哈希算法,获得预设长度的哈希值;根据所述预设长度的哈希值,更新所述随机种子数据,并生成第一长度的随机数;其中,所述预设长度大于所述第一长度。2.根据权利要求1所述的方法,其特征在于,所述基于所述随机种子数据及所述第一临时数据,确定出第二临时数据,具体包括:将所述随机种子数据、所述第一临时数据,拼接为所述第二临时数据。3.根据权利要求2所述的方法,其特征在于,所述将所述随机种子数据、所述第一临时数据,拼接为所述第二临时数据,具体包括:将所述随机种子数据转换为第一字符串;将所述第一临时数据转换为第二字符串;将所述第一字符串与所述第二字符串进行拼接,获得第三字符串;所述第三字符串为所述第二临时数据。4.根据权利要求1所述的方法,其特征在于,所述根据所述预设长度的哈希值,更新所述随机种子数据,并生成第一长度的随机数,具体包括:取所述预设长度的哈希值的部分/全部,拆分为第一子数据、第二子数据,其中,所述第二子数据的长度大于等于所述第一长度;所述第一子数据用于更新所述随机种子数据,所述第二子数据用于生成所述随机数。5.根据权利要求4所述的方法,其特征在于,所述取所述预设长度的哈希值的部分/全部,拆分为第一子数据、第二子数据,具体包括:将所述预设长度的哈希值转换为第四字符串;将所述第四字符串的部分/全部字符串,拆分为第一子字符串、第二子字符串;所述第一子字符串为所述第一子数据,所述第二子字符串为所述第二子数据。6.根据权利要求4所述的方法,其特征在于,所述第一子数据用于更新所述随机种子数据,...

【专利技术属性】
技术研发人员:张玉安胡伯良蒋红宇
申请(专利权)人:北京海泰方圆科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1