密钥恢复方法、装置、系统、存储介质及电子装置与流程

文档序号:31398840发布日期:2022-09-03 04:05阅读:94来源:国知局
密钥恢复方法、装置、系统、存储介质及电子装置与流程

1.本发明实施例涉及密钥管理领域,具体而言,涉及一种密钥恢复方法、装置、系统、存储介质及电子装置。


背景技术:

2.在网络互通的时代,数据安全问题逐渐成为关注的重点,而对于数据的安全存储或共享,通常使用密钥对数据进行加密,来保证数据的安全,并对密钥进行安全存储,上述过程中存在单点故障的风险。换言之,若存放密钥的设备出现故障,或遭受外界的攻击,则导致密钥不可用或密钥丢失等问题。因此,分布式密钥存储思想更贴合实际应用。
3.目前,现有方案中,大多数利用门限的思想来实现密钥的分布式存储,每个参与方拥有密钥分片,达到门限数量的密钥分片即可恢复密钥。然而,相关技术的方案中不能防止参与方之间的合谋问题;另外,密钥的恢复只能由拥有密钥分片的参与方实现,若将密钥分片发送给其它参与方,则可能会导致密钥的泄露。因此,相关技术中存在着密钥的安全性较低的问题。
4.针对相关技术中存在的密钥的安全性较低的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种密钥恢复方法、装置、系统、存储介质及电子装置,以至少解决相关技术中存在的密钥的安全性较低的问题。
6.根据本发明的一个实施例,提供了一种密钥恢复方法,应用于第一对象中,包括:获取n个子密文,其中,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,n个所述子密文是在所述第一对象向所述第二对象发送第一目标请求之后,由所述第二对象通知n个所述第三对象分别发送给所述第一对象的,所述第一目标请求用于请求恢复所述目标密钥,n为大于或等于2的正整数;利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对。
7.在一个示例性实施例中,利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,包括:利用所述目标私钥对n个所述子密文分别进行解密,以得到n个所述子密钥;基于n个所述子密钥恢复所述目标密钥。
8.在一个示例性实施例中,基于n个所述子密钥恢复所述目标密钥,包括:对n个所述子密钥进行加法操作,以得到所述目标密钥。
9.在一个示例性实施例中,在获取n个子密文之前,所述方法还包括:接收所述第二对象发送的第二目标请求,其中,所述第二目标请求用于请求获取所述目标公钥;在对所述第二对象的身份进行认证且认证通过后,将所述目标公钥发送给所述第二对象,以指示所
述第二对象利用所述目标公钥对n个所述子密钥进行加密以得到n个所述子密文。
10.在一个示例性实施例中,将所述目标公钥发送给所述第二对象,包括:将所述目标公钥发送给所述第二对象,以指示所述第二对象销毁所述目标密钥及n个所述子密钥。
11.在一个示例性实施例中,将所述目标公钥发送给所述第二对象,包括:将所述目标公钥发送给所述第二对象,以指示所述第二对象在对n个所述第三对象进行身份认证且认证通过后将n个所述子密文分别发送给n个所述第三对象。
12.在一个示例性实施例中,所述方法还包括:接收第三目标请求,其中,所述第三目标请求是由第一目标子对象在执行预定操作并获得目标密文之后所发送的,所述第三目标请求用于请求对所述目标密文进行解密以恢复所述目标密钥,所述第一目标子对象为n个所述第三对象中包括的任一对象,所述预定操作包括:所述第一目标子对象向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,所述第二目标子对象为n个所述第三对象中包括的除所述第一目标子对象之外的所有对象,所述第二子密文包括所述第二目标子对象中的每个对象所存储的所述子密文;获取所述第二子密文,其中,所述第二子密文是由所述第二目标子对象中的每个对象在对所述第一目标子对象进行身份认证且认证通过后所发送的所述子密文组成的;将第一子密文与所述第二子密文进行加法操作,以得到所述目标密文;基于所述第三目标请求利用所述目标私钥对所述目标密文进行解密,以恢复所述目标密钥。
13.根据本发明的另一个实施例,还提供了一种密钥恢复方法,应用于第二对象中,包括:接收由第一对象发送的第一目标请求,其中,所述第一目标请求用于请求恢复目标密钥;通知n个第三对象将n个子密文分别发送给所述第一对象,并指示所述第一对象利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,n个所述子密文是由所述第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对所述目标密钥进行分片后得到的密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
14.根据本发明的又一个实施例,还提供了一种密钥恢复方法,应用于第三对象中,包括:接收目标通知,其中,所述目标通知用于指示n个所述第三对象中包括的每个所述第三对象将n个子密文分别发送给第一对象,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,所述目标通知是由所述第二对象在接收到所述第一对象发送的第一目标请求之后发出的,所述第一目标请求用于请求恢复所述目标密钥;将所述子密文发送给所述第一对象,并指示所述第一对象在接收到n个所述子密文后利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
15.在一个示例性实施例中,所述方法还包括:向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,所述第二目标子对象为n个所述第三对象中包括的除第一目标子对象之外的所有对象,所述第二子密文包括所述第二目标子对象中的每个对象所存储的所述子密文;获取所述第二子密文,其中,所述第二子密文是由所述第二目标子对象中的每个对象在对所述第一目标子对象进行身份认证且认证通过后所发送的所述子密文组成
的;将所述第二子密文与第一子密文进行加法操作,以得到目标密文,其中,所述第一子密文为所述第一目标子对象中所存储的密文;向所述第一对象发送第三目标请求,以请求所述第一对象对所述目标密文进行解密以恢复所述目标密钥。
16.根据本发明的又一个实施例,还提供了一种密钥恢复装置,位于第一对象中,包括:第一获取模块,用于获取n个子密文,其中,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,n个所述子密文是在所述第一对象向所述第二对象发送第一目标请求之后,由所述第二对象通知n个所述第三对象分别发送给所述第一对象的,所述第一目标请求用于请求恢复所述目标密钥,n为大于或等于2的正整数;第一恢复模块,用于利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对。
17.根据本发明的又一个实施例,还提供了一种密钥恢复装置,位于第二对象中,包括:第一接收模块,用于接收由第一对象发送的第一目标请求,其中,所述第一目标请求用于请求恢复目标密钥;第一处理模块,用于通知n个第三对象将n个子密文分别发送给所述第一对象,并指示所述第一对象利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,n个所述子密文是由所述第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对所述目标密钥进行分片后得到的密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
18.根据本发明的又一个实施例,还提供了一种密钥恢复装置,位于第三对象中,包括:第二接收模块,用于接收目标通知,其中,所述目标通知用于指示n个所述第三对象中包括的每个所述第三对象将n个子密文分别发送给第一对象,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,所述目标通知是由所述第二对象在接收到所述第一对象发送的第一目标请求之后发出的,所述第一目标请求用于请求恢复所述目标密钥;第二处理模块,用于将所述子密文发送给所述第一对象,并指示所述第一对象在接收到n个所述子密文后利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
19.根据本发明的又一个实施例,还提供了一种密钥恢复系统,包括:第一对象,第二对象及n个第三对象,其中,所述第一对象包括上述位于所述第一对象中的密钥恢复装置,所述第二对象包括上述位于所述第二对象中的密钥恢复装置,所述第三对象包括上述位于所述第三对象中的密钥恢复装置。
20.根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
21.根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
22.通过本发明,第一对象在向第二对象发送第一目标请求之后,由第二对象通知n个第三对象分别将n个子密文发送给第一对象,第一对象获取n个子密文,然后再利用目标私钥对n个子密文进行解密,以恢复目标密钥,其中,目标公钥与目标私钥是由第一对象采用预定算法生成的密钥对,而n个子密文是由第二对象对目标密钥进行分片得到n个子密钥后,再利用目标公钥对n个子密钥进行加密之后所得到的,且第二对象将n个子密文分别发送给n个第三对象,由n个第三对象分别对n个子密文进行存储。通过对目标密钥进行分片加密,实现了保护各密钥分片的安全性进而达到保护目标密钥的安全性的目的;此外,由于需要由第一对象利用目标私钥才能对n个子密文进行解密及恢复目标密钥,避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题,因此,解决了相关技术中存在的密钥的安全性较低的问题,达到了提高密钥的安全性的效果。
附图说明
23.图1是本发明实施例的密钥恢复方法的移动终端硬件结构框图;
24.图2是根据本发明实施例的一种密钥恢复方法的流程图一;
25.图3是根据本发明实施例的另一种密钥恢复方法的流程图二;
26.图4是根据本发明实施例的又一种密钥恢复方法的流程图三;
27.图5是根据本发明实施例的密钥恢复系统架构图;
28.图6是根据本发明具体实施例的初始化模块示例图;
29.图7是根据本发明具体实施例的主密钥分片加密模块示例图;
30.图8是根据本发明具体实施例的主密钥恢复模块示例图;
31.图9是根据本发明实施例的一种密钥恢复装置的结构框图一;
32.图10是根据本发明实施例的另一种密钥恢复装置的结构框图二;
33.图11是根据本发明实施例的又一种密钥恢复装置的结构框图三。
具体实施方式
34.下文中将参考附图并结合实施例来详细说明本发明的实施例。
35.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
36.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的密钥恢复方法的移动终端硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
37.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的密钥恢复方法对应的计算机程序,处理器102通过运行存储在存储器104内的
计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
38.传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
39.在本实施例中提供了一种密钥恢复方法,图2是根据本发明实施例的一种密钥恢复方法的流程图一,如图2所示,应用于第一对象中,该流程包括如下步骤:
40.步骤s202,获取n个子密文,其中,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,n个所述子密文是在所述第一对象向所述第二对象发送第一目标请求之后,由所述第二对象通知n个所述第三对象分别发送给所述第一对象的,所述第一目标请求用于请求恢复所述目标密钥,n为大于或等于2的正整数;
41.步骤s204,利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对。
42.通过上述步骤,第一对象在向第二对象发送第一目标请求之后,由第二对象通知n个第三对象分别将n个子密文发送给第一对象,第一对象获取n个子密文,然后再利用目标私钥对n个子密文进行解密,以恢复目标密钥,其中,目标公钥与目标私钥是由第一对象采用预定算法生成的密钥对,而n个子密文是由第二对象对目标密钥进行分片得到n个子密钥后,再利用目标公钥对n个子密钥进行加密之后所得到的,且第二对象将n个子密文分别发送给n个第三对象,由n个第三对象分别对n个子密文进行存储。通过对目标密钥进行分片加密,实现了保护各密钥分片的安全性进而达到保护目标密钥的安全性的目的;此外,由于需要由第一对象利用目标私钥才能对n个子密文进行解密及恢复目标密钥,避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题,因此,解决了相关技术中存在的密钥的安全性较低的问题,达到了提高密钥的安全性的效果。
43.其中,上述步骤的执行主体可以为设备,例如密钥管理设备,或上述第一对象,或终端,或实际应用中的密钥恢复设备等,但不限于此。下面以第一对象执行上述操作为例(仅是一种示例性说明,在实际操作中还可以是其他的设备或模块来执行上述操作)进行说明。
44.在上述实施例中,第一对象获取n个子密文,其中,n个子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个第三对象的密文,n个子密钥是由第二对象对目标密钥进行分片后得到的密钥,n个子密文是在第一对象向第二对象发送第一目标请求之后,由第二对象通知n个第三对象分别发送给第一对象的,第一目标请求用于请求恢复目标密钥,n为大于或等于2的正整数;例如,第一对象可以是密钥管理系统中的主
密钥恢复者,第二对象可以是密钥管理系统中的主密钥发布者,第三对象则可以是密钥管理系统中的主密钥分片存储者,例如,第二对象将主密钥(或称为明文主密钥,相当于前述目标密钥)s分成n(相当于前述n)个主密钥分片,如s1,s2,

