一种密钥发散方法及装置的制造方法

文档序号:10666296阅读:221来源:国知局
一种密钥发散方法及装置的制造方法
【专利摘要】本发明适用于密钥领域,提供了一种密钥发散方法及装置,所述密钥发散方法包括:获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;获取当前计数器的计数值;获取计数器的计数值比特位为1的个数,将比特位为1的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,获取计数器的计数值比特位为0的个数,将比特位为0的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。本发明提高了发散密钥的可靠性。
【专利说明】
_种密钥发散方法及装置
技术领域
[0001]本发明属于密钥领域,尤其涉及一种密钥发散方法及装置。
【背景技术】
[0002]密钥是一种参数,可将明文转换为密文或将密文转换为明文。随着密钥功能的普及,越来越多的用户设备和服务器通过密钥发散方法,生成密钥,将明文转换为密文或将密文转换为明文,以提高交互系统的安全性。
[0003]然而,现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,快速选取出优选的发散密钥,降低了发散密钥的可靠性。其原因在于,现有的发散密钥发散方法,发散时需要处理较大的数据量,在极短的时间内,无法生成发散密钥,且在生成多个发散密钥时,只会采用轮询的方式,在多个发散密钥中选取发散密钥,而轮询的发散密钥,并不是优选的发散密钥。因此,严重浪费了发散时间,降低了发散密钥的可靠性。

【发明内容】

