一种密钥生成方法及装置与流程

文档序号:11138237阅读:894来源:国知局
一种密钥生成方法及装置与制造工艺

本发明涉及信息安全技术领域,尤其涉及一种密钥生成方法及装置。



背景技术:

TPM(Trusted Platform Module,可信平台模块)芯片,是指符合TPM规范的安全芯片,它能有效地保护PC(Personal Computer,个人计算机),防止攻击者访问PC。

在TPM2.0规范中,主密钥的创建是使用TPM2.0芯片内部保存的种子(seed)和用户提供的参数(该参数可以称为密钥创建参数),通过KDF(Key Derivation Function密钥派生函数)算法生成。其中,TPM2.0主密钥在TPM芯片内部保存,可以删除,之后需要使用可以进行恢复。

然而实践发现,在现有TPM2.0规范的密钥生成方案中,主密钥是根据用户提供的参数模板中的数据创建的,一旦攻击者获取到了参数模板,便可以根据该参数模板恢复用户创建的主密钥,进而,使用该主密钥加密的数据或其它密钥,就会被攻击者获取到。



技术实现要素:

本发明提供一种密钥生成方法及装置,以解决现有TPM2.0规范中生成主密钥安全性较差的问题。

根据本发明实施例的第一方面,提供一种密钥生成方法,包括:

获取密钥创建参数;

根据用户提供的防攻击数据将所述密钥创建参数中的第一唯一unique值更新为第二unique值;

根据更新后的密钥创建参数生成主密钥。

根据本发明实施例的第二方面,提供一种密钥生成装置,包括:

获取单元,用于获取密钥创建参数;

更新单元,用于根据用户提供的防攻击数据将所述密钥创建参数中的第一唯一unique值更新为第二unique值;

生成单元,用于根据更新后的密钥创建参数生成主密钥。

应用本发明实施例,通过获取密钥创建参数,并根据用户提供的防攻击数据将密钥创建参数中的第一unique值更新为第二unique值,进而,根据更新后的密钥创建参数生成主密钥,从而,即使用户提供的密钥创建参数被攻击者获得,攻击者也无法直接根据该密钥创建参数对主密钥进行恢复,提高了主密钥的安全性。

附图说明

图1是本发明实施例提供的一种密钥生成方法的流程示意图;

图2是本发明实施例提供的一种密钥生成装置的结构示意图;

图3是本发明实施例提供的另一种密钥生成装置的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明实施例中的技术方案,下面对现有TPM2.0规范中密钥生成的相关实现进行简单说明。

现有TPM2.0规范中密钥生成包括软件实现部分和TPM芯片实现部分;其中:

软件实现部分:

1、用户提供创建主密钥的密钥创建参数以及授权数据;其中,该密钥创建参数包括密钥类型、摘要算法、属性、exp(exponent,公钥指数)以及unique(唯一)值等。

2、软件将用户提供的数据,按照TPM要求的格式,进行组装,得到InPublic(一种数据结构)数据和InSensitive(一种数据结构)数据;

3、软件通过TPM2_CreatePrimary(创建主密钥)命令将InPublic数据和InSensitive数据发送到TPM芯片。

TPM芯片实现部分:

1、将整个InPublic数据进行摘要计算(利用InPublic中指示的算法);

2、从TPM芯片内部存储区获取seed;

3、使用步骤1中计算出的摘要和seed通过密钥生成算法KDF,生成主密钥;

4、将InSensitive数据中的authValue(授权数据)部分复制到密钥的私有部分。

可见,在现有TPM2.0规范中,生成主密钥时只需要使用用户提供的密钥创建参数以及TPM芯片内部的seed,而用户提供的密钥创建参数通常是以参数模板的形式输入,一旦参数模板被攻击者获得,主密钥很容易被攻击者恢复,进而造成使用该主密钥加密的数据或其它密钥的安全性受到威胁。

下面结合附图对本发明实施例中技术方案作进一步详细的说明。

请参见图1,为本发明实施例提供的一种密钥生成方法的流程示意图,如图1所示,该密钥生成方法可以包括以下步骤:

步骤101、获取密钥创建参数。

步骤102、根据用户提供的防攻击数据将该密钥创建参数中的第一unique值更新为第二unique值。

本发明实施例中,上述密钥生成方法可以应用于支持TPM2.0规范的通信设备(包括但不限于PC、服务器等)中,为便于描述,以下以步骤101~步骤103的执行主体为通信设备为例进行说明。

本发明实施例中,考虑到现有TPM2.0规范中生成主密钥是仅需要使用用户提供的密钥创建参数以及TPM芯片中存储的seed,而用户提供的密钥创建参数通常会以参数模板的形式保存在设备存储介质中,因此,用户提供的密钥创建参数容易被攻击者获取到,进而,攻击者可能会恢复该主密钥,并使用该密钥对相关加密数据进行解密。因此,为了提高通信设备生成的主密钥的安全性,通信设备在获取到用户提供的密钥创建参数之后,在根据该密钥创建参数生成主密钥之前,可以先对该密钥创建参数中的unique值进行更新,以便后续使用更新后的unique值进行密钥生成,从而,即使用户提供的密钥创建参数被攻击者获取到,攻击者也无法直接使用该密钥创建参数恢复主密钥。

