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

技术编号:23445302 阅读:25 留言:0更新日期:2020-02-28 19:37
本申请公开了一种随机比特生成方法、装置及一种电子设备和计算机可读存储介质,该方法包括:获取输入熵和请求比特长度;利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态;其中,所述第一函数为基于SM4的导出函数,所述第二函数为基于SM4的状态更新函数;根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特。本申请提供的随机比特生成方法,利用软件实现随机比特的生成,且采用外部提供的熵源,解决了熵源必需集成在内部的问题。必要时可以将熵源和本申请提供的随机比特生成方法封装在一起,即可得到传统意义上的随机数发生器,充分考虑软件和硬件的实现方式。

A random bit generation method, device, electronic equipment and storage medium

【技术实现步骤摘要】
一种随机比特生成方法、装置及电子设备和存储介质
本申请涉及密码学
,更具体地说,涉及一种随机比特生成方法、装置及一种电子设备和一种计算机可读存储介质。
技术介绍
二元随机序列在密码应用中占有举足轻重的地位。现在大量的计算机系统的安全性需要依赖于二元随机序列,比如各种密码算法中使用的密钥、非对称密码算法RSA加密以及数字签名方案中生成的大素数、挑战应答身份识别系统中的挑战数等,这些都充分体现了二元随机序列的实际使用价值。相关技术中实现的随机比特生成方法基于硬件设计的随机数发生器,不利于软件密码模块等的使用。另外,在相关技术中随机数发生器的内部必需集成熵源,使得软件上难以实现。因此,如何在软件上实现随机比特的生成是本领域技术人员需要解决的技术问题。
技术实现思路
本申请的目的在于提供一种随机比特生成方法、装置及一种电子设备和一种计算机可读存储介质,在软件上实现随机比特的生成。为实现上述目的,本申请提供了一种随机比特生成方法,包括:获取输入熵和请求比特长度;利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态;其中,所述第一函数为基于SM4的导出函数,所述第二函数为基于SM4的状态更新函数;根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特。其中,所述利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态,包括:确定种子长度,并根据所述输入熵和个性化信息利用所述第一函数创建所述种子长度的种子;初始化随机数状态Key和V中的比特位均为0,并根据初始化的Key、V和所述种子利用所述第二函数创建随机数状态。其中,所述根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特之前,还包括:利用所述第一函数和所述第二函数重置所述种子和更新所述随机数状态。其中,所述利用所述第一函数和所述第二函数重置所述种子和更新所述随机数状态,包括:根据所述输入熵和附加信息利用所述第一函数重置所述种子,得到重置后的种子;根据当前的Key、V和所述重置后的种子利用所述第二函数更新所述随机数状态。其中,所述根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特之后,还包括:清除所述随机数状态。其中,所述SM4算法具体为SM4算法的ECB模式。其中,所述根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特,包括:S1:将目标标志位、第一计数器置0、第二计数器置1;S2:若所述目标标志位为1或所述第一计数器为0,则根据所述输入熵和附加信息利用所述第一函数和所述第二函数重置所述种子和更新当前的随机数状态,并将所述附加信息置为空串,将所述目标标志位置为0,将所述第一计数器加1;S3:判断所述第二计数器是否大于阈值;若是,则进入S11,若否,则进入S4;S4:判断所述附加信息是否为空串;若是,则进入S5;若否,则进入S6;S5:将所述附加信息置为长度为所述种子长度、所有比特位均为0的字符串;S6:根据所述种子长度利用所述SM4算法更新所述附加信息,并利用所述第二函数更新当前的随机数状态;S7:初始化临时字符串为空串;S8:判断所述临时字符串的长度是否小于所述请求比特长度,若是,则进入S9,若否,则进入S10;S9:利用预设公式更新V,根据当前的随机数状态利用所述SM4算法计算中间字符串,将所述临时字符串更新为所述中间字符串与所述临时字符串的或操作结果,并重新进入S8;其中,所述预设公式具体为:V=(V+1)mod2ctr_len;其中,ctr_len为预设值;S10:将所述临时字符串的前N位作为所述随机比特,根据所述附加信息利用所述第二函数更新当前的随机数状态,并将所述第二计数器加1,将所述目标标志位置为1,重新进入S2;其中,N为所述请求比特长度;S11:返回所述随机比特。为实现上述目的,本申请提供了一种随机比特生成装置,包括:获取模块,用于获取输入熵和请求比特长度;创建模块,用于利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态;其中,所述第一函数为基于SM4的导出函数,所述第二函数为基于SM4的状态更新函数;生成模块,用于根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特。为实现上述目的,本申请提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述随机比特生成方法的步骤。为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述随机比特生成方法的步骤。通过以上方案可知,本申请提供的一种随机比特生成方法,包括:获取输入熵和请求比特长度;利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态;其中,所述第一函数为基于SM4的导出函数,所述第二函数为基于SM4的状态更新函数;根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特。本申请提供的随机比特生成方法,利用软件实现随机比特的生成,且采用外部提供的熵源,解决了熵源必需集成在内部的问题。必要时可以将熵源和本申请提供的随机比特生成方法封装在一起,即可得到传统意义上的随机数发生器,充分考虑软件和硬件的实现方式。本申请还公开了一种随机比特生成装置及一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果。应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:图1为根据一示例性实施例示出的一种随机数生成器的组成示意图;图2为根据一示例性实施例示出的一种随机比特生成方法的流程图;图3为Instantiate函数的流程图;图4为基于SM4的导出函数的流程图;图5为基于SM4的状态更新函数的流程图;图6为Reseed函数的的流程图;图7为图2中步骤S103的细化流程图;图8为根据一示例性实施例示出的另一种随机比特生成方法的流程图;图9为根据一示例性实施例示出的一种随机比特生成装置的结构图;图10为根据一示例性本文档来自技高网...