,sn,满足s=s1+s2+

+sn,然后,第二对象利用目标公钥加密每个明文主密钥分片si,得到对应的密文分片ci,即共n个密文分片,其中,1≤i≤n,第二对象再将n个主密钥分片分别发送给n个第三对象,即每个第三对象分别存储一个密文分片;通过对目标密钥进行分片加密,实现了保护各密钥分片的安全性进而达到保护目标密钥的安全性的目的;然后,第一对象再利用目标私钥对n个子密文进行解密,以恢复目标密钥,其中,目标公钥与目标私钥是由第一对象采用预定算法所生成的密钥对,例如,第一对象选择一种具有加法同态性的同态加密算法生成一对公、私钥(即目标公钥、目标私钥对),即由第一对象利用目标私钥才能对n个子密文进行解密及恢复目标密钥,避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题。因此,解决了相关技术中存在的密钥的安全性较低的问题,达到了提高密钥的安全性的效果。
45.在一个可选的实施例中,利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,包括:利用所述目标私钥对n个所述子密文分别进行解密,以得到n个所述子密钥;基于n个所述子密钥恢复所述目标密钥。在本实施例中,第一对象利用目标私钥对n个子密文(对应于前述密文分片ci,其中,1≤i≤n)分别进行解密,以得到n个子密钥,例如,第一对象利用目标私钥对前述n个子密文(如ci)进行解密,依次得到s1,s2,