相应地,在本发明实施例中,通信设备获取到用户提供的密钥创建参数之后,可以对该密钥创建参数中的unique值(本文中称为第一unique值)进行更新,以得到更新后的unique值(本文中称为第二unique值)。

作为一种可选的实施方式,在本发明实施例中,将密钥创建参数中的第一unique值更新为第二unique值,可以包括:

根据用户提供的防攻击数据以及第一unique值确定第二unique值;

将密钥创建参数中的第一unique值更新为第二unique值。

在该实施方式中,在创建密钥的过程中,用户除了需要提供密钥创建参数之外,还需要提供防攻击数据;通信设备获取到用户提供的密钥创建参数之后,可以根据用户提供的防攻击数据以及该密钥创建参数中的第一unique值确定第二unique值。

在该实施方式的一种可选实施例中,用户提供的防攻击数据可以包括密钥创建过程中用户输入的授权数据(authValue)。

具体的,在该实施例中,通信设备获取到用户提供的参数创建模板以及授权数据之后,可以根据参数创建模板中的第一unique值和授权数据确定第二unique值,并将参数创建模板中的第一unique值更新为第二unique值。

在该实施方式的另一种可选实施例中,用户提供的防攻击数据可以包括用户提供的专门用于防止主密钥被攻击者恢复的数据。

具体的,在该实施方式中,通信设备检测到用户的主密钥创建操作指令时,除了需要用户提供参数创建模板以及授权数据之外,还可以提示用户输入防攻击数据,并根据用户输入的防攻击数据以及参数创建模板中的第一unique值和授权数据确定第二unique值,并将参数创建模板中的第一unique值更新为第二unique值。

值得说明的是,在本发明实施例中,通信设备也可以在主密钥创建的相关功能界面中提供关于是否使用授权数据作为防攻击数据的选项,若通信设备检测到用户针对使用授权数据作为防攻击数据的选项的选择指令,则通信设备可以将用户提供的授权参数作为防攻击数据;若通信设备检测到用户针对不使用授权数据作为防攻击数据的选项的选择指令,则通信设备可以提示用户输入防攻击数据,其具体实现在此不再赘述。

在该实施方式中,通信设备可以根据防攻击数据以及第一unique值,通过预设算法,确定第二unique值。

例如,通信设备可以通过hash(散列)算法、异或算法、DES(Data Encryption Standard,数据加密标准)算法等算法,利用防攻击数据以及第一unique值,计算得到第二unique值。

作为一种可选的实施方式,在本发明实施例中,当上述预设算法为异或算法时,根据用户提供的防攻击数据将密钥创建参数中的第一unique值更新为第二unique值,可以包括:

当防攻击数据长度小于第一unique值时,将防攻击数据循环扩展为与第一unique值长度相同;

根据循环扩展后的防攻击数据以及第一unique值,通过异或算法,确定第二unique值。

在该实施方式中,当通信设备获取到用户提供的密钥创建参数以及防攻击数据之后,通信设备可以比较密钥创建参数中的第一unique值的长度以及防攻击数据的长度;若防攻击数据的长度小于密钥创建参数中的第一unique值的长度,则通信设备可以对防攻击数据进行循环扩展,即在防攻击参数的尾部再补上防攻击参数,直至其长度与第一unique值的长度相同,然后,通信设备可以对循环扩展后的防攻击数据和第一unique值进行异或算法,确定第二unique值。

值得说明的是,在本发明实施例中,若防攻击数据的长度大于第一unique值的长度,则通信设备也可以通过对第一unique值进行循环扩展的方式实现防攻击数据与第一unique值进行异或运算,但是需要保证防攻击数据的长度不超过支持的最大密钥size(大小)。

优选地,在该实施方式中,防攻击数据的长度小于等于第一unique值的长度。

作为一种可选的实施方式,在本发明实施例中,当上述预设算法为hash(散列)算法时,根据用户提供的防攻击数据将密钥创建参数中的第一unique值更新为第二unique值,可以包括:

将所述防攻击数据与所述第一unique值进行串接,通过hash算法确定所述第二unique值。

在该实施方式中,当通信设备获取到用户提供的密钥创建参数以及防攻击数据之后,通信设备可以将防攻击数据与第一unique值进行串接,并通过hash算法计算得到第二unique值。

例如,假设第一unique值为aaa,防攻击数据为bbb,则通信设备可以将防攻击参数和第一unique值进行串接得到aaabbb(或bbbaaa),然后通过hash算法计算得到第二unique值。

