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

技术编号:13863905 阅读:42 留言:0更新日期:2016-10-19 16:08
本发明专利技术适用于密钥领域,提供了一种密钥发散方法及装置,所述密钥发散方法包括:获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;将当前计数器的计数值转化为移位计数器的计数值;获取移位计数器的计数值比特位为1的个数,将比特位为1的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,获取移位计数器的计数值比特位为0的个数,将比特位为0的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。本发明专利技术提高了发散密钥的可靠性。

【技术实现步骤摘要】

本专利技术属于密钥领域,尤其涉及一种密钥发散方法及装置
技术介绍
密钥是一种参数,可将明文转换为密文或将密文转换为明文。随着密钥功能的普及,越来越多的用户设备和服务器通过密钥发散方法,生成密钥,将明文转换为密文或将密文转换为明文,以提高交互系统的安全性。然而,现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,选取出优选的发散密钥,降低了发散密钥的可靠性。其原因在于,现有的发散密钥发散方法,发散时需要处理较大的数据量,在极短的时间内,无法生成发散密钥,且在生成多个发散密钥时,只会采用轮询的方式,在多个发散密钥中选取发散密钥,而轮询的发散密钥,并不是优选的发散密钥。因此,严重浪费了发散时间,降低了发散密钥的可靠性。
技术实现思路
本专利技术实施例的目的在于提供一种密钥发散方法,旨在解决现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,选取出优选的发散密钥,降低了发散密钥的可靠性的问题。本专利技术实施例是这样实现的,一种密钥发散方法,包括:获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;将当前计数器的计数值转化为移位计数器的计数值;获取移位计数器的计数值比特位为1的个数,将比特位为1的个数作为发
散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,获取移位计数器的计数值比特位为0的个数,将比特位为0的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。本专利技术实施例的另一目的在于提供一种密钥发散装置,包括:初始密钥生成模块,用于获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;计数值转化模块,用于将当前计数器的计数值转化为移位计数器的计数值;密钥发散模块,用于获取移位计数器的计数值比特位为1的个数,将比特位为1的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,用于获取移位计数器的计数值比特位为0的个数,将比特位为0的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。在本专利技术实施例中,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,解决了现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,选取出优选的发散密钥,降低了发散密钥的可靠性的问题,在用户设备和服务器正常使用的情况下,可以快速生成优选的发散密钥,节省了发散时间,从而提高了发散密钥的可靠性。附图说明图1是本专利技术实施例提供的密钥发散方法的实现流程图;图2是本专利技术实施例提供的密钥发散方法步骤S101的实现流程图;图3是本专利技术实施例提供的密钥发散方法步骤S102的实现流程图;图4是本专利技术实施例提供的密钥发散方法步骤S103的实现流程图;图5是本专利技术实施例提供的密钥发散装置的结构框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。实施例一图1是本专利技术实施例提供的密钥发散方法的实现流程图,详述如下:在步骤S101中,获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;其中,预先配置基本发散密钥,并将基本发散密钥存储至预设区域。预设的计数值可以为系统默认,也可以自行设置,在此不做限制。其中,当检测到发生发送报文事件时,执行步骤S101。在步骤S102中,将当前计数器的计数值转化为移位计数器的计数值;在步骤S103中,获取移位计数器的计数值比特位为1的个数,将比特位为1的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,获取移位计数器的计数值比特位为0的个数,将比特位为0的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。在本专利技术实施例中,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,解决了现有密钥发散方法,发散的时间长,且生成多个发散密钥时,无法在多个发散密钥中,选取出优选的发散密钥,降低了发散密钥的可靠性的问题,在用
户设备和服务器正常使用的情况下,可以快速生成优选的发散密钥,节省了发散时间,从而提高了发散密钥的可靠性。实施例二图2是本专利技术实施例提供的密钥发散方法步骤S101的实现流程图,详述如下:在步骤S201中,将预先设定的计数值和终端序列号组合,生成初始的混合数据;在步骤S202中,利用散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值;其中,可利用SHA散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值,或者利用MD5散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值。在步骤S203中,利用混合数据的散列值和预配置的基本发散密钥的散列值,进行异或运算,生成初始密钥。在本专利技术实施例中,生成初始密钥,便于后续以初始密钥为基础,进行发散,快速生成优选的发散密钥。实施例三图3是本专利技术实施例提供的密钥发散方法步骤S102的实现流程图,详述如下:在步骤S301中,获取当前计数器的比特位为1的个数,获取当前计数器的比特位为0的个数;在步骤S302中,判断当前计数器的比特位为1的个数是否小于预设阀值,判断当前计数器的比特位为0的个数是否小于预设阀值;在步骤S303中,若是,将当前计数器的计数值转化为移位计数器的计数值;
若否,按当前计数器的计数值的位数,将当前计数器的计数值分为高位计数值和低位计数值,将高位计数值进行位移,底位计数值补1或者补0,通过移位和异或运算,将当前计数器的计数值转化为移位计数器的计数值。其中,通过移位和异或运算,将当前计数器的计数值转化为移位计数器的计数值,具体为:若高位计数值和低位计数值相同时,高位计数值按照底位计数值中的设定的多个比特位依次进行移位,当高位计数值中的比特位小于预设阀值时,再次按照底位计数值中的设定的多个比特位之和进行移位,从而将高位计数值转化为移位计数器的计数值;若高位计数值和低位计数值不相同时,高位计数值与底位计数值先进行异或,生成异或值,异或值按照设定的多个比特位依次进行移位,当异或值中的比特位小于预设阀值时,再次按照异或值中的设定的多个比特位之和进行移位,从而将异或值转化为移位计数器的计数值。为便于说明,表1描述了步骤S102在实际应用中较佳的实施流程,详述如下:表1其中,1、符号“&”表示“与”运算;2、符号“>>”表示“向右移位”运算;3、符号“<<”表示“向左移位”运算;4、“⊕”表示“异或”运算。5、符号“CurCounter”表示“当前计数器”;本文档来自技高网
...