,sn,然后基于n个子密钥恢复目标密钥。通过本实施例,第一对象利用目标私钥实现了对n个子密文进行解密进而恢复目标密钥的目的。
46.在一个可选的实施例中,基于n个所述子密钥恢复所述目标密钥,包括:对n个所述子密钥进行加法操作,以得到所述目标密钥。在本实施例中,第一对象对n个子密钥进行加法操作,得到目标密钥,例如,通过进行加法操作s=s1+s2+

+sn,得到目标密钥s。通过本实施例,实现了对n个子密钥进行加法操作以恢复目标密钥的目的。
47.在一个可选的实施例中,在获取n个子密文之前,所述方法还包括:接收所述第二对象发送的第二目标请求,其中,所述第二目标请求用于请求获取所述目标公钥;在对所述第二对象的身份进行认证且认证通过后,将所述目标公钥发送给所述第二对象,以指示所述第二对象利用所述目标公钥对n个所述子密钥进行加密以得到n个所述子密文。在本实施例中,第一对象在获取n个子密文之前,接收第二对象发送的第二目标请求,以请求目标公钥,在第一对象对第二对象的身份进行认证并认证通过后,将目标公钥发送给第二对象,在实际应用中,由第一对象生成公、私钥对(即目标公钥、目标私钥对),在第一对象对第二对象的身份进行认证后将目标公钥发送给第二对象,第一对象可采取动态口令,或基于公钥密码体制的认证等对第二对象的身份进行认证;第二对象获取目标公钥后,即可利用目标公钥对n个子密钥进行加密以得到前述n个子密文。通过本实施例,实现了在接收到第二目标请求后将目标公钥发送给第二对象并指示第二对象利用目标公钥对n个子密钥进行加密的目的,达到了保护各主密钥分片的安全性进而达到保护主密钥的安全性的效果。
48.在一个可选的实施例中,将所述目标公钥发送给所述第二对象,包括:将所述目标公钥发送给所述第二对象,以指示所述第二对象销毁所述目标密钥及n个所述子密钥。在本实施例中,第一对象将目标公钥发送给第二对象,并指示第二对象销毁目标密钥及n个子密
钥,即在实际应用中,第二对象对目标密钥(对应于前述主密钥)进行分片并加密后,将原始的主密钥(如前述主密钥s)及主密钥分片(如前述s1,s2,

,sn)进行销毁,以避免主密钥或主密钥分片被泄露,可达到进一步提高密钥管理的安全性的效果。
49.在一个可选的实施例中,将所述目标公钥发送给所述第二对象,包括:将所述目标公钥发送给所述第二对象,以指示所述第二对象在对n个所述第三对象进行身份认证且认证通过后将n个所述子密文分别发送给n个所述第三对象。在本实施例中,第一对象将目标公钥发送给第二对象,并指示第二对象在对n个第三对象的身份进行认证并认证通过后再将n个子密文(如前述密文分片)分别发送给n个第三对象,即在确定第三对象的身份后再将子密文发送给第三对象,实现了提高密钥的安全性的目的。
50.在一个可选的实施例中,所述方法还包括:接收第三目标请求,其中,所述第三目标请求是由第一目标子对象在执行预定操作并获得目标密文之后所发送的,所述第三目标请求用于请求对所述目标密文进行解密以恢复所述目标密钥,所述第一目标子对象为n个所述第三对象中包括的任一对象,所述预定操作包括:所述第一目标子对象向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,所述第二目标子对象为n个所述第三对象中包括的除所述第一目标子对象之外的所有对象,所述第二子密文包括所述第二目标子对象中的每个对象所存储的所述子密文;获取所述第二子密文,其中,所述第二子密文是由所述第二目标子对象中的每个对象在对所述第一目标子对象进行身份认证且认证通过后所发送的所述子密文组成的;将第一子密文与所述第二子密文进行加法操作,以得到所述目标密文;基于所述第三目标请求利用所述目标私钥对所述目标密文进行解密,以恢复所述目标密钥。在本实施例中,可由第一目标子对象向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,第一子目标对象为n个第三对象中的任意一个对象,第二子目标对象则为n个第三对象中除第一子目标对象之外的其他对象,即第二子目标对象中包括n-1个第三对象,上述第二子密文则对应为该n-1个第三对象中每个第三对象所存储的子密文的组合,第一子目标对象在获取第二子密文后,将第一子密文与第二子密文进行加法操作,以得到目标密文,其中,第一子密文为第一子目标对象中存储的子密文,通过上述操作,即由n个第三对象中的任意一个第三对象向其他n-1个第三对象发起请求以获取第二子密文,再将自身存储的第一子密文(如c1)和第二子密文(如c2+c3+

+cn,)进行加法操作,可得到目标密文,如c=c1+c2+c3+

