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

技术编号:38013147 阅读:13 留言:0更新日期:2023-06-30 10:36
本发明专利技术涉及一种随机数生成方法、装置、电子设备及介质。本申请实施例中,获取N个随机数种子,所述N为大于等于2的自然数;使用所述N个随机数种子互助式更新获得N个更新的随机数种子,所述互助式更新为至少一个更新的随机数种子需要至少两个随机数种子参与获得;使用所述N个更新的随机数种子获得随机数。本实施例可使用较少随机数种子生成随机数,占用内存空间少,且N个随机数种子与输出的随机数之间相关性很弱,攻击者很难由随机数确定N个随机数种子,有助于提高随机数发生器装置的安全性。有助于提高随机数发生器装置的安全性。有助于提高随机数发生器装置的安全性。

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


[0001]本申请涉及信息安全领域,一种随机数生成方法、装置、设备及介质。

技术介绍

[0002]随着计算机系统和通信技术的快速发展,信息的安全性对于人们来说也越来越重要,为了提高信息的安全性,通常需要对信息进行加密,而采用随机数配置某些参数是常见的实用方式之一,因此,生成一个高质量的随机数对于信息加密至关重要。
[0003]随机数要求具有一定的不可预测性,即获得的数据没有任何规律,是完全随机的,目前,基于硬件的随机数发生器和基于物理噪声的真随机数发生器已经被广泛的采用,但在某些场景下,基于硬件的随机数发生器由于需要相应的硬件支持而难以满足当前的实际应用场景,而基于软件实现的伪随机数生成器在实用性、低成本和易实现方面均占居优势,因此,相应的伪随机数的算法应运而生。
[0004]基于梅森旋转算法的MT19937伪随机数生成算法,可以产生高质量的伪随机数,且反复周期特别巨大。可是,它至少要占用624个整形字(2496字节)的内存空间,在软件随机数发生器设计方面,这属于海量种子空间。在获得了624个随机数以后,攻击者可以求出随机数种子,进而可以预测后续或先前的随机数,也就是说,该随机数生成算法可以被破解。因此,有必要设计一种拥有类似功能的随机数生成算法,满足占用内存少、难以被破解,而且还可以更快地产生高质量随机数。

技术实现思路

