一种多KMC密钥恢复方法与流程

文档序号:11253714阅读:1124来源:国知局
一种多KMC密钥恢复方法与流程

本发明涉及信息安全技术领域,具体地说是一种多kmc密钥恢复方法。



背景技术:

近年来,随着信息安全事件呈现逐年递增的趋势,人们越来越关注网络信息安全问题。网络安全事件频发,网络攻击已经从信息泄露、资金窃取、电信诈骗及钓鱼网站等个人事件,上升到全社会的安全事件,会影响我们的生活、影响政府的服务、社会稳定甚至社会安全。而在当今这个大数据时代,要想管好用好大数据,前提必须是要保证大数据安全,这就需要有一个可信的计算环境,而可信的计算环境的核心就是要保证参与各方的密钥安全。

在可信计算环境下,加密密钥是一个关键项。一方面,要保证密钥不会泄露;另一方面,还要保证密钥硬件存储设备损坏或者丢失后,能将密钥恢复并解密原有加密数据。传统的实现方式是通过kmc(keymanagementcenter密钥管理中心)来产生加密密钥,这样kmc会备份一份加密密钥,存储在kmc的密钥库中。如果用户加密密钥丢失,可以通过kmc的密钥恢复功能来恢复加密密钥,利用恢复的加密密钥来解开已加密数据。

随着网络攻击技术的发展,单一的kmc已经无法满足需求,kmc可能会被攻破,存在密钥泄露的风险,另一方面,社会工程攻击等针对内部人员的攻击,也会造成kmc被攻破。在这种情况下,如何能安全高效的实现密钥备份和恢复成为一个亟需解决的问题。



技术实现要素:

本发明的技术任务是提供一种多kmc密钥恢复方法。

本发明的技术任务是按以下方式实现的,该方法是通过密钥备份和密钥恢复两部分实现;

密钥备份:先由第三方ca中心对各参与方发放数字证书,然后使用用户加密终端产生随机数,根据设置kmc的门限数量,使用门限算法将密钥进行分割,并对分割后的随机数进行签名,并利用各个kmc的公钥进行加密,上传给kmc进行密钥备份;

密钥恢复:根据kmc的门限数,向相应的kmc提出密钥请求,并在用户加密终端中将密钥恢复出来。

所述的密钥备份的操作步骤如下:

步骤101)所述的第三方ca中心先为各个参与密钥备份的所述的kmc颁发数字证书;

步骤102)所述的用户加密终端生成签名密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心认证并颁发签名证书;

步骤103)所述的用户加密终端确定加密算法、随机数生成算法以及kmc门限数量;

步骤104)所述的用户加密终端生成随机数种子,并根据kmc门限要求进行分割;

步骤105)所述的用户加密终端利用所述的随机数种子生成加密密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心颁发签名证书;

步骤106)所述的用户加密终端获取各个所述的kmc的公钥证书,将信息使用所述的签名密钥进行签名,再利用kmc的公钥对信息加密,生成请求文件,并发送给各个所述的kmc;

步骤107)各个所述的kmc收到请求文件,先利用kmc私钥进行解密,再验证其证书有效性和签名有效性;

步骤108)所述的kmc将解析得到的密钥信息存储到密钥库中。

所述的步骤106)中信息包括分割后的数据、密钥算法标识、密钥格式以及用户标识。

所述的密钥恢复的操作步骤如下:

步骤201)所述的第三方ca中心为各个参与密钥备份的所述的kmc颁发数字证书;

步骤202)所述的用户加密终端生成签名密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心认证并颁发签名证书;

步骤203)所述的用户加密终端生成临时密钥对,根据加密算法、随机数生成算法以及kmc门限要求向所需的所述的kmc提出密钥恢复请求;

步骤204)所述的kmc对密钥恢复请求进行验证;

步骤205)所述的kmc使用其私钥对备份的密钥信息进行签名,再利用申请书中的临时公钥对密钥信息加密,发送给所述的用户加密终端;

步骤206)所述的用户加密终端利用临时密钥对私钥,将收到的来自各个所述的kmc返回的备份密钥信息进行解密,并验证签名有效性;

步骤207)所述的用户加密终端利用各个备份密钥信息恢复生成随机数种子;

步骤208)所述的用户加密终端利用所述的恢复生成的随机数种子生成加密密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心颁发签名证书。

所述的步骤203)中密钥恢复请求中包含用户标识、身份证明、临时密钥以及利用所述的签名密钥进行的数字签名。

所述的步骤204)中验证的内容为验证证书有效性、签名有效性以及密钥恢复主体身份有效性。

一种多kmc密钥恢复系统,该系统包括用户加密终端、kmc以及第三方ca中心;