+cn;第一子目标对象在得到目标密文后,可向第一对象发送第三目标请求,第一对象在接收到该第三目标请求后,利用目标私钥对上述目标密文进行解密,以恢复目标密钥。通过本实施例,实现了由第三对象发起密钥恢复请求以请求第一对象对主密钥进行恢复的目的,实现了提高密钥恢复请求的灵活性的目的,同时,也避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题。
51.在本实施例中还提供了另一种密钥恢复方法,图3是根据本发明实施例的另一种密钥恢复方法的流程图二,如图3所示,应用于第二对象中,该流程包括如下步骤:
52.步骤s302,接收由第一对象发送的第一目标请求,其中,所述第一目标请求用于请求恢复目标密钥;
53.步骤s304,通知n个第三对象将n个子密文分别发送给所述第一对象,并指示所述第一对象利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,n个所述子
密文是由所述第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对所述目标密钥进行分片后得到的密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
54.通过上述步骤,第二对象接收第一对象发送的第一目标请求以请求恢复目标密钥,第二对象再通知n个第三对象将n个子密文分别发送给第一对象,并指示第一对象利用目标私钥对n个子密文进行解密以恢复目标密钥,其中,目标公钥与目标私钥是由第一对象采用预定算法生成的密钥对,而n个子密文是由第二对象对目标密钥进行分片得到n个子密钥后,再利用目标公钥对n个子密钥进行加密之后所得到的,且第二对象将n个子密文分别发送给n个第三对象,由n个第三对象分别对n个子密文进行存储。通过对目标密钥进行分片加密,实现了保护各密钥分片的安全性进而达到保护目标密钥的安全性的目的;此外,通过指示第一对象利用目标私钥对n个子密文进行解密及恢复目标密钥,避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题,因此,解决了相关技术中存在的密钥的安全性较低的问题,达到了提高密钥的安全性的效果。
55.其中,上述步骤的执行主体可以为设备,例如密钥管理设备,或上述第二对象,或终端,或实际应用中的密钥发布设备等,但不限于此。下面以第二对象执行上述操作为例(仅是一种示例性说明,在实际操作中还可以是其他的设备或模块来执行上述操作)进行说明。
56.在上述实施例中,第二对象接收由第一对象发送的第一目标请求,其中,第一目标请求用于请求恢复目标密钥;第二对象再通知n个第三对象将n个子密文分别发送给第一对象,并指示第一对象利用目标私钥对n个子密文进行解密,以恢复所述目标密钥,其中,n个子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个第三对象的密文,n个子密钥是由第二对象对目标密钥进行分片后得到的密钥,n为大于或等于2的正整数。例如,第一对象可以是密钥管理系统中的主密钥恢复者,第二对象可以是密钥管理系统中的主密钥发布者,第三对象则可以是密钥管理系统中的主密钥分片存储者,例如,第二对象将主密钥(或称为明文主密钥,相当于前述目标密钥)s分成n(相当于前述n)个主密钥分片,如s1,s2,

