CN113064761B - 数据恢复方法、服务器、加密机、终端及介质 - Google Patents
数据恢复方法、服务器、加密机、终端及介质 Download PDFInfo
- Publication number
- CN113064761B CN113064761B CN202110377925.8A CN202110377925A CN113064761B CN 113064761 B CN113064761 B CN 113064761B CN 202110377925 A CN202110377925 A CN 202110377925A CN 113064761 B CN113064761 B CN 113064761B
- Authority
- CN
- China
- Prior art keywords
- key
- recovery
- ciphertext
- terminal
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种数据恢复方法、服务器、加密机、终端以及存储介质。该方法可以应用于服务器侧,包括:接收第一终端发起的数据恢复请求,数据恢复请求用于指示待恢复的第一数据;根据数据恢复请求,查找R个密文包和对应的R个恢复包;其中,Q≥R≥1;R个密文包涵盖Q个密钥因子,Q个密钥因子用于加密第一数据;基于R个密文包和R个恢复包,恢复Q个密钥因子,以使第一终端能够利用Q个密钥因子,以及第一终端上的P‑Q个密钥因子,恢复第一数据,P>Q。采用上述实现方式,可以提高密钥因子在被恢复时的安全性和灵活性,降低密钥因子以及第二密钥无法恢复的风险,从而可以降低第一数据无法恢复的风险,并进一步提高第一数据的安全性。
Description
技术领域
本申请涉及数据安全领域,特别涉及一种数据恢复方法。此外,本申请还涉及一种服务器、一种加密机、一种终端设备,以及一种计算机可读存储介质。
背景技术
随着互联网应用越来越繁多,很多应用会产生一些对用户来说很重要的隐私数据,例如用户的电话号码、家庭地址、密钥、银行账号、银行账号的密码等。这些数据一旦丢失,会给用户造成较大的损失。因此,用户可以对这些重要的数据进行备份,以便在丢失的时候可以恢复。
其中一种常见的备份和恢复方式包括:将终端用户的终端上的数据加密后存储在服务器上,当需要恢复的时候,再从服务器上获取备份的数据进行恢复。进一步地,终端用户还可以将数据备份到服务器上,并且提前设定好一些协助者。当终端上的数据丢失而需要恢复时,终端用户可以通过这些协助者的协助来恢复数据,从而提高数据恢复的安全性。
但是,这些协助者通常都是终端用户提前设定好的,如果其中一部分协助者发生变动,不能够提供协助,可能会导致能够协助的协助者的数量低于最低门限,进而导致终端用户无法恢复数据。这是本领域技术人员亟待解决的问题。
发明内容
本申请的一个目的在于提供一种数据的恢复方法,能够提高加密数据的密钥因子和数据恢复的安全性和灵活性,从而降低了数据无法恢复的风险。
本申请的第一方面提供一种密钥因子恢复方法,应用于服务器侧,包括:
接收第一终端发起的数据恢复请求,所述数据恢复请求用于指示待恢复的第一数据;
根据所述数据恢复请求,查找R个密文包和对应的R个恢复包;其中,Q≥R≥1;所述R个密文包涵盖Q个密钥因子,所述Q个密钥因子用于加密所述第一数据;
基于所述R个密文包和所述R个恢复包,恢复所述Q个密钥因子,以使所述第一终端能够利用所述Q个密钥因子,以及所述第一终端上的P-Q个密钥因子,恢复所述第一数据,P>Q;
其中,基于所述R个密文包和所述R个恢复包,恢复所述Q个密钥因子的步骤,包括:
获取第一密文包和对应的第一恢复包;所述第一密文包为所述R个密文包中的任一个,所述第一密文包包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对第一密钥因子加密所得到的密文,所述第一签名者具有对所述第一恢复包签名的权限;所述第一恢复包由所述第一签名者利用所述第一签名者的私钥签发,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复所述第一密钥因子的n个协助者的身份;
在所述第一恢复包通过第四验证的情况下,将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者;所述第四验证包括利用所述第一签名者的信息验证所述第一恢复包的签名;
获取所述第一终端收集到的m个第二恢复码,n≥m≥t,所述t为预设的恢复所述第一密钥因子所需的第二恢复码的最低个数;
在所述m个第二恢复码通过第一验证的情况下,利用第一私钥恢复所述第一密钥因子;其中,所述第一验证为利用所述n个第一恢复码进行的验证;所述第一私钥和所述第一公钥为所述服务器侧的一对密钥。
结合第一方面,在一种可能的实现方式中,所述第一密文包还包括第一审批者的信息,所述第一审批者具有决定所述第一终端是否能够恢复所述第一密钥因子的权限;
该方法还包括:
获取与所述第一密文包对应的第一审批包;所述第一审批包经过所述第一审批者的私钥签名;
在所述第一审批包通过第三验证的情况下,判断所述第一恢复包是否通过第四验证,其中,所述第三验证包括利用所述第一审批者的公钥验证所述第一审批包的签名。
结合第一方面,在一种可能的实现方式中,所述第一密文包经过第一终端的私钥签名;
该方法还包括:
在所述第一密文包通过第二验证的情况下,判断所述第一恢复包是否通过第四验证,其中,所述第二验证包括利用所述第一终端的公钥验证所述密文包的签名。
结合第一方面,在一种可能的实现方式中,获取所述第一终端收集到的m个第二恢复码的步骤,包括:
获取来自所述第一终端的m个第二校验码,所述m个第二校验码分别与所述m个第二恢复码对应;
所述m个第二恢复码通过第一验证的步骤,包括:
在所述m个第二校验码均包含于n个第一校验码中的情况下,通过所述第一验证;其中,所述n个第一校验码分别与所述n个第一恢复码对应。
结合第一方面,在一种可能的实现方式中,利用所述第一私钥恢复所述第一密钥因子,包括:
利用所述第一私钥解密所述第一密文,得到所述第一密钥因子;
利用与所述m个第二恢复码对应的m个第一恢复码生成会话密钥;
利用所述会话密钥对所述所述第一密钥因子加密,得到第三密文;
发送所述第三密文给所述第一终端,以使所述第一终端恢复所述第一密钥因子。
结合第一方面,在一种可能的实现方式中,所述方法应用于服务器侧的加密机,所述第一私钥存储在所述加密机中。
本申请的第二方面提供一种数据恢复方法,应用于第一终端,所述方法包括:
利用第二密钥加密第一数据,得到第二密文;其中,所述第二密钥基于P个密钥因子形成;
向服务器侧发送R个密文包;其中,R个密文包涵盖了Q个密钥因子,P>Q≥R≥1,所述Q个密钥因子∈所述P个密钥因子;第一密文包为所述R个密文包中的任一个,所述第一密文包中包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对第一密钥因子加密所得到的密文,所述第一签名者具有对第一恢复包签名的权限;所述第一恢复包由所述第一签名者利用所述第一签名者的私钥签发,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复所述第一密钥因子的n个协助者的身份;
存储P-Q个密钥因子;
向所述服务器侧发送数据恢复请求;其中,所述数据恢复请求用于指示待恢复的第一数据;
收集m个第二恢复码;其中,n≥m≥t,所述t为预设的恢复所述第一密钥因子所需的第二恢复码的最低个数;
向服务器侧发送所述m个第二恢复码;
在所述m个第二恢复码在所述服务器侧通过第一验证的情况下,接收由服务器侧利用第一私钥恢复的所述第一密钥因子;
在接收到包含第一密钥因子的Q个密钥因子之后,利用所述Q个密钥因子以及所述第一终端上的P-Q个密钥因子解密第二密文,得到所述第一数据。
本申请的第三方面提供一种数据恢复方法,应用于第二终端,所述方法包括:
利用第二签名者的私钥对第一恢复包签名;其中,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复第一密钥因子的n个协助者的身份;与所述第一密钥因子对应的第一密文包包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对所述第一密钥因子加密所得到的密文,所述第一公钥为服务器侧的一对非对称密钥中的公钥;
发送签名后的第一恢复包。
本申请的第四方面提供一种服务器,包括:
存储器,其配置为存储预定的计算机指令;
处理器,其配置为运行所述预定的计算机指令以执行第一方面的任一种方法。
本申请的第五方面提供一种终端设备,包括:
存储器,其配置为存储预定的计算机指令;
处理器,其配置为运行所述预定的计算机指令以执行第二方面的任一种方法。
本申请的第六方面提供一种终端设备,包括:
存储器,其配置为存储预定的计算机指令;
处理器,其配置为运行所述预定的计算机指令以执行第三方面的任一种方法。
本申请的第七方面提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行第一方面、第二方面或第三方面的任一种方法。
采用上述实现方式,可以提高密钥因子在被恢复时的安全性和灵活性,降低密钥因子以及第二密钥无法恢复的风险,从而可以降低第一数据无法恢复的风险,并进一步提高第一数据的安全性。
附图说明
图1是本申请实施例提供的一个示例性的系统架构示意图。
图2是本申请实施例提供的另一个示例性的系统架构示意图。
图3是本申请一示例性实施例示出的一种数据备份、恢复包签发和数据恢复方法的流程图。
图4是本申请一示例性实施例示出的第一密钥因子恢复方法的流程图。
图5是根据本申请一示例性实施例示出的一种服务器的结构示意图。
具体实施方式
为清楚、完整地描述本申请的技术方案,下面将结合实施例和附图作进一步说明。
本申请实施例引入了密钥因子来生成用于加密数据的密钥,并在此基础上引入了恢复包,以便在终端丢失了数据而想恢复的时候,利用恢复包来帮助恢复其中一部分密钥因子,进而结合另外一部分密钥,来共同恢复数据。具体地,当需要对待备份的数据(以下实施例中也称为第一数据)进行备份时,首先生成多个密钥因子(seed),利用这多个密钥因子生成第二密钥,然后采用该第二密钥来加密第一数据,得到第二密文,存储第二密文以实现对第一数据的备份。另外,对于这多个密钥因子,将其中一部分加密并放到密文包中,存储到服务器侧,另一部分则可以不采用上述方式来存储。当需要恢复第一数据时,首先可以利用各个密文包各自对应的恢复包来分别恢复加密存储在服务器侧的一个或多个密钥因子,然后根据这一个或多个密钥因子,以及另外的一个或多个密钥因子,来生成第二密钥。终端再采用该第二密钥来解密第二密文,以恢复第一数据。
采用这样的方式,一方面可以提高密钥因子在被存储时的安全性,从而提高第一数据的安全性;另一方面可以提高密钥因子在被恢复时的安全性和灵活性,降低密钥因子以及第二密钥无法恢复的风险。通过两方面的共同作用,可以降低第一数据无法恢复的风险,并进一步、更全面地提高第一数据的安全性。
为便于理解,以下将首先将介绍数据备份和恢复方法所应用的一个示例性的系统,然后分别介绍数据备份的过程,以及数据恢复的过程。在介绍数据备份的过程时将描述密钥因子备份的过程,在介绍数据恢复的过程时将描述密钥因子恢复的过程。
图1是本申请实施例提供的一个示例性的系统架构示意图。本申请提供的数据备份和恢复方法可以应用在该系统中。
该系统中的交互端可以包括终端侧的第一终端、第二终端和第三终端,以及服务器侧的服务器。其中,第一终端、第二终端和第三终端分别与服务器通信连接,其可以与服务器直接通信连接,也可以通过其他设备或模块实现间接的通信连接,本申请对此不作限定。
第一终端为需要对第一数据进行备份以及恢复的用户所使用的终端设备。第一终端上可以安装一个客户端CS(client system)来实现本申请实施例中第一终端所执行的步骤。
第二终端为签名者所使用的终端设备,第二终端上可以安装一个客户端RCS(restore package client system)来实现本申请实施例中第二终端所执行的步骤。
第三终端为协助者所使用的终端设备,第三终端可以用于接收服务器侧发送的恢复码。
在有些情况下,上述系统中还可以包括处于终端侧的审批者终端。审批者终端可以与服务器侧直接或间接通信连接。审批者终端是审批者所使用的终端设备,审批者终端上可以安装一个客户端DCS(decision client system)来实现本申请实施例中审批者终端所执行的步骤。后续将对此作进一步说明。
本申请实施例中的终端设备(如前述的第一终端、第二终端、第三终端、审批者终端等)可以包括但不限于诸如手机、平板电脑、个人计算机(Personal Computer,PC)、可穿戴设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、个人数字助理(Personal Digital Assistant,PDA)等终端设备,本申请对于终端设备的具体产品形态/类型不作限定。
需要说明的是,第一终端的用户、签名者、协助者可以是个人用户,也可以是企业用户,本申请对此不作限定。这里的用户可以是人,也可以不是人,例如可以是无人值守的自动化程序,本申请对此不作限定。
服务器可以用于实现服务器侧所执行的部分或者全部步骤。本申请实施例中的服务器可以是独立的物理服务器,可以是多个物理服务器构成的服务器集群,也可以是云服务器或者云计算服务中心,还可以是物理服务器和云服务器的结合。本申请对于服务器的具体产品形态不作限定。
图2是本申请实施例提供的另一个示例性的系统架构示意图。该系统与图1所示的系统类似,主要的区别在于服务器侧包括了数据存储系统和加密机,由数据存储系统和加密机来实现服务器侧所执行的部分或全部步骤。
第一终端、第二终端、第三终端,三者与服务器侧之间的关系等,可以参考前述相关说明,此处不再赘述。
该系统中的数据存储系统DSS(data storage system)与终端侧通讯连接,可以用于存储数据,例如备份的数据(例如第二密文)、密文包(例如第一密文包)等。
加密机与数据存储系统DSS(data storage system)通信连接,可以获取存储在数据存储系统中的数据,例如加密后的第一数据(即第二密文)、部分或全部加密后的密钥因子、恢复包等。
加密机还与终端侧通讯连接。其与终端侧可以直接通讯连接,也可以通过其他设备实现间接的通讯连接,本申请对此不作限定。示例性地,加密机还可以执行验证恢复包的签名、解密密文包等步骤。后文将对此作进一步说明。
应理解,加密机、数据存储系统DSS(data storage system)与终端侧的不同终端设备的具体通讯连接方式可以相同,也可以不同,本申请对此也不作限定。
图3是本申请实施例中一示例性的数据备份和数据恢复方法的流程图。图4是本申请实施例中一示例性的密钥因子备份和恢复方法的流程图。该方法中的步骤可以由图1或图2所示的各个交互端来对应执行。
本申请实施例中的数据备份方法可以包括以下S210至S260的步骤。
S210:第一终端根据P个密钥因子,生成第二密钥。
其中,P≥1,为大于或等于1的整数。可选地,第一终端可以采用多个密钥因子来生成第二密钥,即P可以取大于1的正整数。当生成第二密钥的密钥因子有多个时,可以将多个密钥因子的密文存放在不同的地方,例如一部分存放在服务器侧,一部分存放在第一终端上,从而可以进一步提高被备份的数据的安全性。
这P个密钥因子可以由第一终端来生成,也可以由服务器侧来生成,还可以部分由第一终端生成,部分由服务器侧生成,本申请对此不作限定。当部分或全部密钥因子由服务器侧生成时,这些密钥因子可以在被服务器侧与第一终端之间的传输密钥加密后,被传输给第一终端。
在一种实现方式中,第一终端/服务器侧可以针对用户需要备份的数据来生成多个密钥因子。对于需要备份的不同数据,第一终端/服务器侧可以分别为其生成其各自对应的密钥因子,以用于生成其各自对应密钥。这样,在备份的时候,针对不同的数据可以采用不同的密钥来进行加密。不同的数据所对应的密钥因子的数量可以相同,也可以不同,本申请对此不作限定。对于需要备份的不同数据,第一终端/服务器侧也可以采用相同的密钥因子和相同的密钥计算算法。这样,在备份时,针对不同的数据就可以采用同样的密钥来进行加密。
第一终端可以按照一定的算法来组装这P个密钥因子,以生成第二密钥。基于密钥因子来生成第二密钥的算法可以采用现有的算法,本申请实施例对于具体的算法不作限定。所生成的第二密钥可以是对称密钥,也可以是非对称密钥。
S220:第一终端利用第二密钥加密待备份的第一数据,得到第二密文。
加密第一数据的加密算法可以采用现有的加密算法。示例性地,当第二密钥采用对称密钥时,加密算法可以采用AES等算法。当第二密钥采用非对称密钥时,加密算法可以采用SM2、RSA等算法。
S230:第一终端基于Q个密钥因子生成R个密文包。
其中,P>Q≥R≥1,上述的Q个密钥因子∈P个密钥因子。每个密文包可以包括一个或多个密钥因子的密文。
对于P个密钥因子中的Q个,可以采用服务器侧的公钥来加密,存储到服务器侧。示例性地,当服务器侧存在数据存储系统DSS时,可以将R个密文包与第二密文关联保存在DSS中,其中,R个密文包涵盖了Q个被加密的密钥因子。
服务器侧的密钥,指的是服务器侧所持有的密钥。当该密钥为一对公私钥时,服务器侧的私钥仅存储在服务器侧,例如存储在服务器侧的加密机中,服务器侧的公钥则可以被分发给第一终端等其他设备,以便其他设备可以利用服务器侧的公钥来验证来自服务器侧的数据包的签名,或者解密来自服务器侧的被加密的数据包,又或者加密希望发送给服务器侧的数据包。本申请实施例中就是采用服务器侧的公钥来对密钥因子加密,加密后的密钥因子只有服务器侧才有能力解密。
示例性地,当服务器侧存在加密机时,对应的服务器侧的私钥可以存储在加密机中,通过硬件来保障服务器的私钥的安全。
需要说明的是,当Q≥2时,可以采用一个服务器侧的公钥来分别对这Q个密钥因子加密,也可以采用多个不同的服务器侧的公钥来分别对这Q个密钥因子加密。示例性地,当Q=3时,服务器侧可以仅提供一对公私钥中的公钥Kpu1,第一终端则利用Kpu1来分别对3个密钥因子加密,得到对应的3份密钥因子密文。服务器侧也可以提供三对公私钥中的公钥Kpu1、Kpu2、Kpu3,第一终端则利用Kpu1对第一个密钥因子加密,利用Kpu2对第二个密钥因子加密,利用Kpu3对第三个密钥因子加密。
在一种实现方式中,第一终端可以分别对Q个密钥因子加密,得到对应的Q个密钥因子密文,然后生成Q个密钥因子密文各自对应的Q个密文包,每个密文包包括一个密钥因子的密文,即Q=R。
在另一种实现方式中,第一终端也可以将Q个密钥因子中的几个放在一起加密。也就是说,第一终端可以分别对Q个密钥因子加密,得到R个密钥因子密文。然后将这R个密钥因子密文分别放入R个对应的密文包中,即Q>R。
在又一种实现方式中,第一终端还可以在分别对Q个密钥因子加密之后,将其中几个密钥因子密文放在同一个密文包中。也就是说,第一终端可以分别对Q个密钥因子加密,得到Q个密钥因子密文,然后基于Q个密钥因子密文生成R个密文包,即Q>R。
对于剩下的(P-Q)个密钥因子,第一终端也可以将其加密后保存。可选地,可以采用第一终端的密钥来加密这(P-Q)个密钥因子,然后存储。这里的第一终端的密钥,指的是第一终端所持有的密钥,其可以是对称密钥,也可以是非对称密钥。示例性地,当第一终端的密钥为非对称密钥时,可以采用第一终端的公钥来对这(P-Q)个密钥因子加密。
需要说明的是,第一终端可以持有一个/对或多个/对密钥。第一终端可以采用一个密钥来对这(P-Q)个密钥因子整体加密,也可以采用多个密钥来分别对这(P-Q)个密钥因子分别加密,还可以对其中一部分密钥因子整体加密,对另一部分密钥因子分别加密,本申请对此不作限定。
还需要说明的是,这(P-Q)个密钥因子被加密后的密文包(为便于区分,以下也称之为第二密文包)可以被存放在第一终端本地,也可以被存储在其他终端设备、存储介质中。示例性地,当服务器侧存在数据存储系统DSS时,可以将这(P-Q)个密钥因子对应的第二密文包保存在DSS中。当需要恢复第一数据时,第一终端可以再从DSS上获取这些第二密文包。
在一种实现方式中,部分密钥因子可以存储在服务器侧,部分密钥因子保存在终端侧。在这种情况下,哪怕服务器侧被攻击者攻破了,由于攻击者仅能获取到部分密钥因子,从而难以生成第二密钥,难以解密备份的第一数据,进而进一步提高了第二密钥和被备份的第一数据的安全性。类似地,即便第一终端被攻击者攻破了,由于攻击者仅能获取到部分密钥因子,也难以破解第二密钥。
在另一种实现方式中,当服务器侧存在加密机和DSS系统,并由加密机来执行验证恢复包的签名、解密密文包等步骤时,Q个密钥因子的密文包,以及P-Q个密钥因子可以被存储在DSS中。采用这样的方式,可以通过加密机从硬件上来保障Q个密钥因子的安全。即便攻击者攻破了服务器侧的DSS系统,也无法获取到Q个密钥因子的明文,从而进一步保障了密钥因子存储的安全性。甚至,即便攻击者同时攻破了服务器侧的DSS系统和第一终端,也最多能获取到P-Q个密钥因子的明文,而无法获取到全部密钥因子的明文。
需要说明的是,每个密钥因子可以具有唯一ID,用于唯一标识该密钥因子。该唯一ID可以是第一终端为密钥因子分配的,也可以是服务器侧为密钥因子分配的,本申请对此不作限定。
前述R个密文包中的每个密文包包括对应的密钥因子密文以及签名者信息。
为便于说明,本申请实施例中将以其中某一个密文包(为便于描述,以下也称为第一密文包)为例来作进一步说明。该第一密文包中包含的密钥因子被称为第一密钥因子(可以有一个或多个),第一密钥因子对应的密文称为第一密文(可以有一个或多个)。即,第一密文包可以包括:第一密文和第一签名者的信息。
示例性地,本申请实施例中将用于加密和解密第一密钥因子的这对服务器侧的密钥分别称为第一公钥和第一私钥。第一私钥被存储在服务器侧,例如服务器侧的加密机中;第一公钥则被发送给第一终端。第一终端利用第一公钥加密第一密钥因子,得到第一密文。即,第一密文为利用第一公钥对第一密钥因子加密所得到的密文。
第一签名者的信息用于描述第一签名者。第一签名者具有对第一密钥因子对应的第一恢复包签名的权限。通过第一签名者的信息,可以找到对应的第一签名者。只有该第一密文包中的第一签名者的信息所对应的第一签名者签过名的第一恢复包,才能通过服务器侧的签名验证。示例性地,第一签名者的信息可以是第一签名者的公钥信息。
应理解,这R个密文包中的其他密文包的结构可以与第一密文包类似。对于不同的密文包,其各自对应的签名者/签名者信息可以相同,也可以不同,本申请对此不作限定。
可选地,密钥因子对应的密文包可以具有唯一ID,用于唯一标识该密文包。该密文包的唯一ID可以是第一终端为密文包分配的,也可以是服务器侧为该密文包分配的,本申请对此不作限定。
S240:第一终端向服务器侧发送第二密文以及R个密文包。
第一终端可以将第二密文和R个密文包发送给服务器侧,让服务器侧保存。示例性地,当服务器侧存在数据存储系统DSS时,可以将第二密文和R个密钥因子密文保存在DSS中。第一终端也可以将第二密文和R个密钥因子密文保存到其他终端设备或存储介质中,本申请对此不作限定。
需要说明的是,第一终端可以分别向服务器侧发送R个密文包,也可以一起发送,本申请实施例对此不作限定。第一终端可以将第二密文和对应的R个密文包分别发送给服务器侧,也可以一起发送,本申请实施例对此也不作限定。
S250:第一终端存储P-Q个密钥因子。
第一终端可以将这P-Q个密钥因子加密后存储,也可以直接存储。第一终端可以将这P-Q个密钥因子存储在第一终端本地的存储空间中,也可以存储在其他存储空间中,例如服务器测的DSS系统,或者其他可能的存储空间。第一终端还可以将这P-Q个密钥因子放在一个或多个第二密文包中存储。
本申请实施例中的密钥因子对应的恢复包的签发方法可以由第二终端来执行。应理解,对于不同的密钥因子,其对应的签名者所使用的第二终端可以相同,也可以不同,本申请对此不过限定。
以下以第一密钥因子对应的恢复包,即第一恢复包为例,来说明恢复包签发的方法。该方法可以包括:
S310:第二终端用第二签名者的私钥对第一恢复包签名。
第一恢复包用于限定第一密钥因子的恢复策略。具体地,该第一恢复包可以包括协助者信息。这里的协助者信息用于指示第二签名者指定的协助恢复第一密钥因子的n个协助者的身份。第二签名者可以是前述的第一签名者,也可以是其他签名者。在恢复第一密钥因子时,如果第二签名者为前述的第一签名者,该第二终端签发的第一恢复包可以通过服务器侧的验证;当第二签名者不是第一签名者时,该第二终端签发的第一恢复包无法通过服务器侧的验证。
应理解,第一签名者和第二签名者可以分别使用不同的第二终端,也可以使用同一个第二终端,本申请对此不作限定。
上述第一恢复包中还可以包括门限信息。这里的门限信息用于指示:获取到的协助者反馈的恢复码的数量m≥预设门限值t。
还应理解,对于不同的密文包中的密钥因子密文,其对应的恢复包中限定的协助者数量、协助者身份、恢复策略、门限值t等可以相同,也可以不同,本申请对此不作限定。
S320:第二终端向服务器侧发送签名后的第一恢复包。
需要说明的是,第二终端可以在数据备份阶段签发第一恢复包,也可以在数据恢复阶段,在服务器侧接收到第一终端发起的数据恢复请求之后,响应于服务器侧向第二终端发起的请求来签发第一恢复包。也就是说,第一恢复包可以是在第一终端的用户尚未丢失数据的时候由第二终端签发,也可以是在第一终端的用户已经丢失数据之后由第二终端签发。通过这样的方式,即便原本的用于协助恢复密钥因子的协助者发生改变,具有权限的第一签名者也可以在第二终端重新签发与第一密文包对应的第一恢复包,改变协助者信息,从而使第一终端的用户能够顺利恢复密钥因子,进而恢复备份的第一数据。
还需要说明的是,第二终端可以直接将签名后的第一恢复包发送给服务器侧,也可以通过中间者发送,本申请对此不作限定。例如,第二终端可以将签名后的第一恢复包发送给第一终端,由第一终端转发给服务器侧。
还需要说明的是,第二终端可以将第一恢复包发送给服务器侧的任一个可能的交互端。示例性地,在一种实现方式中,在需要恢复第一数据时第二终端可以将第一恢复包发送给服务器侧的加密机。在另一种实现方式中,第二终端也可以将第一恢复包发送给服务器侧的数据存储系统,以进行持久化保存,在需要恢复第一数据时再由数据存储系统将第一恢复包发送给加密机,以便加密机对第一恢复包进行验证。
恢复包可以具有密钥因子的唯一ID或者密文包的唯一ID,通过这样的方式,可以将恢复包和密文包关联起来,例如,可以将前述第一恢复包和第一密文包关联存储。
本申请实施例中的数据恢复方法可以包括以下S410至S450的步骤。
S410:第一终端向服务器侧发送数据恢复请求。
在一种实现方式中,数据恢复请求用于指示待恢复的数据。示例性地,数据恢复请求中可以携带数据或密文的唯一ID。通过这样的方式,第一终端可以指定本次需要恢复的数据。示例性地,如果本次需要恢复的数据是前述的第一数据,那么数据恢复请求中可以携带第一数据或第二密文的唯一ID。
在另一种实现方式中,数据恢复请求还可以指示数据对应的密钥因子或者密文包。示例性地,如果本次需要恢复的数据是前述的第一数据,那么第一终端可以根据待恢复的第一数据来确定加密该第一备份数据时采用了P个密钥因子,从中确定采用服务器侧的公钥加密的Q个密钥因子是哪几个。然后,第一终端在数据恢复请求中携带这Q个密钥因子各自的ID,或者Q个密钥因子对应的R个密文包的ID,以便服务器侧可以根据密钥因子的ID或者密文包的ID,查找到对应的恢复包。
S420:服务器侧根据接收到的数据恢复请求,查找R个密文包和对应的R个恢复包。
示例性地,服务器侧通过数据恢复请求中携带的第一数据的ID,查找出该第一数据对应的存储在服务器侧的Q个密钥因子的ID或者包含这Q个密钥因子的R个密文包的ID,然后查找出R个密文包和对应的R个恢复包。
可替换地,在一种实现方式中,服务器侧也可以先根据接收到的数据恢复请求,去查找与被请求恢复的数据对应的密文包,例如第一数据对应的R个密文包以及包括P-Q个密钥因子的密文的密文包。对于每一个密文包,服务器侧可以先判断其中的密钥因子的加密类型,例如是采用服务器侧的密钥加密的,还是采用第一终端的密钥加密的。如果是采用服务器侧的密钥加密的,则再去查找该密文包对应的恢复包,以便进行验证以及解密。如果是采用第一终端侧的密钥加密的,则将其发送给第一终端,由第一终端去负责解密。
示例性地,服务器侧存在数据存储系统时,密文包可能已经存储在数据存储系统中,此时,可以通过数据恢复请求中携带的第一数据或第二密文的唯一ID,在数据存储系统中查找到第一数据所对应的第二密文、密文包和恢复包,将其直接或间接地传递给加密机。对于采用服务器侧的的密钥加密的这些密钥因子对应的密文包而言,如果其对应的恢复包不在数据存储系统中,服务器侧还可以向对应的第二终端请求恢复包,然后将恢复包直接或间接地传递给加密机。
S430:服务器侧基于R个密文包和对应的R个恢复包,恢复Q个密钥因子。
对于需要由服务器侧来负责解密的R个密文包,恢复其中的密钥因子的方法都是类似的。为便于说明,以下以第一密钥因子为例,来说明密钥因子的恢复过程,该过程可以包括以下S431至S437的步骤。
S431:服务器侧获取第一密钥因子对应的第一密文包和第一恢复包。
应理解,如前所述,该第一密文包中可能涵盖一个或多个第一密钥因子。例如,该第一密文包中可以仅包括一个第一密文,该第一密文是由一个或多个第一密钥因子被一起加密而形成的。又例如,该第一密文包中可以包括多个第一密文,这些第一密文是由多个第一密钥因子被分别加密而形成的。
S432:服务器侧对第一恢复包进行第四验证。
在一种实现方式中,服务器侧可以通过第一密文包中的第一签名者的信息,来确定第一签名者公钥,然后用第一签名者公钥来验证第一恢复包的签名。通过这样的方式,服务器侧可以确定第一恢复包所指示的密钥因子恢复策略是否确实是由具有权限的第一签名者所签发的。如果不是第一签名者签发的,而是由其他签名者签发的,则无法通过第四验证,相应地也无法再利用该第一恢复包来恢复第一密钥因子,进而无法恢复第一数据。
S433:在通过第四验证的情况下,服务器侧将n个协助者对应的n个第一恢复码,分别发送给所述n个协助者。
这里的n个协助者就是第一密钥因子对应的第一恢复包中所指示的协助者,这些协助者可以由第一签名者来决定,也可以由第一终端的用户决定之后告知第一签名者。
服务器侧可以为n个协助恢复第一密钥因子的协助者分别生成对应的n个第一恢复码。示例性地,每个第一恢复码可以是一个字符串,例如“038147”。一般地,不同协助者对应的第一恢复码应不相同。
然后,服务器侧可以直接或间接地将这n个第一恢复码分别发送给对应的n个协助者。在一种实现方式中,这n个第一恢复码可以分别采用对应的n个协助者的公钥加密。即,协助者1对应的第一恢复码,采用协助者1的公钥加密;协助者2对应的第一恢复码,采用协助者2的公钥加密;以此类推,协助者n对应的第一恢复码,采用协助者n的公钥加密。由于每个协助者各自的私钥都只有该协助者自己持有,因此采用上述实现方式可以确保只有这n个协助者才能采用各自的私钥解密第一恢复码的密文,以得到各自的第一恢复码的明文。通过这样的方式,还能够确保n个恢复码在发送或者转发的过程中不会被其他人获知或者篡改,从而保证第一密钥因子的恢复过程安全性,进而保证第一密钥因子、第二密钥以及第一数据的安全性。
示例性地,在一种实现方式中,服务器侧可以分别采用n个协助者的公钥,对对应的第一恢复码加密。然后服务器侧将加密后的第一恢复码以及对应的n个协助者的信息(例如协助者的ID或者第三终端的ID)打包发送给第一终端,由第一终端分发给这n个协助者的第三终端。
可选地,协助者信息还可以用于指示这n个协助者各自对应的接收方式。示例性地,协助者对应的接收第一恢复码的方式可以是邮件、手机短信等,本申请对于接收方式的具体形式不作限定。采用这样的实现方式,n个第一恢复码就可以通过n个协助者各自对应的接收方式,被分别发送给n个协助者。
对于不同的协助者而言,其对应的接收方式可以相同,也可以不同,本申请对此不作限定。示例性地,协助者1对应的第一恢复码“038147”可以通过邮件的方式被发送给协助者1,协助者2对应的第一恢复码“835641”可以通过手机短信的方式被发送给协助者2。
S434:第一终端收集m个第二恢复码。
协助恢复第一密钥因子的协助者可以通过不同的途径将其接收到的第一恢复码告知第一终端,以便第一终端收集。示例性地,协助者可以通过口头告知的方式将自己接收到的第一恢复码告知第一终端的用户,由第一终端的用户输入到第一终端中。示例性地,协助者也可以通过第三终端直接将接收到的第一恢复码转给第一终端。
第一终端收集到m个恢复码,由于此时第一终端并不一定可以确认其接收到的恢复码一定是服务器侧发送的第一恢复码,为便于区分,此处将第一终端收集到的恢复码称为第二恢复码。
需要说明的是,n≥m≥t,t为预设的恢复第一密钥因子所需的第二恢复码的最低个数。如果第一终端收集到的第二恢复码的数量小于t个,那么即便这些第二恢复码能够通过服务器侧的验证,也不足以恢复第一密钥因子。
S435:第一终端将m个第二恢复码发送给服务器侧。
示例性地,第一终端可以直接将这m个第二恢复码的明文发送给服务器侧。示例性地,第一终端也可以将这m个第二恢复码加密后,将第二恢复码的密文发送给服务器侧,再由服务器侧对第二恢复码的密文解密,得到m个第二恢复码。示例性地,第一终端还可以将分别计算m个第二恢复码对应的第二校验码,然后将m个第二校验码发送给服务器侧。通过加密或者发送第二校验码的方式,有利于进一步提高数据恢复的安全性。
第一终端可以在收集到一部分第二恢复码后就发送给服务器侧,由服务器侧来判断收集到的第二恢复码的个数是否到达t个以上,也可以在收集到最少t个第二恢复码之后,才将这些恢复码发送给服务器侧。
S436:服务器侧在获取到m个第二恢复码之后,对m个第二恢复码进行第一验证。
上述第一验证为利用n个第一恢复码进行的验证。示例性地,服务器侧可以验证m个第二恢复码是否与n个第一恢复码中的m个相同,如果相同,则确定第一验证通过。示例性地,服务器侧可以分别计算n个第一恢复码对应的第一校验码,然后验证接收到的m个第二校验码是否与n个第一校验码中的m个相同,如果相同,则确定第一验证通过。否则,则可以输出“验证失败”的提示信息。
需要说明的是,当采用的校验码的方式来做第一验证时,第一校验码和第一恢复码之间的映射关系,与第二校验码和第二恢复码之间的映射关系相同。也就是说,第一终端利用第二恢复码计算第二校验码的算法,与服务器侧利用第一恢复码计算第一校验码的算法相同。第一终端和服务器侧所使用的算法,可以是双方预先约定的算法,例如哈希算法。
S437:在通过第一验证的情况下,服务器侧利用第一私钥恢复第一密钥因子。
服务器侧可以利用前述的第一私钥解密第一密钥因子对应的密文包中的第一密文,然后将解密后的第一密钥因子发送给第一终端,以恢复第一密钥因子。
可选地,在一种实现方式中,利用第一私钥恢复第一密钥因子的步骤,可以包括:
服务器侧利用第一私钥解密所述第一密文,得到一个或多个第一密钥因子的明文;
服务器侧利用与m个第二恢复码对应的m个第一恢复码,生成会话密钥;
服务器侧利用会话密钥对这一个或多个第一密钥因子的明文加密,得到第三密文;
服务器侧发送第三密文给所述第一终端。
第一终端接收第三密文;利用m个第二恢复码,生成会话密钥;利用该会话密钥解密第三密文,得到这一个或多个第一密钥因子。这样,第一终端就恢复了第一密钥因子。
通过这样的方式,m个第二恢复码不但用于决定第一密钥因子是否可以被恢复,还在可以被恢复的情况下起到生成会话密钥的作用,从而保证第一密钥因子传输的安全性。第一终端在不同时间发起的数据恢复请求,即便针对同一个密文包,每一次恢复时的第二恢复码可能不同,相应地每一次产生的会话密钥都不同,从而进一步提高密钥因子恢复的安全性,进而而提高数据恢复的安全性。
应理解,其他R-1个密文包的恢复方式与此类似,此处不再赘述。通过本申请的实现方式,第一终端就可以恢复Q个密钥因子。
需要说明的是,当服务器侧存在加密机时,上述S431、S432、S433、S436、S437的步骤,可以由加密机来执行。采用这样的方式有助于进一步提升密钥因子/数据恢复的安全性。服务器侧的私钥(例如第一私钥)被存储在加密机中,通过硬件来保证服务器侧的私钥的安全,即便服务器侧被攻击者攻破,甚至加密机被攻击者窃取,攻击者也只能获取到第一密文和第二密文,仍然无法获取到硬件中的服务器侧的私钥等信息,无法得到明文的密钥因子、第二密钥以及第一数据。并且,除了解密第一密文之外,验证第一恢复包的签名过程、生成第一恢复码和验证第二恢复码的过程都在加密机中进行,从而保证了整个密钥因子恢复过程的安全性,有效防止密钥因子泄露,进而防止了第二密钥和第一数据的泄露。该方法尤其适合应用在安全级别较高的场景中,例如金融等行业的场景。
在实际应用中,需要备份的数据可能比较大。一方面,采用非对称密钥来加解密这样的大数据会比较麻烦和耗时,另一方面,如果让加密机采用非对称密钥来解密这样的大数据会非常耗费加密机的资源,应用成本相对较高。为此,本申请实施例提供的实现方式,在备份数据的时候,第一终端可以生成数据量相对较小的密钥因子,采用根据密钥因子生成的第二密钥来对需要备份的大数据进行加密以备份,然后采用前述的方法来备份第二密钥的部分或全部密钥因子。在恢复数据的时候,加密机只要解密数据量相对较小的密钥因子即可,由第一终端来负责解密恢复第一数据数据。采用这样的方式,可以在保证密钥因子和数据在备份存储和恢复过程中具有较高的安全性的同时,节约备份和恢复较大的数据所耗费的时间和加密机资源,降低备份和恢复数据的成本。
S440:第一终端利用第一终端的密钥,恢复P-Q个密钥因子。
对于另外的P-Q个密钥因子,可以采用第一终端的密钥来解密这(P-Q)个密钥因子的密文。当加密时采用的第一终端的密钥是对称密钥时,此处解密所使用的密钥与加密时所使用的密钥相同。当加密时采用的第一终端的密钥是非对称密钥时,此处解密所使用的密钥与加密时所使用的密钥相对应。示例性地,当加密时采用第一终端的公钥来对这(P-Q)个密钥因子加密时,解密时可以采用与该公钥对应的私钥。
S450:第一终端利用P个密钥因子,恢复第一数据。
在第一终端获取到了所有的P个密钥因子之后,可以采用与S210步骤中相同的密钥计算算法来计算第二密钥。然后,第一终端利用第二密钥解密第二密文,得到第一数据的明文,从而将第一数据恢复到了第一终端上。
对于某些被备份的密钥因子而言,协助恢复这些密钥因子的协助者可以由第一终端的用户提前设定好。这些协助者不能被随便改动,否则攻击者就可以改动协助者来恢复数据到攻击者的终端上,导致第一终端用户的数据泄露。同时,一旦部分协助者无法提供协助,可能会导致第一终端的用户无法恢复这些密钥因子,进而导致无法恢复数据,因此也要求这些协助者能够被合法地修改。例如,在企业场景中,对于一些重要的数据,第一终端的用户A在备份的时候,针对某个密文包(例如第一密文包),可以提前设定好一些同事来协助恢复。但是,如果过了一段时间,当用户A需要恢复备份数据时,这些同事中已经有部分同事离职了,不能配合接收恢复码并将恢复码告知用户A,则用户A就无法恢复这些密钥因子,继而无法恢复数据。尤其是,如果第二密钥同时也是用户A用来签名第一密文包的密钥,则用户A在丢失了该第二密钥之后,就完全失去了改动协助者的可能,也就无法再恢复数据。
采用本申请实施例中的方法,一方面在第一密文包中引入第一签名者信息,另一方面引入了第一恢复包,第一恢复包包括协助者信息,并且第一恢复包由第一签名者的私钥签发,即第一签名者具有合法的修改第一恢复包中的信息的权限。这样,在需要恢复密钥因子的时候,在查找到第一密文包之后,在利用自己的私钥解密第一密文之前,服务器侧可以利用第一签名者的信息来验证第一恢复包的签名,即进行第四验证。如果通过了第四验证,服务器侧就认为第一恢复包是由具有权限的第一签名者所签发的,也就是说第一恢复包中的n个协助者是由经过第一终端的用户认可的第一签名者来写入的,而不是由其他不合法的人写入的。此时,服务器侧再向这些协助者发送恢复码,并在收集到了足够的恢复码之后恢复解密密钥因子密文,协助第一终端恢复密钥因子。采用这样的方式,可以保证密钥因子恢复的安全性。并且,由于第一签名者具有签发第一恢复包的权限,无论是在第一终端的用户丢失密钥因子或数据之前还是之后,第一签名者都可以合法修改第一恢复包中的协助者信息,降低了密钥因子或数据无法恢复的风险,提高了密钥因子或数据恢复的灵活性。
对于某些应用场景,例如企业场景而言,采用上述密钥因子或数据恢复方法也有利于企业集中管理数据以及数据相应的操作权限。例如,如果第一终端的用户为普通职员,则可以将签名者设定为普通职员的管理员。通过这样的方式,普通职员在丢失密钥因子或数据并需要恢复的时候,需要管理员签发的恢复包才能够恢复密钥因子或数据,从而便于集中管理数据。如果普通职员原本设定的部分协助者无法再提供协助,管理员就可以修改恢复包中的协助者信息,来指定新的协助者来协助普通职员恢复数据。管理员通过修改协助者信息设定的协助者可以是与普通职员有关联的人,也可以是与普通职员没有关联的人,本申请对此不作限定。
此外,采用本申请实施例中的方法,可以安全、快速、高效地完成数据的备份和恢复,缩减开发周期和成本。
可选地,前述密文包可以经过第一终端的私钥签名。也就是说,在数据备份阶段,第一终端在将密文包发送给服务器侧之前,可以用第一终端的私钥对密文包中的数据签名,形成经过签名的密文包。
需要说明的是,此处用来对密文包签名的第一终端的私钥,与前述的用于加密P-Q个密钥因子时所使用的第一终端的密钥可以不同,也可以部分相同或完全相同,本申请对此不作限定。
此外,还可以将通过第二验证作为服务器侧进行第四验证的前置条件。即前述方法还可以包括:
在所述第一密文包通过第二验证的情况下,服务器侧判断所述第一恢复包是否通过第四验证。其中,第二验证包括利用所述第一终端的公钥验证所述第一密文包的签名。
通过这样的方式,服务器侧通过验证第一密文包的签名来确认第一密文包是否来自第一终端,确认第一密文包中的数据是否被篡改过。如果确实来自第一终端且没有被篡改过,才使用第一密文包中的第一签名者的信息来验证第一恢复包,从而进一步提高数据恢复的安全性。这样可以避免攻击者同时篡改第一密文包中的第一签名者的信息和第一恢复包来恢复数据的问题。
可选地,前述任意一种实现方式中的第一密文包还可以包括第一审批者的信息。本申请实施例中的第一审批者具有决定第一终端是否能够恢复包括第一密文的第一密文包的权限。相应地,前述方法还可以包括:
服务器侧获取与所述第一密文包对应的第一审批包;
在所述第一审批包通过第三验证的情况下,判断所述第一恢复包是否通过第四验证或者前述的第二验证。
本申请实施例中的第一审批包经过第一审批者的私钥签名。第一审批者可以在第一密钥因子对应的第一密文包恢复的阶段,响应于服务器侧的请求来生成对应的第一审批包,也可以在第一密钥因子的备份阶段就提前生成好该第一审批包。
审批包中可以携带密钥因子的唯一ID或者密文包的唯一ID,以便服务器侧查找。示例性地,服务器侧通过密钥因子的唯一ID或者密文包的唯一ID,查找到该密文包所对应的审批包。即,审批包和密文包和可以通过密钥因子的唯一ID或者密文包的唯一ID关联起来。
本申请实施例中的第三验证包括利用审批者的公钥验证审批包的签名,如果验证签名通过,则审批包通过第三验证。示例性地,在验证包括第一密钥因子的第一密文包的签名时,可以采用第一审批者的公钥来验证。
需要说明的是,对于不同的密文包,其对应的审批者可以不同,也可以相同,本申请对此不作限定。
还需要说明的是,通过第二验证可以作为执行第四验证的前置条件,也可以作为执行前述的第二验证的前置条件。
采用该实现方式,在便于集中管理数据的同时,可以进一步简化审批者的操作。例如,在企业场景中,如果第一终端的用户为普通职员,则可以将审批者设定为普通职员的管理员。通过这样的方式,普通职员在丢失密钥因子或数据并需要恢复的时候,需要管理员签发的审批包才能够恢复数据,从而便于集中管理数据。相较于将管理员设为签名者的方案而言,管理员只需要决定普通职员是否被允许恢复密钥因子,可以不关心具体由哪些协助者来协助普通职员恢复密钥因子,可以不执行修改协助者的信息、重新签发恢复包的操作,从而简化管理员的操作。
下述为本申请的产品实施例,可以用于实现本申请方法实施例中的相应步骤。对于本申请产品实施例中未披露的细节,请参照方法实施例。
本申请的另一个实施例中提供一种数据恢复装置,该装置处于服务器侧,可以包括:
第一收发单元,用于接收第一终端发起的数据恢复请求;其中,所述数据恢复请求用于指示待恢复的第一数据;
第一处理单元,用于根据所述数据恢复请求,查找R个密文包和对应的R个恢复包;以及,基于所述R个密文包和所述R个恢复包,恢复所述Q个密钥因子;其中,Q≥R≥1;所述R个密文包涵盖Q个密钥因子,所述Q个密钥因子用于加密所述第一数据。
上述第一收发单元还用于获取第一密文包和对应的第一恢复包;以及,获取所述第一终端收集到的m个第二恢复码。其中,所述第一密文包为所述R个密文包中的任一个,所述第一密文包包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对第一密钥因子加密所得到的密文,所述第一签名者具有对所述第一恢复包签名的权限;所述第一恢复包由所述第一签名者利用所述第一签名者的私钥签发,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复所述第一密钥因子的n个协助者的身份;n≥m≥t,所述t为预设的恢复所述第一密钥因子所需的第二恢复码的最低个数。
上述第一处理单元还用于在所述第一恢复包通过第四验证的情况下,将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者;以及,在所述m个第二恢复码通过第一验证的情况下,利用第一私钥恢复所述第一密钥因子。其中,所述第四验证包括利用所述第一签名者的信息验证所述第一恢复包的签名。所述第一验证为利用所述n个第一恢复码进行的验证;所述第一私钥和所述第一公钥为所述服务器侧的一对密钥。
本申请实施例中的数据恢复装置还可以实现前述实施例中由服务器侧或加密机实现的任一种数据恢复方法中的部分或全部步骤。
本申请实施例还提供另一种数据恢复装置,该装置处于终端侧,该数据恢复装置包括:
第二处理单元,用于利用第二密钥加密第一数据,得到第二密文;存储P-Q个密钥因子;收集m个第二恢复码;以及,在接收到包含第一密钥因子的Q个密钥因子之后,利用所述Q个密钥因子以及所述第一终端上的P-Q个密钥因子解密第二密文,得到所述第一数据。其中,所述第二密钥基于P个密钥因子形成;n≥m≥t,所述t为预设的恢复所述第一密钥因子所需的第二恢复码的最低个数。
第二收发单元,向服务器侧发送R个密文包;向所述服务器侧发送数据恢复请求;向服务器侧发送所述m个第二恢复码;以及,在所述m个第二恢复码在所述服务器侧通过第一验证的情况下,接收由服务器侧利用第一私钥恢复的所述第一密钥因子。其中,R个密文包涵盖了Q个密钥因子,P>Q≥R≥1,所述Q个密钥因子∈所述P个密钥因子;第一密文包为所述R个密文包中的任一个,所述第一密文包中包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对第一密钥因子加密所得到的密文,所述第一签名者具有对第一恢复包签名的权限;所述第一恢复包由所述第一签名者利用所述第一签名者的私钥签发,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复所述第一密钥因子的n个协助者的身份;所述数据恢复请求用于指示待恢复的第一数据。
该数据恢复装置还可以实现前述实施例中由第一终端实现的任一种数据恢复方法中的部分或全部步骤。在实际实现的时候可以体现为终端侧的工具包、动态链接库或者应用程序等。
本申请实施例还提供又一种数据恢复装置,该装置处于终端侧,该数据恢复装置包括:
第三处理单元,用于利用第二签名者的私钥对第一恢复包签名;其中,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复第一密钥因子的n个协助者的身份;与所述第一密钥因子对应的第一密文包包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对所述第一密钥因子加密所得到的密文,所述第一公钥为服务器侧的一对非对称密钥中的公钥;
第三收发单元,用于发送签名后的第一恢复包。
该数据恢复装置还可以实现前述实施例中由第二终端实现的任一种数据恢复方法中的部分或全部步骤。在实际实现的时候可以体现为终端侧的工具包、动态链接库或者应用程序等。需要说明的是,前述两种终端侧的装置,在实际实现时可以被集成在一个工具包、动态链接库或者应用程序中。
本申请实施例中还提供一种服务器,该服务器可以包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令以实现前述任一种实现方式中服务器侧所实现部分或全部步骤。
本申请实施例中还提供一种加密机,该加密机应用于服务器侧。请结合图5,该加密机500可以包括:
存储器501,配置为存储预定的计算机指令;
处理器502,配置为运行所述预定的计算机指令以实现前述任一种实现方式中服务器侧或服务器侧的加密机所实现部分或全部步骤。
本申请实施例中还提供一种终端设备,该设备包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令以前述任一种实现方式中第一终端所实现的部分或全部步骤。
本申请实施例中还提供一种终端设备,该设备包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令以前述任一种实现方式中第二终端所实现的部分或全部步骤。
本申请实施例中还提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行前述任一种实现方式中服务器侧、服务器侧的加密机、第一终端或者第二终端所实现的部分或全部步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的加密机、终端、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或者不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序校验码的介质。
应理解,在本申请的各种实施例中,各步骤的执行顺序应以其功能和内在逻辑确定,各步骤序号的大小并不意味着执行顺序的先后,不对实施例的实施过程构成任何限定。为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
Claims (11)
1.一种数据恢复方法,其特征在于,应用于服务器侧,所述服务器侧包括加密机,该方法包括:
接收第一终端发起的数据恢复请求,所述数据恢复请求用于指示待恢复的第一数据;
根据所述数据恢复请求,查找R个密文包和对应的R个恢复包;其中,Q≥R≥1;所述R个密文包涵盖Q个密钥因子,所述Q个密钥因子用于加密所述第一数据;
基于所述R个密文包和所述R个恢复包,恢复所述Q个密钥因子,以使所述第一终端能够利用所述Q个密钥因子,以及所述第一终端上的P-Q个密钥因子,恢复所述第一数据,P>Q;
其中,基于所述R个密文包和所述R个恢复包,恢复所述Q个密钥因子的步骤,包括:
获取第一密文包和对应的第一恢复包;所述第一密文包为所述R个密文包中的任一个,所述第一密文包包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对第一密钥因子加密所得到的密文,所述第一签名者具有对所述第一恢复包签名的权限;所述第一恢复包由所述第一签名者利用所述第一签名者的私钥签发,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复所述第一密钥因子的n个协助者的身份;
在所述第一恢复包通过第四验证的情况下,将所述n个协助者对应的n个第一恢复码,分别发送给所述n个协助者;所述第四验证包括利用所述第一签名者的信息验证所述第一恢复包的签名;
获取所述第一终端收集到的m个第二恢复码,n≥m≥t,所述t为预设的恢复所述第一密钥因子所需的第二恢复码的最低个数;
所述加密机在所述m个第二恢复码通过第一验证的情况下,利用第一私钥恢复所述第一密钥因子;其中,所述第一验证为利用所述n个第一恢复码进行的验证;所述第一私钥和所述第一公钥为所述服务器侧的一对密钥,所述第一私钥存储在所述加密机中。
2.根据权利要求1所述的方法,其特征在于,所述第一密文包还包括第一审批者的信息,所述第一审批者具有决定所述第一终端是否能够恢复所述第一密钥因子的权限;
该方法还包括:
获取与所述第一密文包对应的第一审批包;所述第一审批包经过所述第一审批者的私钥签名;
在所述第一审批包通过第三验证的情况下,判断所述第一恢复包是否通过第四验证,其中,所述第三验证包括利用所述第一审批者的公钥验证所述第一审批包的签名。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述第一密文包经过第一终端的私钥签名;
该方法还包括:
在所述第一密文包通过第二验证的情况下,判断所述第一恢复包是否通过第四验证,其中,所述第二验证包括利用所述第一终端的公钥验证所述密文包的签名。
4.根据权利要求1-2任一项所述的方法,其特征在于,
获取所述第一终端收集到的m个第二恢复码的步骤,包括:
获取来自所述第一终端的m个第二校验码,所述m个第二校验码分别与所述m个第二恢复码对应;
所述m个第二恢复码通过第一验证的步骤,包括:
在所述m个第二校验码均包含于n个第一校验码中的情况下,通过所述第一验证;其中,所述n个第一校验码分别与所述n个第一恢复码对应。
5.根据权利要求1-2任一项所述的方法,其特征在于,利用所述第一私钥恢复所述第一密钥因子,包括:
利用所述第一私钥解密所述第一密文,得到所述第一密钥因子;
利用与所述m个第二恢复码对应的m个第一恢复码生成会话密钥;
利用所述会话密钥对所述第一密钥因子加密,得到第三密文;
发送所述第三密文给所述第一终端,以使所述第一终端恢复所述第一密钥因子。
6.一种数据恢复方法,其特征在于,应用于第一终端,所述方法包括:
利用第二密钥加密第一数据,得到第二密文;其中,所述第二密钥基于P个密钥因子形成;
向服务器侧发送R个密文包;其中,R个密文包涵盖了Q个密钥因子,P>Q≥R≥1,所述Q个密钥因子∈所述P个密钥因子;第一密文包为所述R个密文包中的任一个,所述第一密文包中包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对第一密钥因子加密所得到的密文,所述第一签名者具有对第一恢复包签名的权限;所述第一恢复包由所述第一签名者利用所述第一签名者的私钥签发,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复所述第一密钥因子的n个协助者的身份;
存储P-Q个密钥因子;
向所述服务器侧发送数据恢复请求;其中,所述数据恢复请求用于指示待恢复的第一数据;
收集m个第二恢复码;其中,n≥m≥t,所述t为预设的恢复所述第一密钥因子所需的第二恢复码的最低个数;
向服务器侧发送所述m个第二恢复码;
在所述m个第二恢复码在所述服务器侧通过第一验证的情况下,接收由服务器侧的加密机利用第一私钥恢复的所述第一密钥因子;其中,所述第一私钥存储在所述加密机中;
在接收到包含第一密钥因子的Q个密钥因子之后,利用所述Q个密钥因子以及所述第一终端上的P-Q个密钥因子解密第二密文,得到所述第一数据。
7.一种数据恢复方法,其特征在于,应用于第二终端,所述方法包括:
利用第二签名者的私钥对第一恢复包签名;其中,所述第一恢复包包括协助者信息,所述协助者信息用于指示协助恢复第一密钥因子的n个协助者的身份;与所述第一密钥因子对应的第一密文包包括第一密文和第一签名者的信息,所述第一密文为利用第一公钥对所述第一密钥因子加密所得到的密文,所述第一公钥为服务器侧的一对非对称密钥中的公钥,与所述第一公钥对应的第一私钥存储在服务器侧的加密机中;所述第一恢复包和所述第一密文包用于恢复所述第一密钥因子;
发送签名后的第一恢复包。
8.一种服务器,其特征在于,包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令以实现权利要求1-5任一项所述的方法。
9.一种加密机,其特征在于,应用于服务器侧,
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令以实现权利要求1-5任一项所述的方法。
10.一种终端设备,其特征在于,包括:
存储器,配置为存储预定的计算机指令;
处理器,配置为运行所述预定的计算机指令以实现权利要求6或7所述的方法。
11.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110377925.8A CN113064761B (zh) | 2021-04-08 | 2021-04-08 | 数据恢复方法、服务器、加密机、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110377925.8A CN113064761B (zh) | 2021-04-08 | 2021-04-08 | 数据恢复方法、服务器、加密机、终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064761A CN113064761A (zh) | 2021-07-02 |
CN113064761B true CN113064761B (zh) | 2022-03-04 |
Family
ID=76566400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110377925.8A Active CN113064761B (zh) | 2021-04-08 | 2021-04-08 | 数据恢复方法、服务器、加密机、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064761B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101647006A (zh) * | 2005-10-12 | 2010-02-10 | 数据城堡公司 | 用于数据备份的方法和系统 |
EP2755161A1 (en) * | 2013-01-14 | 2014-07-16 | Accenture Global Services Limited | Secure online distributed data storage services |
CN104468627A (zh) * | 2014-12-30 | 2015-03-25 | 成都三零瑞通移动通信有限公司 | 一种通过服务器进行终端数据备份的数据加密方法及系统 |
CN109284603A (zh) * | 2017-07-20 | 2019-01-29 | 腾讯科技(深圳)有限公司 | 一种配置数据处理方法、装置及存储介质 |
CN109934013A (zh) * | 2019-03-21 | 2019-06-25 | 北京深思数盾科技股份有限公司 | 一种数据保护方法及装置 |
CN112463454A (zh) * | 2020-12-04 | 2021-03-09 | 北京深思数盾科技股份有限公司 | 数据恢复方法、服务器、终端设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3763075A4 (en) * | 2018-06-01 | 2021-09-29 | Hewlett-Packard Development Company, L.P. | KEY PACKAGING FOR KEY ENCLOSURE |
CN109962784B (zh) * | 2019-03-22 | 2021-04-02 | 西安电子科技大学 | 一种基于数字信封多证书的数据加解密及恢复方法 |
-
2021
- 2021-04-08 CN CN202110377925.8A patent/CN113064761B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101647006A (zh) * | 2005-10-12 | 2010-02-10 | 数据城堡公司 | 用于数据备份的方法和系统 |
EP2755161A1 (en) * | 2013-01-14 | 2014-07-16 | Accenture Global Services Limited | Secure online distributed data storage services |
CN104468627A (zh) * | 2014-12-30 | 2015-03-25 | 成都三零瑞通移动通信有限公司 | 一种通过服务器进行终端数据备份的数据加密方法及系统 |
CN109284603A (zh) * | 2017-07-20 | 2019-01-29 | 腾讯科技(深圳)有限公司 | 一种配置数据处理方法、装置及存储介质 |
CN109934013A (zh) * | 2019-03-21 | 2019-06-25 | 北京深思数盾科技股份有限公司 | 一种数据保护方法及装置 |
CN112463454A (zh) * | 2020-12-04 | 2021-03-09 | 北京深思数盾科技股份有限公司 | 数据恢复方法、服务器、终端设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
Ciphertext query algorithm for character data based on DAS model;Zhang Meng-Yi等;《 Proceedings of 2012 2nd International Conference on Computer Science and Network Technology》;20130610;第816-821页 * |
云存储下可追踪的外包解密属性加密方案;杨其等;《计算机工程》;20170228;第43卷(第2期);第176-182页 * |
Also Published As
Publication number | Publication date |
---|---|
CN113064761A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8787566B2 (en) | Strong encryption | |
US5604801A (en) | Public key data communications system under control of a portable security device | |
CN111654367B (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
JP6753403B2 (ja) | 情報処理装置、認証システム、認証方法、並びにコンピュータ・プログラム | |
JP2009103774A (ja) | 秘密分散システム | |
CN111385084A (zh) | 数字资产的密钥管理方法、装置及计算机可读存储介质 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN110557248B (zh) | 基于无证书密码学的签密的密钥更新方法和系统 | |
CN112118245B (zh) | 密钥管理方法、系统和设备 | |
CN112463454B (zh) | 数据恢复方法、服务器、终端设备及存储介质 | |
CN105468940A (zh) | 软件保护方法及装置 | |
CN113489710B (zh) | 一种文件共享方法、装置、设备和存储介质 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN110417547B (zh) | 基于无证书密码学的保密通信的密钥更新方法和系统 | |
JP2019146088A (ja) | 計算機システム、接続装置、及びデータ処理方法 | |
CN112784284B (zh) | 加密处理系统、加密处理方法以及记录介质 | |
JPH11298470A (ja) | 鍵の配布方法およびシステム | |
CN113438210B (zh) | 一种数据传输处理方法、装置和电子设备 | |
Abo-Alian et al. | Auditing-as-a-service for cloud storage | |
CN113726515A (zh) | 一种基于ukey的密钥处理方法、存储介质及电子设备 | |
CN113326518A (zh) | 一种数据处理方法及装置 | |
CN113064761B (zh) | 数据恢复方法、服务器、加密机、终端及介质 | |
CN112003690A (zh) | 密码服务系统、方法及装置 | |
CN118364477A (zh) | 数据处理方法及装置、电子设备、存储介质 | |
CN112804053B (zh) | 数据恢复方法、加密机、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Patentee after: Beijing Shendun Technology Co.,Ltd. Address before: 100193 5th floor 510, No. 5 Building, East Yard, No. 10 Wangdong Road, Northwest Haidian District, Beijing Patentee before: BEIJING SENSESHIELD TECHNOLOGY Co.,Ltd. |