【技术保护点】
1.一种随机比特生成方法,其特征在于,包括:/n获取输入熵和请求比特长度;/n利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态;其中,所述第一函数为基于SM4的导出函数,所述第二函数为基于SM4的状态更新函数;/n根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特。/n

【技术特征摘要】
1.一种随机比特生成方法,其特征在于,包括:
获取输入熵和请求比特长度;
利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态;其中,所述第一函数为基于SM4的导出函数,所述第二函数为基于SM4的状态更新函数;
根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特。


2.根据权利要求1所述随机比特生成方法,其特征在于,所述利用第一函数和第二函数创建所述输入熵对应的种子和随机数状态,包括:
确定种子长度,并根据所述输入熵和个性化信息利用所述第一函数创建所述种子长度的种子;
初始化随机数状态Key和V中的比特位均为0,并根据初始化的Key、V和所述种子利用所述第二函数创建随机数状态。


3.根据权利要求1所述随机比特生成方法,其特征在于,所述根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特之前,还包括:
利用所述第一函数和所述第二函数重置所述种子和更新所述随机数状态。


4.根据权利要求3所述随机比特生成方法,其特征在于,所述利用所述第一函数和所述第二函数重置所述种子和更新所述随机数状态,包括:
根据所述输入熵和附加信息利用所述第一函数重置所述种子,得到重置后的种子;
根据当前的Key、V和所述重置后的种子利用所述第二函数更新所述随机数状态。


5.根据权利要求1所述随机比特生成方法,其特征在于,所述根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特之后,还包括:
清除所述随机数状态。


6.根据权利要求1所述随机比特生成方法,其特征在于,所述SM4算法具体为SM4算法的ECB模式。


7.根据权利要求2至6中任一项所述随机比特生成方法,其特征在于,所述根据所述请求比特长度和当前的随机数状态利用所述第一函数、所述第二函数和SM4算法生成随机比特,包括:
S1:将目标标志位、第一计数器置0、第二计数器置1;
S2:若所述目标标志位为1或所述第一计数器为0,则根据所述输入熵和附加...

【专利技术属性】
技术研发人员:张文科
申请(专利权)人:成都卫士通信息产业股份有限公司
类型:发明
国别省市:四川;51

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

1