,sn,满足s=s1+s2+

+sn,然后,第二对象利用目标公钥加密每个明文主密钥分片si,得到对应的密文分片ci,即共n个密文分片,其中,1≤i≤n,第二对象再将n个主密钥分片分别发送给n个第三对象,即每个第三对象分别存储一个密文分片;通过对目标密钥进行分片加密,实现了保护各密钥分片的安全性进而达到保护目标密钥的安全性的目的;第二对象通知n个第三对象将n个子密文分别发送给第一对象,并指示第一对象利用目标私钥对n个子密文进行解密,以恢复目标密钥,其中,目标公钥与目标私钥是由第一对象采用预定算法所生成的密钥对,例如,第一对象选择一种具有加法同态性的同态加密算法生成一对公、私钥(即目标公钥、目标私钥对),即指示第一对象利用目标私钥对n个子密文进行解密及恢复目标密钥,避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题。因此,解决了相关技术中存在的密钥的安全性较低的问题,达到了提高密钥的安全性的效果。
57.在本实施例中还提供了又一种密钥恢复方法,图4是根据本发明实施例的又一种密钥恢复方法的流程图三,如图4所示,应用于第三对象中,该流程包括如下步骤:
58.步骤s402,接收目标通知,其中,所述目标通知用于指示n个所述第三对象中包括的每个所述第三对象将n个子密文分别发送给第一对象,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,所述目标通知是由所述第二对象在接收到所述第一对象发送的第一目标请求之后发出的,所述第一目标请求用于请求恢复所述目标密钥;
59.步骤s404,将所述子密文发送给所述第一对象,并指示所述第一对象在接收到n个所述子密文后利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
60.通过上述步骤,第三对象接收第二对象发出的目标通知,以指示n个第三对象中的每个第三对象将n个子密文分别发送给第一对象,其中,目标通知是由第二对象在接收到第一对象发送的第一目标请求后发出的,n个第三对象中的每个第三对象在接收到目标通知后,分别将子密文发送给第一对象,并指示第一对象利用目标私钥对n个子密文进行解密,以恢复目标密钥,其中,目标公钥与目标私钥是由第一对象采用预定算法生成的密钥对,而n个子密文是由第二对象对目标密钥进行分片得到n个子密钥后,再利用目标公钥对n个子密钥进行加密之后所得到的,且第二对象将n个子密文分别发送给n个第三对象,由n个第三对象分别对n个子密文进行存储。通过对目标密钥进行分片加密,实现了保护各密钥分片的安全性进而达到保护目标密钥的安全性的目的;此外,通过指示第一对象利用目标私钥对n个子密文进行解密及恢复目标密钥,避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题,因此,解决了相关技术中存在的密钥的安全性较低的问题,达到了提高密钥的安全性的效果。
61.其中,上述步骤的执行主体可以为设备,例如密文存储设备,或上述第三对象,或终端,或实际应用中的密钥分片存储设备等,但不限于此。下面以第三对象执行上述操作为例(仅是一种示例性说明,在实际操作中还可以是其他的设备或模块来执行上述操作)进行说明。
62.在上述实施例中,第三对象接收目标通知,其中,目标通知用于指示n个第三对象中包括的每个第三对象将n个子密文分别发送给第一对象,n个子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个第三对象的密文,n个子密钥是由第二对象对目标密钥进行分片后得到的密钥,目标通知是由第二对象在接收到第一对象发送的第一目标请求之后发出的,第一目标请求用于请求恢复目标密钥;n个第三对象中包括的每个第三对象将子密文发送给第一对象,即将n个子密文发送给第一对象,并指示第一对象在接收到n个子密文后利用目标私钥对n个子密文进行解密,以恢复目标密钥,例如,第一对象可以是密钥管理系统中的主密钥恢复者,第二对象可以是密钥管理系统中的主密钥发布者,第三对象则可以是密钥管理系统中的主密钥分片存储者,例如,第二对象将主密钥(或称为明文主密钥,相当于前述目标密钥)s分成n(相当于前述n)个主密钥分片,如s1,s2,