[0005]本申请实施例提供了一种随机数生成方法、装置、电子设备及介质,使占用内存空间较少,容易实现。
[0006]本申请实施例提供的技术方案如下:
[0007]第一方面,本专利技术实施例提供了一种随机数生成方法,其特征在于,所述方法包括:
[0008]获取N个随机数种子,所述N为大于等于2的自然数;
[0009]使用所述N个随机数种子互助式更新获得N个更新的随机数种子,所述互助式更新为至少一个更新的随机数种子需要至少两个随机数种子参与获得;
[0010]使用所述N个更新的随机数种子获得随机数。
[0011]根据该设计,提供了一种占用内存空间较少,随机数生成效率高的随机数生成方法。
[0012]在一种可能的设计中,所述使用所述N个随机数种子互助式更新获得N个更新的随机数种子之前,还包括:
[0013]初始化所述N个随机数种子,所述初始化N个随机数种子仅在首次互助式更新前进行;
[0014]所述初始化是通过预设的规则对N个随机数种子做Q次迭代运算获得初始化后的N
个随机数种子,其中,Q为自然数。
[0015]在一种可能的设计中,其特征在于,所述使用N个随机数种子互助式更新获得N个更新的随机数种子,具体包括:
[0016]若N=3,使用第一随机数种子和第三随机数种子获得更新的第一随机数种子,使用第一随机数种子和第二随机数种子获得更新的第二随机数种子,使用第二随机数种子和第三随机数种子以及更新的第一随机数种子获得更新的第三随机数种子。
[0017]在一种可能的设计中,其特征在于,使用第一随机数种子和第三随机数种子获得更新的第一随机数种子,包括:
[0018]使用第一随机数种子、第三随机数种子以及转换函数通过逻辑运算和模运算获得更新的第一随机数种子,其中,所述转换函数是通过系统时间与常数进行逻辑运算和模运算获得的。
[0019]在一种可能的设计中,其特征在于,使用第一随机数种子和第二随机数种子获得更新的第二随机数种子,包括:
[0020]使用第一随机数种子、第二随机数种子以及转换函数通过逻辑运算和模运算获得更新的第二随机数种子,其中,所述转换函数是通过第一随机数种子与常数进行逻辑运算以及模运算获得的。
[0021]在一种可能的设计中,其特征在于,使用第二随机数种子和第三随机数种子以及更新的第一随机数种子获得更新的第三随机数种子,包括:
[0022]使用第二随机数种子、第三随机数种子、更新的第一随机数种子以及转换函数通过逻辑运算和模运算获得更新的第三随机数种子,其中,所述转换函数是使用第二随机数种子异或更新的第一随机数种子的结果,再通过与常数进行逻辑运算以及模运算获得的。
[0023]在一种可能的设计中,其特征在于,所述使用所述N个更新的随机数种子获得随机数,包括:
[0024]若N=3,使用更新的第二随机数种子、更新的第三随机数种子以及转换函数通过逻辑运算和右移运算获得随机数,其中,所述转换函数是通过更新的第三随机数种子与常数进行逻辑运算和模运算获得的。
[0025]第二方面,一种随机数生成装置,所述装置包括获取模块、更新模块和随机数获得模块以及初始化模块。其中:
[0026]获取模块,用于获取N个随机数种子,所述N为大于等于2的自然数;
[0027]更新模块,用于使用所述N个随机数种子互助式获得N个更新的随机数种子,所述互助式更新为至少一个更新的随机数种子需要至少两个随机数种子参与获得;
[0028]随机数获得模块,用于使用所述N个更新的随机数种子获得随机数。
[0029]在一种可能的设计中,其特征在于,所述使用所述N个随机数种子互助式更新获得更新的N个随机数种子之前,所述装置还包括:
[0030]初始化模块,用于初始化所述N个随机数种子,所述初始化N个随机数种子仅在首次互助式更新前进行;
[0031]所述初始化是通过预设的规则对N个随机数种子做Q次迭代运算。获得初始化后的N个随机数种子,其中,Q为自然数。
[0032]在一种可能的设计中,其特征在于,所述使用N个随机数种子互助式更新获得N个
更新的随机数种子,所述装置还包括:
[0033]更新的随机数种子获得模块,用于当N=3时,使用第一随机数种子和第三随机数种子获得更新的第一随机数种子,使用第一随机数种子和第二随机数种子获得更新的第二随机数种子,使用第二随机数种子和第三随机数种子以及更新的第一随机数种子获得更新的第三随机数种子。
[0034]在一种可能的设计中,其特征在于,使用第一随机数种子和第三随机数种子获得更新的第一随机数种子,所述装置还包括:
[0035]更新的第一随机数种子获得模块,用于使用第一随机数种子、第三随机数种子以及转换函数通过逻辑运算和模运算获得更新的第一随机数种子,其中,所述转换函数是通过系统时间与常数进行逻辑运算和模运算获得的。
[0036]在一种可能的设计中,其特征在于,使用第一随机数种子和第二随机数种子获得更新的第二随机数种子,所述装置还包括:
[0037]更新的第二随机数种子获得模块,使用第一随机数种子、第二随机数种子以及转换函数通过逻辑运算和模运算获得更新的第二随机数种子,其中,所述转换函数是通过第一随机数种子与常数进行逻辑运算以及模运算获得的。
[0038]在一种可能的设计中,其特征在于,使用第二随机数种子和第三随机数种子以及更新的第一随机数种子获得更新的第三随机数种子,所述装置还包括:
[0039本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种随机数生成方法,其特征在于,所述方法包括:获取N个随机数种子,所述N为大于等于2的自然数;使用所述N个随机数种子互助式更新获得N个更新的随机数种子,所述互助式更新为至少一个更新的随机数种子需要至少两个随机数种子参与获得;使用所述N个更新的随机数种子获得随机数。2.根据权利要求1所述的方法,其特征在于,所述使用所述N个随机数种子互助式更新获得N个更新的随机数种子之前,还包括:初始化所述N个随机数种子,所述初始化N个随机数种子仅在首次互助式更新前进行;所述初始化是通过预设的规则对N个随机数种子做Q次迭代运算,获得初始化后的N个随机数种子,其中,Q为自然数。3.根据权利要求1所述的方法,其特征在于,所述使用N个随机数种子互助式更新获得N个更新的随机数种子,具体包括:若N=3,使用第一随机数种子和第三随机数种子获得更新的第一随机数种子,使用第一随机数种子和第二随机数种子获得更新的第二随机数种子,使用第二随机数种子和第三随机数种子以及更新的第一随机数种子获得更新的第三随机数种子。4.根据权利要求3所述的方法,其特征在于,使用第一随机数种子和第三随机数种子获得更新的第一随机数种子,包括:使用第一随机数种子、第三随机数种子以及转换函数通过逻辑运算和模运算获得更新的第一随机数种子,其中,所述转换函数是通过系统时间与常数进行逻辑运算和模运算获得的。5.根据权利要求3所述的方法,其特征在于,使用第一随机数种子和第二随机数种子获得更新的第二随机数种子,包括:使用第一随机数种子、第二随机数种子以及转换函数通过逻辑运算和模运算获得更新的第二随机数种子,其中,所述转换函...

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

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

1