所述的用户加密终端负责随机数和密钥的产生、密钥分割以及数据包的签名验签和加解密操作;

所述的kmc负责分割密钥的保存和恢复;

所述的第三方ca中心负责为各个参与方签发数字证书。

本发明的一种多kmc密钥恢复方法和现有技术相比,具有以下特点:

1)使用硬件加密设备产生随机数,保证了随机数的产生强度,再结合加密算法,利用随机数进行密钥分割,简化了操作的复杂性;

2)随机数使用门限算法进行分割,再存储到多个kmc中,这样保证了即使部分kmc被攻破,也不会泄露密钥,也保证了即使部分kmc被破坏,也能保证备份密钥可以恢复;

3)随机数密钥分割是在硬件设备内完成,无法将私钥导出,保证了加密密钥的安全性,而整个密钥备份和恢复过程使用了参与各方的数字证书来加密、签名以及认证,这也保证了密钥的传输安全性。

附图说明

附图1为一种多kmc密钥恢复方法的密钥备份流程图;

附图2为一种多kmc密钥恢复方法的密钥恢复流程图;

附图3为一种多kmc密钥恢复系统的架构图。

具体实施方式

实施例1:

一种多kmc密钥恢复系统,该系统包括用户加密终端、kmc以及第三方ca中心;

所述的用户加密终端负责随机数和密钥的产生、密钥分割以及数据包的签名验签和加解密操作;

所述的kmc负责分割密钥的保存和恢复;

所述的第三方ca中心负责为各个参与方签发数字证书。

该多kmc密钥恢复方法是通过密钥备份和密钥恢复两部分实现;

密钥备份:先由第三方ca中心对各参与方发放数字证书,然后使用用户加密终端产生随机数,根据设置kmc的门限数量,使用门限算法将密钥进行分割,并对分割后的随机数进行签名,并利用各个kmc的公钥进行加密,上传给kmc进行密钥备份;

密钥恢复:根据kmc的门限数,向相应的kmc提出密钥请求,并在用户加密终端中将密钥恢复出来。

所述的密钥备份的操作步骤如下:

步骤101)所述的第三方ca中心先为各个参与密钥备份的所述的kmc颁发数字证书;

步骤102)所述的用户加密终端生成签名密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心认证并颁发签名证书;

步骤103)所述的用户加密终端确定加密算法、随机数生成算法以及kmc门限数量;

步骤104)所述的用户加密终端生成随机数种子,并根据kmc门限要求进行分割;

步骤105)所述的用户加密终端利用所述的随机数种子生成加密密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心颁发签名证书;

步骤106)所述的用户加密终端获取各个所述的kmc的公钥证书,将包括分割后的数据、密钥算法标识、密钥格式以及用户标识的信息使用所述的签名密钥进行签名,再利用kmc的公钥对信息加密,生成请求文件,并发送给各个所述的kmc;

步骤107)各个所述的kmc收到请求文件,先利用kmc私钥进行解密,再验证其证书有效性和签名有效性;

步骤108)所述的kmc将解析得到的密钥信息存储到密钥库中。

所述的密钥恢复的操作步骤如下:

步骤201)所述的第三方ca中心为各个参与密钥备份的所述的kmc颁发数字证书;

步骤202)所述的用户加密终端生成签名密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心认证并颁发签名证书;

步骤203)所述的用户加密终端生成临时密钥对,根据加密算法、随机数生成算法以及kmc门限要求向所需的所述的kmc提出密钥恢复请求;所述的密钥恢复请求中包含用户标识、身份证明、临时密钥以及利用所述的签名密钥进行的数字签名。

步骤204)所述的kmc对密钥恢复请求进行验证;验证的内容为验证证书有效性、签名有效性以及密钥恢复主体身份有效性。

步骤205)所述的kmc使用其私钥对备份的密钥信息进行签名,再利用申请书中的临时公钥对密钥信息加密,发送给所述的用户加密终端;

步骤206)所述的用户加密终端利用临时密钥对私钥,将收到的来自各个所述的kmc返回的备份密钥信息进行解密,并验证签名有效性;

步骤207)所述的用户加密终端利用各个备份密钥信息恢复生成随机数种子;

步骤208)所述的用户加密终端利用所述的恢复生成的随机数种子生成加密密钥,产生申请书并发送给所述的第三方ca中心,由第三方ca中心颁发签名证书。

实施例2:

一种多kmc密钥恢复系统,该系统包括用户加密终端、kmc以及第三方ca中心;

所述的用户加密终端负责随机数和密钥的产生、密钥分割以及数据包的签名验签和加解密操作;

所述的kmc负责分割密钥的保存和恢复;