,sn,满足s=s1+s2+

+sn,然后,第二对象利用目标公钥加密每个明文主密钥分片si,得到对应的密文分片ci,即共n个密文分片,其中,1≤i≤n,第二对象再将n个主密钥分片分别发送给n个第三对象,即每个第三对象分别存储一个密文分片;通过对目标密钥进行分片
加密,实现了保护各密钥分片的安全性进而达到保护目标密钥的安全性的目的;目标公钥与目标私钥是由第一对象采用预定算法所生成的密钥对,例如,第一对象选择一种具有加法同态性的同态加密算法生成一对公、私钥(即目标公钥、目标私钥对),即指示第一对象利用目标私钥对n个子密文进行解密及恢复目标密钥,避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题。因此,解决了相关技术中存在的密钥的安全性较低的问题,达到了提高密钥的安全性的效果。
63.在一个可选的实施例中,所述方法还包括:向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,所述第二目标子对象为n个所述第三对象中包括的除第一目标子对象之外的所有对象,所述第二子密文包括所述第二目标子对象中的每个对象所存储的所述子密文;获取所述第二子密文,其中,所述第二子密文是由所述第二目标子对象中的每个对象在对所述第一目标子对象进行身份认证且认证通过后所发送的所述子密文组成的;将所述第二子密文与第一子密文进行加法操作,以得到目标密文,其中,所述第一子密文为所述第一目标子对象中所存储的密文;向所述第一对象发送第三目标请求,以请求所述第一对象对所述目标密文进行解密以恢复所述目标密钥。在本实施例中,第一目标子对象向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,第一子目标对象为n个第三对象中的任意一个对象,第二子目标对象则为n个第三对象中除第一子目标对象之外的其他对象,即第二子目标对象中包括n-1个第三对象,上述第二子密文则对应为该n-1个第三对象中每个第三对象所存储的子密文的组合,第一子目标对象获取第二子密文,然后将第一子密文与第二子密文进行加法操作,以得到目标密文,其中,第一子密文为第一子目标对象中存储的子密文,通过上述操作,即由n个第三对象中的任意一个第三对象向其他n-1个第三对象发起请求以获取第二子密文,再将自身存储的第一子密文(如c1)和第二子密文(如c2+c3+

+cn,)进行加法操作,可得到目标密文,如c=c1+c2+c3+

+cn;第一子目标对象再向第一对象发送第三目标请求,以请求第一对象利用目标私钥对上述目标密文c进行解密以恢复目标密钥(如上述s)。通过本实施例,实现了由第三对象发起密钥恢复请求以请求第一对象对主密钥进行恢复的目的,实现了提高密钥恢复请求的灵活性的目的,同时,也避免了相关技术中存在的拥有密钥分片的各参与方可能因为合谋攻击而导致密钥的安全性难以保证的问题。
64.显然,上述所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。下面结合实施例对本发明进行具体说明。
65.在本实施例中还提供了一种密钥恢复系统,图5是根据本发明实施例的密钥恢复系统架构图,该系统包括:主密钥发布者sd 504(对应于前述第二对象)、主密钥恢复者sr 502(对应于前述第一对象)、n(n≥2)个主密钥分片存储者pi(i=1,2,

,n)506(对应于前述第三对象),其中,主密钥相当于前述目标密钥。
66.其中,主密钥发布者sd,用于对主密钥进行分片、加密主密钥分片;主密钥恢复者sr,用于生成密钥对、解密主密钥密文以恢复主密钥;主密钥分片存储者pi(i=1,2,

,n),用于保存主密钥分片。
67.本技术实施例中提供了一种主密钥恢复的方法,该方案中主要包括三个角色:主密钥发布者sd(对应于前述第二对象)、主密钥恢复者sr(对应于前述第一对象)、n(n≥2)个主密钥分片存储者pi(i=1,2,

,n)(对应于前述第三对象)。
68.本技术实施例基于加法同态算法的主密钥(对应于前述目标密钥)分享方案中包括三个模块:初始化模块、主密钥分片加密模块和主密钥恢复模块。下面对三个模块的功能及其工作流程进行说明。
69.(1)初始化模块
70.图6是根据本发明具体实施例的初始化模块示例图,该模块中涉及到主密钥恢复者和主密钥发布者之间的初始化过程,具体如下:
71.1.1、主密钥恢复者sr选择一种具有加法同态性的同态加密算法(例如,paillier同态加密算法,对应于前述预定算法),生成一对公、私钥,记为<pub,pri>。
72.1.2、主密钥发布者sd从主密钥恢复者sr请求公钥pub。
73.1.3、密钥恢复者sr对主密钥发布者sd进行身份认证(例如,动态口令、基于公钥密码体制的认证等),认证通过后,将公钥pub发送给主密钥发布者sd。
74.(2)主密钥分片加密模块
75.图7是根据本发明具体实施例的主密钥分片加密模块示例图,该模块中涉及到主密钥发布者对主密钥进行分片并对主密钥分片进行加密,具体如下:
76.2.1、主密钥发布者sd拥有主密钥s,将主密钥s分成n个主密钥分片s1,s2,