[0004]本发明实施例的目的在于提供一种密钥发散方法,旨在解决现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,快速选取出优选的发散密钥,降低了发散密钥的可靠性的问题。
[0005]本发明实施例是这样实现的,一种密钥发散方法,包括:
[0006]获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;
[0007]获取当前计数器的计数值;
[0008]获取计数器的计数值比特位为I的个数,将比特位为I的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,
[0009]获取计数器的计数值比特位为O的个数,将比特位为O的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。
[0010]本发明实施例的另一目的在于提供一种密钥发散装置,包括:
[0011]初始密钥生成模块,用于获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;
[0012]计数值获取模块,用于获取当前计数器的计数值;
[0013]密钥发散模块,用于获取计数器的计数值比特位为I的个数,将比特位为I的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,用于获取计数器的计数值比特位为O的个数,将比特位为O的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。
[0014]在本发明实施例中,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,解决了现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,快速选取出优选的发散密钥,降低了发散密钥的可靠性的问题,在用户设备和服务器正常使用的情况下,可以快速生成优选的发散密钥,节省了发散时间,从而提高了发散密钥的可靠性。
【附图说明】
[0015]图1是本发明实施例提供的密钥发散方法的实现流程图;
[0016]图2是本发明实施例提供的密钥发散方法步骤SlOl的实现流程图;
[0017]图3是本发明实施例提供的密钥发散方法步骤S102的实现流程图;
[0018]图4是本发明实施例提供的密钥发散方法步骤S103的实现流程图;
[0019]图5是本发明实施例提供的密钥发散装置的结构框图。
【具体实施方式】
[0020]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0021]实施例一
[0022]图1是本发明实施例提供的密钥发散方法的实现流程图,详述如下:
[0023]在步骤SlOl中,获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;
[0024]其中,预先配置基本发散密钥,并将基本发散密钥存储至预设区域。
[0025]预设的计数值可以为系统默认,也可以自行设置,在此不做限制。
[0026]其中,当检测到发生发送报文事件时,执行步骤SlOl。
[0027]在步骤S102中,获取当前计数器的计数值;
[0028]其中,获取当前计数器中有效的计数值。
[0029]在步骤S103中,获取计数器的计数值比特位为I的个数,将比特位为I的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,获取计数器的计数值比特位为O的个数,将比特位为O的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。
[0030]在本发明实施例中,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,解决了现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,快速选取出优选的发散密钥,降低了发散密钥的可靠性的问题,在用户设备和服务器正常使用的情况下,可以快速生成优选的发散密钥,节省了发散时间,从而提高了发散密钥的可靠性。
[0031]实施例二
[0032]图2是本发明实施例提供的密钥发散方法步骤SlOl的实现流程图,详述如下:
[0033]在步骤S201中,将预先设定的计数值和终端序列号组合,生成初始的混合数据;
[0034]在步骤S202中,利用散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值;
[0035]其中,利用指定的散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值,指定的散列函数包括SHA散列函数、MD5散列函数中的至少一种。
[0036]在步骤S203中,利用混合数据的散列值和预配置的基本发散密钥的散列值,进行异或运算,生成初始密钥。
[0037]在本发明实施例中,生成初始密钥,便于后续以初始密钥为基础,进行发散,快速生成优选的发散密钥。
[0038]实施例三
[0039]图3是本发明实施例提供的密钥发散方法步骤S102的实现流程图,详述如下:
[0040]在步骤S301中,获取当前计数器的比特位为I的个数,获取当前计数器的比特位为O的个数;
[0041]在步骤S302中,判断当前计数器的比特位为I的个数是否小于预设阀值,判断当前计数器的比特位为O的个数是否小于预设阀值;
[0042]在步骤S303中,若是,获取当前计数器的计数值。
[0043]若否,丢弃当前计数器的计数值。
[0044]在本发明实施例中,获取当前计数器的计数值,便于后续以计数器的计数值为基础,进行发散,快速生成优选的发散密钥。
[0045]实施例四
[0046]图4是本发明实施例提供的密钥发散方法步骤S103的实现流程图,详述如下:
[0047]在步骤S401中,获取计数器当前的计数值,将计数器当前的计数值和终端序列号组合,生成当前的混合数据;
[0048]在步骤S402,利用散列函数,获取当前的混合数据的散列值和初始密钥的散列值;
[0049]在步骤S403,利用获取到的终端序列号的散列值和计数器当前的计数值的散列值,进行异或运算,生成当前的发散密钥;
[0050]在步骤S404,循环执行步骤S402和S403,按照从左往右的顺序,对当前的发散密钥进行发散,直至计数器当前的计数值不存在值为I的比特位,选出优选的发散密钥。
[0051]可选地,作为密钥发散方法步骤S103的另一种实现方式,在步骤S404,循环执行步骤S402和S403,按照从右往左的顺序,对当前的发散密钥进行发散,直至计数器当前的计数值不存在值为I的比特位,选出优选的发散密钥。
[0052]在本发明实施例中,根据I的比特位的个数作为发散次数,由于计数器当前的计数值中值为I的比特位较少,因此发散的次数较少,可以有效减少发散的时间,快速生成优选的发散密钥。
[0053]实施例五
[0054]图5是本发明实施例提供的密钥发散装置的结构框图,该装置可以运行于电子设备中。电子设备包括但不限于智能手机、服务器、平板电脑、笔记本电脑。为了便于说明,仅不出了与本实施例相关的部分。
[0055]参照图5,该密钥发散装置,包括:
[0056]初始密钥生成模块51,用于获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;
[0057]计数值获取模块52,用于获取当前计数器的计数值;
[0058]密钥发散模块53,用于获取计数器的计数值比特位为I的个数,将比特位为I的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,用于获取计数器的计数值比特位为O的个数,将比特位为O的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。
[0059]在本实施例的一种实现方式中,所述初始密钥生成模块,具体包括:
[0060]初始的混合数据生成单元,用于将预先设定的计数值和终端序列号组合,生成初始的混合数据;
[0061]第一散列值获取单元,用于利用散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值;
[0062]初始密钥生成单元,用于利用混合数据的散列值和预配置的基本发散密钥的散列值,进行异或运算,生成初始密钥。
[0063]在本实施例的一种实现方式中,所述计数值获取模块包括:
[0064]个数获取单元,用于获取当前计数器的比特位为I的个数,获取当前计数器的比特位为O的个数;
[0065]个数判断单元,用于判断当前计数器的比特位为I的个数是否小于预设阀值,判断当前计数器的比特位为O的个数是否小于预设阀值;
[0066]计数值获取单元,用于若是,获取当前计数器的计数值。
[0067]在本实施例的一种实现方式中,所述预先设定的顺序包括从左往右的顺序以及从右往左中的至少一种。
[0068]在本实施例的一种实现方式中,所述密钥发散模块,包括:
[0069]当前的混合数据生成单元,用于获取计数器当前的计数值,将计数器当前的计数值和终端序列号组合,生成当前的混合数据;
[0070]第二散列值获取单元,用于利用散列函数,获取当前的混合数据的散列值和初始密钥的散列值;
[0071]发散密钥生成单元,用于利用获取到的终端序列号的散列值和计数器当前的计数值的散列值,进行异或运算,生成当前的发散密钥;
[0072]发散密钥选出单元,用于循环执行所述第二散列值获取单元和所述发散密钥生成单元中的步骤,按照从左往右的顺序,对当前的发散密钥进行发散,直至计数器当前的计数值不存在值为I的比特位,选出优选的发散密钥。
[0073]本发明实施例提供的装置可以应用在前述对应的方法实施例中,详情参见上述实施例的描述,在此不再赘述。
[0074]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现。所述的程序可以存储于可读取存储介质中,所述的存储介质,如随机存储器、闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行本发明各个实施例所述的方法。
[0075]以上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
【主权项】
1.一种密钥发散方法,其特征在于,包括: 获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥; 获取当前计数器的计数值; 获取计数器的计数值比特位为I的个数,将比特位为I的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者, 获取计数器的计数值比特位为O的个数,将比特位为O的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。2.如权利要求1所述密钥发散方法,其特征在于,所述获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥,具体为: 将预先设定的计数值和终端序列号组合,生成初始的混合数据; 利用散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值;利用混合数据的散列值和预配置的基本发散密钥的散列值,进行异或运算,生成初始密钥。3.如权利要求1所述密钥发散方法,其特征在于,所述获取当前计数器的计数值,具体为: 获取当前计数器的比特位为I的个数,获取当前计数器的比特位为O的个数; 判断当前计数器的比特位为I的个数是否小于预设阀值,判断当前计数器的比特位为O的个数是否小于预设阀值; 若是,获取当前计数器的计数值。4.如权利要求1所述密钥发散方法,其特征在于,所述预先设定的顺序包括从左往右的顺序以及从右往左中的至少一种。5.如权利要求1或3所述密钥发散方法,其特征在于,当预先设定的顺序为从左往右的顺序时,所述获取计数器的计数值比特位为I的个数,将比特位为I的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,具体为: Si,获取计数器当前的计数值,将计数器当前的计数值和终端序列号组合,生成当前的混合数据; S2,利用散列函数,获取当前的混合数据的散列值和初始密钥的散列值; S3,利用获取到的终端序列号的散列值和计数器当前的计数值的散列值,进行异或运算,生成当前的发散密钥; 循环执行步骤S2和S3,按照从左往右的顺序,对当前的发散密钥进行发散,直至计数器当前的计数值不存在值为I的比特位,选出优选的发散密钥。6.一种密钥发散装置,其特征在于,包括: 初始密钥生成模块,用于获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥; 计数值获取模块,用于获取当前计数器的计数值; 密钥发散模块,用于获取计数器的计数值比特位为I的个数,将比特位为I的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,用于获取计数器的计数值比特位为O的个数,将比特位为O的个数作为发散次数,按预先设定的顺序、计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。7.如权利要求6所述密钥发散装置,其特征在于,所述初始密钥生成模块,具体包括: 初始的混合数据生成单元,用于将预先设定的计数值和终端序列号组合,生成初始的混合数据; 第一散列值获取单元,用于利用散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值; 初始密钥生成单元,用于利用混合数据的散列值和预配置的基本发散密钥的散列值,进行异或运算,生成初始密钥。8.如权利要求6所述密钥发散装置,其特征在于,所述计数值获取模块包括: 个数获取单元,用于获取当前计数器的比特位为I的个数,获取当前计数器的比特位为O的个数; 个数判断单元,用于判断当前计数器的比特位为I的个数是否小于预设阀值,判断当前计数器的比特位为O的个数是否小于预设阀值; 计数值获取单元,用于若是,获取当前计数器的计数值。9.如权利要求6所述密钥发散装置,其特征在于,所述预先设定的顺序包括从左往右的顺序以及从右往左中的至少一种。10.如权利要求6或9所述密钥发散装置,其特征在于,所述密钥发散模块,包括: 当前的混合数据生成单元,用于获取计数器当前的计数值,将计数器当前的计数值和终端序列号组合,生成当前的混合数据; 第二散列值获取单元,用于利用散列函数,获取当前的混合数据的散列值和初始密钥的散列值; 发散密钥生成单元,用于利用获取到的终端序列号的散列值和计数器当前的计数值的散列值,进行异或运算,生成当前的发散密钥; 发散密钥选出单元,用于循环执行所述第二散列值获取单元和所述发散密钥生成单元中的步骤,按照从左往右的顺序,对当前的发散密钥进行发散,直至计数器当前的计数值不存在值为I的比特位,选出优选的发散密钥。
【文档编号】H04L9/06GK106034019SQ201510102327
【公开日】2016年10月19日
【申请日】2015年3月9日
【发明人】黄俊斌, 李华, 陈候进, 周宇龙, 李鹤祥
【申请人】深圳华智融科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1