所述的第三方ca中心负责为各个参与方签发数字证书。

为了描述清楚,假设在本实施例中,加密密钥算法为sm2国密算法,采用sm3国密算法作为摘要算法,sm3sm2国密算法作为签名算法,数字证书采用x509格式。另外,参与密钥备份和恢复的kmc门限mofn为(2,3),即是说总共有3个kmc用来备份密钥,其中任意2个可以将密钥进行恢复;

除了使用以上密钥算法及门限值之外,根据本发明的实施方式的构造也能够应用于其他算法及门限值之上。

下面将结合具体的实施例对多kmc密钥恢复方法过程进行详细的说明。

密钥备份:

参考图2,密钥备份步骤如下:

步骤101)所述的第三方ca中心为各个参与密钥备份的所述的kmc颁发数字证书;这里有3个kmc参与,分别记作kmc1,kmc2,kmc3,其对应的公私钥为(kmc1pubkey,kmc1prikey),(kmc2pubkey,kmc2prikey),(kmc3pubkey,kmc3prikey)证书为cert-kmc1,cert-kmc2,cert-kmc3;

步骤102)所述的用户加密终端生成签名密钥,记作clnsignkp,其公钥为clnsignpubkey,私钥为clnsignprikey,产生申请书并发送给所述的第三方ca中心,由其认证并颁发签名证书,记作cert-clnsign;

步骤103)所述的用户加密终端确定加密算法(sm2算法)、随机数生成算法以及kmc门限要求(2of3);

步骤104)所述的用户加密终端生成随机数种子(seed),并根据kmc门限要求进行分割;这里将seed分割为s1,s2,s3,其中在kmc1备份的密钥信息为s1,s2,在kmc2备份的密钥信息为s2,s3,在kmc3备份的密钥信息为s2,s3;

步骤105)所述的用户加密终端利用步骤104的随机数种子生成加密密钥,产生申请书并发送给所述的第三方ca中心,由其颁发签名证书;

步骤106)所述的用户加密终端获取各个所述的kmc的公钥证书(cert-kmci),将分割后的数据、密钥算法标识、密钥格式、用户标识等信息,使用步骤102生成的签名密钥clnsignprikey进行签名,再利用kmc的公钥对其加密,生成请求文件,并发送给各个所述的kmc;

步骤107)各个所述的kmc收到请求文件,先利用kmc私钥进行解密,再验证其证书有效性和签名有效性;

步骤108)所述的kmc将解析得到的密钥信息存储到密钥库中。

密钥恢复:

参考图3,密钥恢复步骤如下:

步骤201)所述的第三方ca中心为各个参与密钥备份的所述的kmc颁发数字证书;这里有3个kmc参与,分别记作kmc1,kmc2,kmc3,其对应的公私钥为(kmc1pubkey,kmc1prikey),(kmc2pubkey,kmc2prikey),(kmc3pubkey,kmc3prikey)证书为cert-kmc1,cert-kmc2,cert-kmc3;

步骤202)所述的用户加密终端生成签名密钥,记作clnsignkp,其公钥为clnsignpubkey,私钥为clnsignprikey,产生申请书并发送给所述的第三方ca中心,由其认证并颁发签名证书,记作cert-clnsign;

步骤203)所述的用户加密终端生成临时密钥对,记作clntmpkp,其公钥为clntmppubkey,私钥为clntmpprikey,根据加密算法(sm2算法)、随机数生成算法以及kmc门限要求(2of3)向所需的所述的kmc提出密钥恢复请求,密钥恢复请求中包含用户标识、身份证明、临时密钥(clntmppubkey)以及利用步骤202的签名密钥clnsignprikey进行数字签名;这里可以任意选择3个kmc来进行密钥恢复,例如选择kmc1(s1,s2),kmc2(s2,s3);

步骤204)所述的kmc对密钥恢复请求进行验证,验证证书有效性、签名有效性以及密钥恢复主体身份有效性;

步骤205)所述的kmc使用其私钥对备份的密钥信息进行签名,再利用申请书中的临时公钥clntmppubkey对其加密,发送给所述的用户加密终端;

步骤206)所述的用户加密终端利用临时密钥对私钥clntmpprikey,将收到的来自各个所述的kmc(kmc1和kmc2)返回的备份密钥信息进行解密,并验证签名有效性;

步骤207)所述的用户加密终端利用各个备份密钥信息(s1,s2)(s2,s3),恢复生成随机数种子(s1,s2,s3);

步骤208)所述的用户加密终端利用步骤207恢复得到的随机数种子生成加密密钥,产生申请书并发送给所述的第三方ca中心,由其颁发签名证书。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

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