,sn(n≥2)(对应于前述子密钥),满足s=s1+s2+

+sn。
77.2.2、主密钥发布者sd利用公钥pub加密每个明文主密钥分片si,得到对应的密文分片(对应于前述子密文),记为ci=e
pub
(si)(i=1,2,

,n),并将原始主密钥s和明文主密钥分片s1,s2,

,sn进行销毁。
78.2.3、主密钥发布者sd对n个主密钥分片存储者身份进行认证,认证通过后,将n个密文分片(或称为主密钥分片)分别发送给每个主密钥分片存储者。
79.2.4、每个主密钥分片存储者存储密文分片。
80.(3)主密钥恢复模块
81.图8是根据本发明具体实施例的主密钥恢复模块示例图,该模块中涉及到主密钥恢复者请求恢复主密钥的过程,具体如下:
82.主密钥恢复者sr若想恢复主密钥,主密钥恢复者sr向主密钥发布者sd发送主密钥恢复请求,主密钥发布者sd通知每个主密钥分片存储者pi(i=1,2,

,n)。
83.所述主密钥恢复有两种方式,图8所示为方式一恢复模式。
84.方式一:由主密钥恢复者sr收集每个主密钥分片存储者的密文分片,进行主密钥恢复,具体包括:
85.3.1、主密钥分片存储者pi(i=1,2,

,n)将密文分片ci发送给主密钥恢复者sr。
86.3.2、主密钥恢复者sr对每个密文分片进行解密,依次得到s1,s2,

,sn,即获得主密钥s=s1+s2+

+sn。
87.方式二:由主密钥分片存储者pi(i∈n)执行密文上报恢复主密钥操作,具体包括:
88.4.1.主密钥分片存储者pi(i∈n)向其他主密钥分片存储者请求密文主密钥分片,其他主密钥分片存储者pj(j≠i)对主密钥分片存储者pi进行身份认证,认证通过后,将密文主密钥分片发送给主密钥分片存储者pi。
89.4.2.主密钥分片存储者pi对主密钥分片c1,c2,

,cn进行加法操作,得到c=c1+c2+

+cn,e
pub
(si)(i=1,2,

,n)。
90.根据加法同态特性,c1+c2+