【技术保护点】
一种密钥发散方法,其特征在于,包括:获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;将当前计数器的计数值转化为移位计数器的计数值;获取移位计数器的计数值比特位为1的个数,将比特位为1的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,获取移位计数器的计数值比特位为0的个数,将比特位为0的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。

【技术特征摘要】
1.一种密钥发散方法,其特征在于,包括:获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥;将当前计数器的计数值转化为移位计数器的计数值;获取移位计数器的计数值比特位为1的个数,将比特位为1的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,或者,获取移位计数器的计数值比特位为0的个数,将比特位为0的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥。2.如权利要求1所述密钥发散方法,其特征在于,所述获取预设的计数值、终端序列号和预配置的基本发散密钥,生成初始密钥,具体为:将预先设定的计数值和终端序列号组合,生成初始的混合数据;利用散列函数,获取初始的混合数据的散列值和预配置的基本发散密钥的散列值;利用混合数据的散列值和预配置的基本发散密钥的散列值,进行异或运算,生成初始密钥。3.如权利要求1所述密钥发散方法,其特征在于,所述将当前计数器的计数值转化为移位计数器的计数值,具体为:获取当前计数器的比特位为1的个数,获取当前计数器的比特位为0的个数;判断当前计数器的比特位为1的个数是否小于预设阀值,判断当前计数器的比特位为0的个数是否小于预设阀值;若是,将当前计数器的计数值转化为移位计数器的计数值;若否,按当前计数器的计数值的位数,将当前计数器的计数值分为高位计数值和低位计数值,将高位计数值进行位移,底位计数值补1或者补0,通过
\t移位和异或运算,将当前计数器的计数值转化为移位计数器的计数值。4.如权利要求1所述密钥发散方法,其特征在于,所述预先设定的顺序包括从左往右的顺序以及从右往左中的至少一种。5.如权利要求1或3所述密钥发散方法,其特征在于,当预先设定的顺序为从左往右的顺序时,所述获取移位计数器的计数值比特位为1的个数,将比特位为1的个数作为发散次数,按预先设定的顺序、移位计数器的计数值、终端序列号、初始密钥以及发散次数,对初始密钥进行发散,生成优选的发散密钥,具体为:S1,获取移位计数器当前的计数值,将移位计数器当前的计数值和终端序列号组合,生成当前的混合数据;S2,利用散列函数,获取当前的混合数据的散列值和初始密钥的散列值;S3,利用获取到的终端序列号的散列值和移位计数器当前的计数值的散列值,进行异或运算,生成当前的发散密钥;循环执行步骤S2和S3,按照从左往右的顺序,对当前的发散密钥进行发散,直至移位计数器当前的计数值不存在值为1的比特位,选出优选的发散密钥。6.一种密钥发散装...

【专利技术属性】
技术研发人员:黄俊斌李华陈候进欧阳伟权李鹤祥
申请(专利权)人:深圳华智融科技有限公司
类型:发明
国别省市:广东;44

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

1