一种随机数生成方法、装置及电子设备与流程

文档序号:37755933发布日期:2024-04-25 10:42阅读:6来源:国知局
一种随机数生成方法、装置及电子设备与流程

本发明涉及数据处理,尤其涉及一种随机数生成方法、装置及电子设备。


背景技术:

1、随着计算机和通信技术的快速发展,信息安全的意义也越来越突显。为了保护好信息数据,少不了数据加密和身份认证,进而需要随机数,而且随机数的质量直接影响到密钥生成、数字签名以及其他密码算法和协议的实际安全性。密码安全需求使硬件和软件随机数发生器有了应用场景。

2、基于软件编程实现的伪随机数生成器在实用性、低成本和易实现方面均占居优势,甚至更易达到随机性检测要求。依据不同的应用需求和安全理念,已出现了很多种软件随机数生成器方案。基于des、3des、aes等分组密码算法和md5 hash函数算法构建的随机数生成器较为多见,且一般采用类似美国伪随机数生成器标准ansi x9.17的逻辑结构。由于基于des或3des实现的ansi x9.17伪随机数生成器方案每次只产生64比特随机数,随机数生产效率较低。而且,des和3des算法正在逐渐地退出舞台;在ansi x9.17逻辑结构中,每产生一个随机数,需要调用3次密钥进行加密运算,生成随机数的效率不高。

3、当前实用的软件随机数发生器,如上所述,主要缺点是效率方面还有提升空间。因此,在保证安全生成随机数的前提下,如何提高密码运算速度,较少占用存储空间及降低安全管理成本,使得攻击者难以精准复现执行过程中的参数或文件,是随机数发生器设计中需要解决的技术问题。


技术实现思路

1、本发明实施例提供一种随机数生成方法、装置及电子设备,解决了密码运算速度慢,占用存储空间较多,安全管理成本较高,攻击者容易精准复现执行过程中的参数或文件的问题。

2、第一方面,本发明提供了一种随机数生成方法,包括:

3、获取符合随机性要求的第二数据b;连续n次执行b1=t(b,t),若不满足n次则由n-1次产生的b1更新第二数据b=g(b1),其中,n为大于1的正整数,t为当前获得的系统时间,b1为第二变换数据,t()为含两个输入变元的非线性第一压缩函数,g()为含一个输入变元的第二函数;获取符合随机性要求的第一数据a;输出随机数r,随机数r通过以下公式获取:随机数r=f(a,b1),其中f()为含两个输入变元的非线性第三压缩函数,第三压缩函数f()与第一压缩函数t()中模数的大小不同。

4、本发明的实施例技术方案,首先,第二数据b的更新,由第一压缩函数t()和第二函数g()的n次迭代实现。这也是多次瞬时系统时间作用下的自身迭代,具有偶然性和不连续性。即使第一数据a被窃取,第二数据b不能被预测,仍然能够达到随机数r的安全性。其次,第一函数t()的被n次调用,大大增加了第二数据b的变化熵量,即使攻击者意外获得了第二数据b,也难以确定下一次将使用的第二数据b的值。

5、可选的,作为其中一种实施例,获取符合随机性要求的第一数据a及第二数据b之前,包括:获取第二数据b的初始值;连续n次执行b1=t(b,t),若不满足n次则由n-1次产生的b1更新第二数据b=g(b1);获取第一数据a的初始值;生成参数q,参数q通过以下公式获取:q=f(a,b1);更新第一数据a,第一数据a=r⊕β(a),其中,第四函数β()为第一数据a的反馈函数,⊕为异或运算;迭代第一数据s次,s可以为1至5之间的正整数;输出符合随机性要求的第一数据a及第二数据b。

6、本发明的实施例技术方案,在数据更新方面,第一数据a采用了移位反馈方法,这样的反馈逻辑,可保证第一数据有很大的变化周期,不会出现第一数据状态重复。第二数据b的更新,由第一压缩函数t()和第二函数g()的n次迭代实现。这也是多次瞬时系统时间作用下的自身迭代,具有偶然性和不连续性。即使第一数据a被窃取,第二数据b不能被预测,仍然能够达到随机数随机数r的安全性。

7、可选的,作为其中一种实施例,输出随机数r之后,还包括:

8、更新所述第一数据a,所述第一数据a=β(a)。

9、可选的,作为其中一种实施例,第二函数g()是为单变元非线性函数。

10、本发明的实施例技术方案,第二函数g()可以实现一个n比特数变换为n比特数,第二数据b1经过变换后并非原始数据,可以保证数据被攻破的风险,保证了数据的安全性。

11、可选的,作为其中一种实施例,第一数据a中的字节数大于等于4字节、小于等于64字节。

12、本发明的实施例技术方案,考虑第一数据a的安全和实用性,选择字节数为4字节——64字节为宜。如果数据字节数太长会占用太多的内存空间,运算效率会降低;如果字节数太短会存在安全性隐患。

13、可选的,作为其中一种实施例,第二数据b中的字节数为大于等于8字节、小于等于32字节。

14、本发明的实施例技术方案,考虑第二数据b的安全和实用性,选择字节数为8字节——32字节为宜。如果数据字节数太长会占用太多的内存空间,运算效率会降低;如果字节数太短会存在安全性隐患。

15、可选的,作为其中一种实施例,第四函数β()为极大周期序列的二元域上线性递归函数且满足以下公式:

16、若al为奇数,β(a)=al⊕p;

17、若al为偶数,β(a)=al;

18、其中,al的值为所述第一数据a循环左移一位,p为所述第四函数β()确定的gf2域上递归多项式的中间项系数,所述中间项不含最高次项和最低次项。

19、本发明的实施例技术方案,第一数据a采用了移位反馈方法,这样的反馈逻辑,可保证第一数据有很大的变化周期,不会出现第一数据状态重复。

20、可选的,作为其中一种实施例,第三压缩函数f是以第一数据a和第二变换数据b1为输入变元的基于模运算的高次二元多项式。

21、可选的,作为其中一种实施例,第二函数g()满足以下公式:

22、g(b1)=b1x mod(2y-z);

23、其中,b1为第二变换数据,x为正整数,y为与计算机字长相关的正整数,z为常数。

24、本发明的实施例技术方案,第二函数g可以实现一个n比特数变换为n比特数,第二数据b1经过变换后并非原始数据,可以保证数据被攻破的风险,保证了数据的安全性。

25、可选的,作为其中一种实施例,第三压缩函数f()满足以下公式:

26、f(a,b1)=aax+bb1y+(a⊕b1⊕z)mod m;

27、其中,a为所述第一数据,b1为所述第二变换数据,a为不为0的正整数,b为不为0的正整数,x为大于1的正整数,y为大于1的正整数,模数m的大小与所述第一数据a一致。

28、本发明的实施例技术方案,第三压缩函数f()为两个输入变元的非线性函数,一般采用整数加乘模运算的二元高次多项式较为方便。第三压缩函数f()中模数为素数,采用素数模数可保证方案的抗攻击强度。第三压缩函数f()的特点是由第一数据a和第二变换数据b1容易获取f(a,b1)的数值,而由f(a,b1)的数值难以猜测第一数据a和第二变换数据b1,保证了数据的安全性。

29、第二方面,本发明实施例提供了一种基于随机数生成装置,包括:

30、第一获取模块,用于获取符合随机性要求的第二数据b;

31、第一执行模块,用于执行如下步骤:

32、连续n次执行b1=t(b,t),若不满足n次则n-1次产生的b1更新第二数据b=g(b1),其中,n为大于1的正整数,t为当前获得的系统时间,b1为第二变换数据,t()为含两个输入变元的非线性第一压缩函数,g()为含一个输入变元的第二函数;第二获取模块,用于获取符合随机性要求的第一数据a;输出模块,用于输出随机数r,随机数r通过以下公式获取:随机数r=f(a,b1),其中f()为含两个输入变元的非线性第三压缩函数,第三压缩函数f()与所述第一压缩函数t()中模数的大小不同。

33、可选的,作为其中一种实施例,获取模块之前,包括:第三获取模块,用于第二数据b的初始值;第二执行模块,用于执行如下步骤:连续n次执行b1=t(b,t),若不满足n次则由n-1次产生的b1更新第二数据b=g(b1);第四获取模块,用于获取第一数据a的初始值;生成模块,生成参数q,参数q通过以下公式获取:q=f(a,b1);第二更新模块,用于更新第一数据a,第一数据a=q⊕β(a),其中,第四函数β()为第一数据a的反馈函数,⊕为异或运算;迭代模块,用于迭代第一数据s次,s为1至5之间的正整数;第二输出模块,用于输出符合随机性要求的第一数据a及第二数据b。

34、可选的,作为其中一种实施例,输出模块之后,还包括:

35、第二更新模块,用于更新第一数据a,第一数据a=β(a)。

36、可选的,作为其中一种实施例,第二函数g()为单变元非线性函数。

37、可选的,作为其中一种实施例,第一数据a中的字节数为大于等于4字节、小于等于64字节。

38、可选的,作为其中一种实施例,第二数据b中的字节数为大于等于8字节、小于等于32字节。

39、可选的,作为其中一种实施例,第四函数β()为极大周期序列的二元域上线性递归函数且满足以下公式:

40、若al为奇数,β(a)=al⊕p;

41、若al为偶数,β(a)=al;

42、其中,al的值为所述第一数据a循环左移一位,p为所述第四函数β()确定的gf2域上递归多项式的中间项系数,所述中间项不含最高次项和最低次项。

43、可选的,作为其中一种实施例,第三压缩函数f()是以所述第一数据a和所述第二变换数据b1为输入变元的基于模运算的高次二元多项式。

44、可选的,作为其中一种实施例,第二函数g()满足以下公式:

45、g(b1)=b1x mod(2y-z);

46、其中,b1为所述第二变换数据,x为正整数,y为与计算机字长相关的正整数,z为常数。

47、可选的,作为其中一种实施例,第三压缩函数f()满足以下公式:

48、f(a,b1)=aax+bb1y+(a⊕b1⊕z)mod m;

49、其中,a为所述第一数据,b1为所述第二变换数据,a为不为0的正整数,b为不为0的正整数,x为大于1的正整数,y为大于1的正整数,模数m的大小与第一数据a一致。

50、第三方面,本发明实施例提供了一种电子设备,包括:处理器和存储器;

51、所述处理器用于调用所述存储器中存储的程序,当所述程序被执行时,使得处理器执行上述第一方面中任一项所述的方法。

52、第四方面,本发明实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述第一方面中任一项所述的方法。

53、第二方面、第三方面、第四方面的有益效果,可参见上述第一方面的有益效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1