+cn=e
pub
(s1+s2+

+sn)成立,即
91.c=e
pub
(s1+s2+

+sn)=e
p
ub(s)。
92.4.3、主密钥分片存储者pi将密文主密钥c发送给主密钥恢复者sr。
93.4.4、主密钥恢复者sr利用私钥pri解密密文c,得到主密钥s。
94.在主密钥恢复模块的方式二中,主密钥恢复者可仅作为私钥解密角色,密文分片的同态操作可由其他主密钥分片存储者或其他主机来完成,方式二未在图8中示出。
95.在上述实施例中,通过对主密钥分片加密,保护了各主密钥分片的安全性,进而保护了主密钥的安全性;抵抗拥有密钥分片的各参与方的合谋攻击,各参与方之间只能联合恢复密钥的密文,而不能获取明文的密钥信息;利用满足同态加法性质的密码算法来恢复密钥明文,使密钥的存储者和密钥的恢复角色分离,且密钥存储者角色是分散的,提高了密钥存储和恢复的安全性。
96.通过本技术实施例,通过使用加法秘密共享的分割方式对主密钥进行拆分,并进行分布式存储,相比密钥单点存储,达到提高主密钥存储的安全性的效果,同时还实现了密钥分片存储过程没有冗余的效果,存储者缺一不可;持有同态私钥的恢复者是关键点,秘密分片存储者只拥有秘密分片的密文,即使所有秘密分片存储者合谋,也只能获取主密钥的密文,因此,可实现抵抗秘密分片存储者之间的合谋的目的;同时,还达到了增加主密钥恢复过程中的灵活性的效果。任何主机(包括秘密分片存储者)可通过加密算法的加法同态性,计算主密钥的密文,而不泄露主密钥的明文,只有恢复者才能恢复主密钥。
97.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
98.在本实施例中还提供了一种密钥恢复装置,位于第一对象中,图9是根据本发明实施例的一种密钥恢复装置的结构框图一,如图9所示,该装置包括:
99.第一获取模块902,用于获取n个子密文,其中,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,n个所述子密文是在所述第一对象向所述第二对象发送第一目标请求之后,由所述第二对象通知n个所述第三对象分别发送给所述第一对象的,所述第一目标请求用于请求恢复所述目标密钥,n为大于或等于2的正整数;
100.第一恢复模块904,用于利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对。
101.在一个可选的实施例中,上述第一恢复模块904包括:第一解密单元,用于利用所述目标私钥对n个所述子密文分别进行解密,以得到n个所述子密钥;第一恢复单元,用于基于n个所述子密钥恢复所述目标密钥。
102.在一个可选的实施例中,上述第一恢复单元包括:获得子单元,用于对n个所述子
密钥进行加法操作,以得到所述目标密钥。
103.在一个可选的实施例中,上述装置还包括:第三接收模块,用于在获取n个子密文之前,接收所述第二对象发送的第二目标请求,其中,所述第二目标请求用于请求获取所述目标公钥;第三处理模块,用于在对所述第二对象的身份进行认证且认证通过后,将所述目标公钥发送给所述第二对象,以指示所述第二对象利用所述目标公钥对n个所述子密钥进行加密以得到n个所述子密文。
104.在一个可选的实施例中,上述第三处理模块包括:第一处理单元,用于将所述目标公钥发送给所述第二对象,以指示所述第二对象销毁所述目标密钥及n个所述子密钥。
105.在一个可选的实施例中,上述第三处理模块包括:第二处理单元,用于将所述目标公钥发送给所述第二对象,以指示所述第二对象在对n个所述第三对象进行身份认证且认证通过后将n个所述子密文分别发送给n个所述第三对象。
106.在一个可选的实施例中,上述装置还包括:第四接收模块,用于接收第三目标请求,其中,所述第三目标请求是由第一目标子对象在执行预定操作并获得目标密文之后所发送的,所述第三目标请求用于请求对所述目标密文进行解密以恢复所述目标密钥,所述第一目标子对象为n个所述第三对象中包括的任一对象,所述预定操作包括:所述第一目标子对象向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,所述第二目标子对象为n个所述第三对象中包括的除所述第一目标子对象之外的所有对象,所述第二子密文包括所述第二目标子对象中的每个对象所存储的所述子密文;获取所述第二子密文,其中,所述第二子密文是由所述第二目标子对象中的每个对象在对所述第一目标子对象进行身份认证且认证通过后所发送的所述子密文组成的;将第一子密文与所述第二子密文进行加法操作,以得到所述目标密文;第二恢复模块,用于基于所述第三目标请求利用所述目标私钥对所述目标密文进行解密,以恢复所述目标密钥。
107.在本实施例中还提供了另一种密钥恢复装置,位于第二对象中,图10是根据本发明实施例的另一种密钥恢复装置的结构框图二,如图10所示,该装置包括:
108.第一接收模块1002,用于接收由第一对象发送的第一目标请求,其中,所述第一目标请求用于请求恢复目标密钥;
109.第一处理模块1004,用于通知n个第三对象将n个子密文分别发送给所述第一对象,并指示所述第一对象利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,其中,n个所述子密文是由所述第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对所述目标密钥进行分片后得到的密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
110.在本实施例中还提供了又一种密钥恢复装置,位于第三对象中,图11是根据本发明实施例的又一种密钥恢复装置的结构框图三,如图11所示,该装置包括:
111.第二接收模块1102,用于接收目标通知,其中,所述目标通知用于指示n个所述第三对象中包括的每个所述第三对象将n个子密文分别发送给第一对象,n个所述子密文是由第二对象利用目标公钥对n个子密钥进行加密之后得到并分别发送给n个所述第三对象的密文,n个所述子密钥是由所述第二对象对目标密钥进行分片后得到的密钥,所述目标通知是由所述第二对象在接收到所述第一对象发送的第一目标请求之后发出的,所述第一目标
请求用于请求恢复所述目标密钥;
112.第二处理模块1104,用于将所述子密文发送给所述第一对象,并指示所述第一对象在接收到n个所述子密文后利用目标私钥对n个所述子密文进行解密,以恢复所述目标密钥,所述目标公钥与所述目标私钥是由所述第一对象采用预定算法所生成的密钥对,n为大于或等于2的正整数。
113.在一个可选的实施例中,上述装置还包括:第一发送模块,用于向第二目标子对象发送第四目标请求,以请求获取第二子密文,其中,所述第二目标子对象为n个所述第三对象中包括的除第一目标子对象之外的所有对象,所述第二子密文包括所述第二目标子对象中的每个对象所存储的所述子密文;第二获取模块,用于获取所述第二子密文,其中,所述第二子密文是由所述第二目标子对象中的每个对象在对所述第一目标子对象进行身份认证且认证通过后所发送的所述子密文组成的;第一获得模块,用于将所述第二子密文与第一子密文进行加法操作,以得到目标密文,其中,所述第一子密文为所述第一目标子对象中所存储的密文;第二发送模块,用于向所述第一对象发送第三目标请求,以请求所述第一对象对所述目标密文进行解密以恢复所述目标密钥。
114.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
115.在本实施例中还提供了一种密钥恢复系统,包括:第一对象,第二对象及n个第三对象,其中,所述第一对象包括上述位于所述第一对象中的密钥恢复装置,所述第二对象包括上述位于所述第二对象中的密钥恢复装置,所述第三对象包括上述位于所述第三对象中的密钥恢复装置。
116.本发明的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
117.在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
118.本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
119.在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
120.本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
121.显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作
成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
122.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1