值得说明的是,在本发明实施例中,对第一unique值进行更新得到第二unique值时,也需要保证第二unique值的长度不超过支持的最大密钥size。

步骤103、根据更新后的密钥创建参数生成主密钥。

本发明实施例中,通信设备将密钥创建参数中的第一unique值更新为第二unique值之后,可以将更新后的密钥创建参数输入到TPM芯片中,由TPM芯片根据更新后的密钥创建参数生成主密钥。

在一实施例中,根据更新后的密钥创建参数生成主密钥,可以包括:

根据预设摘要算法对InPublic数据进行摘要计算;其中,该InPublic数据是对更新后的密钥创建参数封装后得到的;

根据摘要计算得出的摘要和预先存储的seed,通过预设的密钥生成算法,生成主密钥。

其中,TPM芯片根据更新后的密钥创建参数生成密钥的具体实现可以参见现有TPM2.0规范中的相关实现,本发明实施例在此不做赘述。

可见,在图1所示的方法流程中,通过在获取到用户提供的密钥创建参数之后,并根据用户提供的防攻击数据将密钥创建参数中的第一unique值更新为第二unique值,进而,根据更新后的密钥创建参数生成主密钥,从而,即使用户提供的密钥创建参数被攻击者获得,攻击者也无法直接根据该密钥创建参数对主密钥进行恢复,提高了主密钥的安全性。

为了使本领域技术人员更好地理解本发明实施例提供的技术方案,下面结合具体实例对本发明实施例提供的密钥生成方法的原理进行说明。

在该实施例中,以通信设备根据用户提供的授权数据以及第一unique值,通过hash算法得到第二unique为例。

软件实现部分:

1、获取用户提供的密钥创建参数以及授权数据(authValue);

2、根据用户提供的密钥创建参数中的unique值(假设为unique1)以及authValue,通过Hash算法,得到unique2;

3、将用户提供的密钥创建参数中的unique值由unique1更新为unique2,并分别将更新后的密钥创建参数以及authValue,按照TPM要求的格式,进行组装,得到InPublic数据和InSensitive数据;

4、软件通过TPM2_CreatePrimary(创建主密钥)命令将InPublic数据和InSensitive数据发送到TPM芯片。

TPM芯片实现部分:

1、将整个InPublic数据进行摘要计算(利用nameAlg指示的算法);

2、从TPM芯片内部存储区获取seed;

3、使用步骤1中计算出的摘要和seed通过密钥生成算法KDF,生成主密钥;

4、将InSensitive数据中的authValue(授权数据)部分复制到密钥的私有部分。

通过以上描述可以看出,在本发明实施例提供的技术方案中,通过获取密钥创建参数,并根据用户提供的防攻击数据将密钥创建参数中的第一unique值更新为第二unique值,进而,根据更新后的密钥创建参数生成主密钥,从而,即使用户提供的密钥创建参数被攻击者获得,攻击者也无法直接根据该密钥创建参数对主密钥进行恢复,提高了主密钥的安全性。

请参见图2,为本发明实施例提供的一种密钥生成装置的结构示意图,其中,所述装置可以应用于上述方法实施例的通信设备中,如图2所示,该密钥生成装置可以包括:

获取单元210,用于获取密钥创建参数;

更新单元220,用于根据用户提供的防攻击数据将所述密钥创建参数中的第一唯一unique值更新为第二unique值;

生成单元230,用于根据更新后的密钥创建参数生成主密钥。

在可选实施例中,所述更新单元220,可以具体用于当所述防攻击数据长度小于所述第一unique值时,将所述防攻击数据循环扩展为与所述第一unique值长度相同;根据循环扩展后的防攻击数据以及所述第一unique值,通过异或算法,确定所述第二unique值。

在可选实施例中,所述更新单元220,可以具体用于将所述防攻击数据与所述第一unique值进行串接,通过散列hash算法确定所述第二unique值。

在可选实施例中,所述防攻击数据包括用户在密钥创建过程中输入的授权数据。

请一并参见图3,为本发明实施例提供的另一种密钥生成装置的结构示意图,如图3所示,在图2所示密钥生成装置的基础上,图3所示的密钥生成装置中,所述生成单元230,可以包括:

计算子单元231,用于根据预设摘要算法对InPublic数据进行摘要计算;其中,所述InPublic数据是对所述更新后的密钥创建参数封装后得到的;

生成子单元232,用于根据摘要计算得出的摘要和预先存储的种子seed,通过预设的密钥生成算法,生成主密钥。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

由上述实施例可见,通过获取密钥创建参数,并根据用户提供的防攻击数据将密钥创建参数中的第一unique值更新为第二unique值,进而,根据更新后的密钥创建参数生成主密钥,从而,即使用户提供的密钥创建参数被攻击者获得,攻击者也无法直接根据该密钥创建参数对主密钥进行恢复,提高了主密钥的安全性。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

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