一种数据的存储方法、数据的恢复方法、装置及设备
技术领域
本说明书涉及计算机技术领域,尤其涉及一种数据的存储方法、数据的恢复方法、装置及设备。
背景技术
随着数字化的发展,个人、组织或实体在网络环境中如何定义其身份,以及如何有效地保护其隐私数据,成为人们面对的一个重要问题。通常,在对隐私数据进行传输之前,可以通过密钥对待传输的隐私数据进行加密处理,然后发送给接收方,接收方接收到加密处理后的隐私数据后,可以使用密钥对其进行解密处理,得到隐私数据的内容,由于其他人无法对经过加密处理的隐私数据进行解密,因此无法获取隐私数据的内容,从而保护了用户的隐私数据。但是,如果用户的密钥丢失,则无法对隐私数据进行加密处理,从而导致隐私数据存在泄露风险。为此,需要提供一种更优的密钥管理方案。
发明内容
本说明书实施例的目的是提供一种数据的存储方法、数据的恢复方法、装置及设备,以提供一种更优的密钥管理方案。
为了实现上述技术方案,本说明书实施例是这样实现的:
本说明书实施例提供的一种数据的存储方法,所述方法包括:对待处理的目标数据进行拆分处理,得到所述目标数据对应的多个分片数据,其中,从所述目标数据中拆分出的所述分片数据的数量大于恢复所述目标数据所需要的所述分片数据的数量,所述目标数据为目标用户的数字身份信息对应的密钥。基于每个分片数据生成相应的可验证声明。将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使所述多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储所述多个分片数据。
本说明书实施例提供的一种数据的恢复方法,所述方法包括:分别向预定的多个不同的数据存储方发送目标数据的恢复请求,所述目标数据为目标用户的数字身份信息对应的密钥。接收所述数据存储方返回的所述恢复请求对应的可验证声明,所述可验证声明基于从所述目标数据拆分出的分片数据生成。如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复所述目标数据
本说明书实施例提供的一种数据的存储装置,所述装置包括:数据拆分模块,对待处理的目标数据进行拆分处理,得到所述目标数据对应的多个分片数据,其中,从所述目标数据中拆分出的所述分片数据的数量大于恢复所述目标数据所需要的所述分片数据的数量,所述目标数据为目标用户的数字身份信息对应的密钥。声明生成模块,基于每个分片数据生成相应的可验证声明。声明发送模块,将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使所述多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储所述多个分片数据。
本说明书实施例提供的一种数据的恢复装置,所述装置包括:恢复请求模块,分别向预定的多个不同的数据存储方发送目标数据的恢复请求,所述目标数据为目标用户的数字身份信息对应的密钥。声明接收模块,接收所述数据存储方返回的所述恢复请求对应的可验证声明,所述可验证声明基于从所述目标数据拆分出的分片数据生成。数据恢复模块,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复所述目标数据
本说明书实施例提供的一种数据的存储设备,所述数据的存储设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:对待处理的目标数据进行拆分处理,得到所述目标数据对应的多个分片数据,其中,从所述目标数据中拆分出的所述分片数据的数量大于恢复所述目标数据所需要的所述分片数据的数量,所述目标数据为目标用户的数字身份信息对应的密钥。基于每个分片数据生成相应的可验证声明。将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使所述多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储所述多个分片数据。
本说明书实施例提供的一种数据的恢复设备,所述数据的恢复设备包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器:分别向预定的多个不同的数据存储方发送目标数据的恢复请求,所述目标数据为目标用户的数字身份信息对应的密钥。接收所述数据存储方返回的所述恢复请求对应的可验证声明,所述可验证声明基于从所述目标数据拆分出的分片数据生成。如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复所述目标数据。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书一种数据的存储方法实施例;
图2为本说明书一种数据的恢复方法实施例;
图3为本说明书一种数据的存储与恢复方法实施例;
图4为本说明书一种数据的存储装置实施例;
图5为本说明书一种数据的恢复装置实施例;
图6为本说明书一种数据的存储设备实施例;
图7为本说明书一种数据的恢复设备实施例。
具体实施方式
本说明书实施例提供一种数据的存储方法、数据的恢复方法、装置及设备。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
实施例一
如图1所示,本说明书实施例提供一种资源处理方法,该方法的执行主体可以为终端设备或服务器,该终端设备可以如手机、平板电脑等移动终端设备,还可以如个人计算机等设备,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该服务器可以是某项业务(如进行交易的业务等)的后台服务器,也可以是某应用(如金融类应用等)的后台服务器等。本说明书实施例中以执行主体为终端设备为例进行详细说明,对于执行主体为服务器的情况,可以参见下述相关内容执行,在此不再赘述。该方法具体可以包括以下步骤:
在步骤S102中,对待处理的目标数据进行拆分处理,得到目标数据对应的多个分片数据,其中,从目标数据中拆分出的分片数据的数量大于恢复目标数据所需要的分片数据的数量,目标数据为目标用户的数字身份信息对应的密钥。
其中,目标数据可以为目标用户的数字身份信息对应的密钥,其中的目标用户可以是任意用户,数字身份信息可以是指通过数字化信息将用户可识别地进行刻画的信息,也即为将真实的身份信息浓缩为数字代码的形式表现,以便对用户个人的实时行为信息进行绑定、查询和验证。数字身份信息中不仅可以包含用户的出生信息、个体描述、生物特征等身份编码信息,也涉及多种属性的个人行为信息(如交易信息或娱乐信息等)等。数字身份信息可以通过多种方式展现,如DID(Decentralized Identity,去中心化身份)等。在区块链中每个用户的数字身份信息通常对应有该用户的公钥和私钥,本说明书实施例中的密钥可以是用户的数字身份信息对应的公钥和/或私钥等。
在实施中,随着数字化的发展,个人、组织或实体在网络环境中如何定义其身份,以及如何有效地保护其隐私数据,成为人们面对的一个重要问题。通常,在对隐私数据进行传输之前,可以通过密钥对待传输的隐私数据进行加密处理,然后发送给接收方,接收方接收到加密处理后的隐私数据后,可以使用密钥对其进行解密处理,得到隐私数据的内容,由于其他人无法对经过加密处理的隐私数据进行解密,因此无法获取隐私数据的内容,从而保护了用户的隐私数据。但是,如果用户的密钥丢失,则无法对隐私数据进行加密处理,从而导致隐私数据存在泄露风险。为此,需要提供一种更优的密钥管理方案。
对于密钥的管理,还可以采用数字化信息系统中的非托管密钥管理方案,即可以为加密和/或解密密钥设置恢复密钥(如Restore Key),这样,当用户的密钥丢失时,可以使用该恢复密钥对用户的密钥进行重置,但是,如果用户的恢复密钥也被丢失,则用户的密钥将无法被重置或找回,使得用户无法对隐私数据进行加密处理,从而导致隐私数据存在泄露风险,为了解决上述问题,并可以对非托管密钥管理方案进行补充,本说明书实施例提供一种可选的技术方案,具体可以包括以下内容:
当某用户(即目标用户)获取到自己的数字身份信息后,也可以获取到该用户的密钥。为了避免目标用户的密钥丢失,可以将目标用户的密钥作为待处理的目标数据。考虑到如果将目标数据的完整内容提供给其他人保管,会使得目标数据泄露给其他人,因此,可以将目标数据换分为多个不同的部分,将多个不同的部分分别发送给不同的用户保管,这样,每个用户只能得到目标数据的部分数据,而无法得到完整的目标数据,从而保证目标数据不被泄露,具体地,可以根据实际情况,预先设定数据的拆分机制,可以通过该数据拆分机制对待处理的目标数据进行拆分处理,将目标数据拆分为多个不同的分片数据,从而得到目标数据对应的多个分片数据。
需要说明的是,数据的拆分机制可以根据某算法而设定,且该拆分机制能够实现:从目标数据中拆分出的分片数据的数量大于恢复目标数据所需要的分片数据的数量,其中,恢复目标数据可以是使用不同用户返回的分片数据重新生成目标数据的处理。例如可以基于密钥分享算法设定等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
在步骤S104中,基于每个分片数据生成相应的可验证声明。
其中,可验证声明可以是用于描述个人、组织等实体所具有的某些属性的一种规范性的信息,可验证声明可以实现基于证据的信任,可以通过可验证声明,向其他实体证明当前实体的某些属性的信息是可信的。
在实施中,通过上述步骤S102的处理得到目标数据对应的多个不同的分片数据后,为了确保每个分片数据的准确性,可以为每个分片数据生成一个可验证声明,可以将分片数据的内容写入可验证声明中,或者,可以将分片数据存储于预定的存储区域或存储部件(具体如区块链节点等)中,并可以将分片数据的存储地址写入到可验证声明中。此外,可验证声明中还可以包括签发该可验证声明的目标用户的相关信息,具体如可以用于验证或证明目标用户的用户身份信息等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
需要说明的是,为了确保可验证声明中的信息的安全性,还可以对可验证声明中的某些信息进行加密处理,得到该信息对应的密文,对于可验证声明中剩余的信息可以保持明文。
在步骤S106中,将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储多个分片数据。
在实施中,通过上述步骤S104的处理得到每个分片数据对应的可验证声明后,可以将可验证声明分别颁发给相应的用户,具体地,可以预先设定供目标用户设置的分配分片数据的用户的页面,当目标用户需要设置分配分片数据的用户时,可以通过目标用户的终端设备打开上述页面。目标用户可以根据实际情况,在上述页面中填写可以持有分片数据的用户的相关信息,填写完成后,目标用户的终端设备可以获取设定的用户的相关信息,并可以基于获取的用户的相关信息确定用户的数字身份信息,并可以将确定的用户的数字身份信息进行存储。当通过上述步骤S104的处理得到每个分片数据对应的可验证声明后,可以获取上述存储的数字身份信息,并可以将生成的可验证声明发送给上述多个不同数字身份信息的用户。对于多个不同数字身份信息的用户中的任一个用户来说,当该用户接收到可验证声明后,可以对接收到的可验证声明进行验证,如果验证结果为通过,则可以基于该可验证声明获取相应的分片数据,该用户可以将获取的分片数据进行存储,通过上述方式,多个不同数字身份信息的用户可以分别基于接收的可验证声明获取并存储分片数据,从而使得多个不同的分片数据分别提供给不同的用户进行保存,进而既保证目标数据的完整内容不被泄露给上述任一用户,保证目标数据的完整内容的安全性,又可以防止目标数据丢失。
需要说明的是,如果目标用户预先设定的用户数量大于分片数据的数量,则可以从目标用户预先设定的用户数量中随机选取分片数据的数量的用户,或者,也可以根据目标用户预先设定的用户选取的优先级,从目标用户预先设定的用户数量中,基于优先级从大到小的顺序选取分片数据的数量的用户等。出了可以通过上述方式选取外,还可以通过多种方式选取待分配分片数据的用户,具体可以根据实际情况设定,本说明书实施例对此不做限定。
本说明书实施例提供一种数据的存储方法,对待处理的目标数据进行拆分处理,得到目标数据对应的多个分片数据,其中,从目标数据中拆分出的分片数据的数量大于恢复目标数据所需要的分片数据的数量,目标数据为目标用户的数字身份信息对应的密钥,这样,将目标数据拆分成多个分片数据,后续可以发给多个不同的用户,从而可以保证每个用户不会拥有完整的目标数据,从而保证了目标数据不被泄露,提高了目标数据的安全性。此外,基于每个分片数据生成相应的可验证声明,将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储多个分片数据,这样,通过颁发可验证声明的方式将相应的分片数据颁发给相应的用户,从而即可以保证分片数据的完整性和准确性,还可以进一步保证目标数据的安全性。
实施例二
如图2所示,本说明书实施例提供一种资源处理方法,该方法的执行主体可以为终端设备或服务器,该终端设备可以如手机、平板电脑等移动终端设备,还可以如个人计算机等设备,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该服务器可以是某项业务(如进行交易的业务等)的后台服务器,也可以是某应用(如金融类应用等)的后台服务器等。本说明书实施例中以执行主体为终端设备为例进行详细说明,对于执行主体为服务器的情况,可以参见下述相关内容执行,在此不再赘述。该方法具体可以包括以下步骤:
在步骤S202中,分别向预定的多个不同的数据存储方发送目标数据的恢复请求,目标数据为目标用户的数字身份信息对应的密钥。
在实施中,通过上述实施例一的处理将目标用户的数字身份信息对应的密钥拆分为多个不同的分片数据后,将其分别发送给不同的数据存储方,当目标用户将密钥丢失或将该密钥和恢复密钥均丢失后,目标用户可以通过分片数据来恢复目标数据,为此,目标用户的终端设备可以分别向预定的多个不同的数据存储方发送目标数据的恢复请求。
在步骤S204中,接收数据存储方返回的上述恢复请求对应的可验证声明,该可验证声明基于从目标数据拆分出的分片数据生成。
在实施中,数据存储方接收到目标用户发送的目标数据的恢复请求后,可以获取预先存储的分片数据的可验证声明,并可以将该可验证声明发送给目标用户。
在步骤S206中,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据。
其中,预定数量阈值可以如总数量的80%或90%等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
在实施中,目标用户接收到数据存储方返回的可验证声明后,可以对该可验证声明进行验证,如果该可验证声明验证通过,则可以基于该可验证声明获取相应的分片数据。考虑到在一定时长内,所有的数据存储方可能无法返回可验证声明,或者,某一个或多个数据存储方将接收到的可验证声明或可验证声明对应的分片数据丢失,因此,可以预先设定目标数据的恢复算法,且该恢复算法可以实现通过部分分片数据即可得到完整的目标数据,基于此,如果接收到的可验证声明对应的分片数据的数量不大于预定数量阈值,则可以继续等待数据存储方返回可验证声明,直到接收到的可验证声明对应的分片数据的数量不大于预定数量阈值为止。当接收到的可验证声明对应的分片数据的数量大于预定数量阈值时,基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据,使用上述预先设定的目标数据的恢复算法进行计算,最终可以得到目标数据。
例如,针对目标数据的恢复算法,可以构造如下函数:
其中,(
,
)可以是基于分片数据确定的数据对,
表示目标数据,
、
、
…
分别表示待定参数,其中k小于分片数据的总数。基于上述函数,可以通过得到的分片数据确定相应的数据对,并可以将至少k个数据对代入到上述函数中,得到至少k个方程,求解上述k个方程,可以得到目标数据
,从而可以得到目标数据,即目标用户的数字身份信息对应的密钥。
本说明书实施例提供一种数据的恢复方法,分别向预定的多个不同的数据存储方发送目标数据的恢复请求,目标数据为目标用户的数字身份信息对应的密钥,接收数据存储方返回的该恢复请求对应的可验证声明,可验证声明基于从目标数据拆分出的分片数据生成,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据,这样,通过可验证声明的方式将相应的分片数据返回给目标用户,从而可以保证分片数据的完整性和准确性,还可以保证目标数据的安全性。此外,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据,这样,只需要获取部分分片数据即可得到完整的目标数据,而不需要返回所有的分片数据,从而即使某一个或多个数据存储方丢失相应的分片数据,也可以得到完整的目标数据,提高了目标数据的可恢复率。
实施例三
如图3所示,本说明书实施例提供一种数据的存储与恢复方法,该方法的执行主体可以为终端设备或服务器,该终端设备可以如手机、平板电脑等移动终端设备,还可以如个人计算机等设备,该服务器可以是一个独立的服务器,还可以是由多个服务器构成的服务器集群等。该服务器可以是某项业务(如进行交易的业务等)的后台服务器,也可以是某应用(如金融类应用等)的后台服务器等。本说明书实施例中以执行主体为终端设备为例进行详细说明,对于执行主体为服务器的情况,可以参见下述相关内容执行,在此不再赘述。该方法具体可以包括以下步骤:
在步骤S302中,对待处理的目标数据进行拆分处理,得到目标数据对应的多个分片数据,其中,从目标数据中拆分出的分片数据的数量大于恢复目标数据所需要的分片数据的数量,目标数据为目标用户的数字身份信息对应的密钥。
在步骤S304中,基于每个分片数据生成相应的可验证声明,生成的可验证声明为可验证声明中的内容经过加密处理的可验证声明,该加密处理包括对称加密处理或非对称加密处理。
其中,对称加密处理可以为通过预定的对称加密算法进行加密处理或解密处理,对称加密算法可以如DES(Data Encryption Standard,数据加密标准)算法、IDEA(International Data Encryption Algorithm,国际数据加密算法)、RC6算法和AES(Advanced Encryption Standard,高级加密标准)算法等。非对称加密处理可以为通过预定的非对称加密算法进行加密处理或解密处理,非对称加密算法可以如RSA算法、DSA(Digital Signature Algorithm,数字签名算法)等。
在实施中,基于每个分片数据生成相应的可验证声明的具体处理可以参见上述实施例一中的相关内容,在此不再赘述。通过上述处理生成的可验证声明中可以包括声明字段和相应的字段值,声明字段可以是表示相应的字段值具有的共同特性的信息,如姓名、数据标识和数据来源等,字段值可以是声明字段对应的具体内容,如声明字段为姓名,字段值可以为张三等。
可以预先设定对可验证声明的数据处理规则,基于该数据处理规则可以使用对称加密算法或非对称加密算法,将可验证声明中的指定字段值进行加密处理,并使得其它字段值保持明文,或者,可以将可验证声明中的全部字段值进行加密处理等。
需要说明的是,除了可以采用对称加密算法或非对称加密算法进行加密处理或解密处理外,还可以采用其它加密算法进行加密处理或解密处理,如可以采用哈希算法进行加密处理或解密处理等。
上述实施例一中的步骤S106的具体处理可以多种多样,以下提供一种可选的处理方式,具体可以包括以下步骤S306和步骤S308的处理。
在步骤S306中,获取与目标用户的数字身份信息存在关联关系的多个不同数字身份信息。
其中,关联关系可以如好友关系、相互关注关系等,具体可以根据实际情况设定,本说明书实施例对此不做限定。
在实施中,目标用户可以根据实际情况预先设定与某些用户之间的关联关系,目标用户的终端设备可以基于预先设定的用户,获取相应的数字身份信息。在生成可验证声明后,可以获取与目标用户的数字身份信息存在关联关系的多个不同数字身份信息。
在步骤S308中,将生成的可验证声明发送给与目标用户的数字身份信息存在关联关系的多个不同数字身份信息的用户。
上述步骤S308的具体处理过程可以参见上述实施例一中的相关内容,在此不再赘述。
上述实施例一中的步骤S106的具体处理除了可以通过上述步骤S306和步骤S308的处理实现外,还可以通过多种不同的方式实现,以下再提供两种可选的处理方式,具体可以包括以下方式一和方式二的处理。
方式一:获取与目标用户的数字身份信息之间进行数据交互的次数大于预定阈值的数字身份信息;将生成的可验证声明发送给与获取的数字身份信息的用户。
在实施中,可以预先设定记录时长,如最近1个月或最近1周等。在记录时长内,目标用户的终端设备可以记录目标用户与每个用户之间进行数据交互的次数,例如,终端设备可以记录目标用户与每个用户之间进行聊天时,相互发送和接收的信息的条数,或者,进行语音通话或视频通话的时长等,可以将记录的相互发送和接收的信息的条数,或者,进行语音通话或视频通话的时长确定为数据交互的次数。可以从中选取数据交互的次数大于预定阈值的用户的数字身份信息,可以将生成的可验证声明发送给与获取的数字身份信息的用户。
方式二:获取目标用户的数字身份信息的文件中记录的多个不同的数字身份信息的信息;将生成的可验证声明发送给记录的多个不同的数字身份信息的用户。
在实施中,对于数字身份信息为DID的情况,在实际应用中,目标用户的DID可以包括DID文件(如DID Document),目标用户可以在DID文件中预先设置多个不同的数字身份信息,以作为待接收可验证声明的用户的数字身份信息。在生成可验证声明后,可以获取目标用户的数字身份信息的文件中记录的多个不同的数字身份信息的信息,并可以将生成的可验证声明发送给记录的多个不同的数字身份信息的用户。
上述实施例一中的步骤S106的具体处理除了可以通过上述方式实现外,还可以通过其它方式处理,以下再提供一种可选的处理方式,具体可以包括以下内容:通过预设的应用程序,将生成的可验证声明发送给预定的多个不同数字身份信息的用户。
其中,预设的应用程序可以是预先指定的任意应用程序,如金融类应用程序、即时通讯应用程序等。
在步骤S310中,分别向上述多个不同数字身份信息的用户发送与用户接收到的可验证声明对应的解密信息,以使多个不同数字身份信息的用户基于该解密信息对接收到的可验证声明的内容进行解密处理,以获取相应的分片数据。
在实施中,基于上述步骤S304的处理,由于可验证声明中包括加密处理的信息,数据存储方获取到该可验证声明后也无法得到其中的内容,因此,还可以分别向多个不同数字身份信息的用户发送与用户接收到的可验证声明对应的解密信息,其中,该解密信息可以是与上述加密处理对应的加密信息相匹配。多个不同数字身份信息的用户接收到解密信息后,可以基于该解密信息对接收到的可验证声明的内容进行解密处理,得到可验证声明的完整内容,并可以基于可验证声明获取相应的分片数据,具体可以参见上述相关内容,在此不再赘述。
另外,为了防止发送给用户A的分片数据,被用户A转移给用户B(除用户A外的任意用户)使用,可以预先为分片数据设置相应的使用权限,具体可以包括以下内容:多个不同数字身份信息包括第一数字身份信息,则将发送给第一数字身份信息的可验证声明对应的分片数据与第一数字身份信息进行关联绑定,并根据绑定的分片数据与第一数字身份信息,向区块链中部署相应的智能合约,以对能够使用绑定的分片数据的用户的数字身份信息对应的使用权限进行限定。
在实施中,可以预先将发送给第一数字身份信息的可验证声明对应的分片数据与第一数字身份信息进行关联绑定,并基于此生成相应的智能合约,并可以将生成的智能合约部署于区块链中。这样,当第一数字身份信息的用户需要使用对应的分片数据时,通过智能合约可以检测到第一数字身份信息的用户具备使用权限,此时,第一数字身份信息的用户可以使用对应的分片数据,如果通过智能合约检测到当前使用第一数字身份信息的可验证声明对应的分片数据的用户的数字身份信息并不是第一数字身份信息,则可以拒绝将该分片数据发送给使用的用户或者触发使用的用户的终端设备删除已获取的第一数字身份信息的可验证声明对应的分片数据。
通过上述步骤S302~步骤S310的处理将目标用户的数字身份信息对应的密钥拆分为多个不同的分片数据后,将其分别发送给不同的数据存储方,当目标用户将密钥丢失或将该密钥和恢复密钥均丢失后,目标用户可以通过分片数据来恢复目标数据,具体可以参见下述步骤S312~步骤S316的处理。
在步骤S312中,分别向预定的多个不同的数据存储方发送目标数据的恢复请求。
在步骤S314中,接收数据存储方返回的上述恢复请求对应的可验证声明,该可验证声明基于从目标数据拆分出的分片数据生成。
在步骤S316中,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则对接收到的可验证声明中包含的内容进行解密处理,基于解密后的可验证声明的内容获取相应的分片数据。
本说明书实施例提供一种数据的恢复方法,对待处理的目标数据进行拆分处理,得到目标数据对应的多个分片数据,其中,从目标数据中拆分出的分片数据的数量大于恢复目标数据所需要的分片数据的数量,目标数据为目标用户的数字身份信息对应的密钥,这样,将目标数据拆分成多个分片数据,后续可以发给多个不同的用户,从而可以保证每个用户不会拥有完整的目标数据,从而保证了目标数据不被泄露,提高了目标数据的安全性。此外,基于每个分片数据生成相应的可验证声明,将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储多个分片数据,这样,通过颁发可验证声明的方式将相应的分片数据颁发给相应的用户,从而即可以保证分片数据的完整性和准确性,还可以进一步保证目标数据的安全性。
此外,通过可验证声明的方式将相应的分片数据返回给目标用户,从而可以保证分片数据的完整性和准确性,还可以保证目标数据的安全性。并且,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据,这样,只需要获取部分分片数据即可得到完整的目标数据,而不需要返回所有的分片数据,从而即使某一个或多个数据存储方丢失相应的分片数据,也可以得到完整的目标数据,提高了目标数据的可恢复率。
实施例四
以上为本说明书实施例提供的数据的存储与恢复方法,基于同样的思路,本说明书实施例还提供一种数据的存储装置,如图4所示。
该数据的存储装置包括:数据拆分模块401、声明生成模块402和声明发送模块403,其中:
数据拆分模块401,对待处理的目标数据进行拆分处理,得到所述目标数据对应的多个分片数据,其中,从所述目标数据中拆分出的所述分片数据的数量大于恢复所述目标数据所需要的所述分片数据的数量,所述目标数据为目标用户的数字身份信息对应的密钥;
声明生成模块402,基于每个分片数据生成相应的可验证声明;
声明发送模块403,将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使所述多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储所述多个分片数据。
本说明书实施例中,所述声明发送模块403,包括:
第一数字身份获取单元,获取与所述目标用户的数字身份信息存在关联关系的多个不同数字身份信息;
第一声明发送单元,将生成的可验证声明发送给与目标用户的数字身份信息存在关联关系的多个不同数字身份信息的用户。
本说明书实施例中,所述声明发送模块403,包括:
第二数字身份获取单元,获取与所述目标用户的数字身份信息之间进行数据交互的次数大于预定阈值的数字身份信息;
第二声明发送单元,将生成的可验证声明发送给与获取的数字身份信息的用户。
本说明书实施例中,所述声明发送模块403,包括:
第三数字身份获取单元,获取所述目标用户的数字身份信息的文件中记录的多个不同的数字身份信息的信息;
第三声明发送单元,将生成的可验证声明发送给所述记录的多个不同的数字身份信息的用户。
本说明书实施例中,所述生成的可验证声明为所述可验证声明中的内容经过加密处理的可验证声明,所述加密处理包括对称加密处理或非对称加密处理。
本说明书实施例中,所述装置还包括:
解密信息发送模块,分别向预定的多个不同数字身份信息的用户发送与所述用户接收到的可验证声明对应的解密信息,以使所述用户基于所述解密信息对接收到的可验证声明的内容进行解密处理,以获取相应的分片数据。
本说明书实施例中,所述声明发送模块403,通过预设的应用程序,将生成的可验证声明发送给预定的多个不同数字身份信息的用户。
本说明书实施例中,所述多个不同数字身份信息包括第一数字身份信息,所述装置还包括:
处理模块,将发送给所述第一数字身份信息的可验证声明对应的分片数据与所述第一数字身份信息进行关联绑定,并根据绑定的分片数据与所述第一数字身份信息,向区块链中部署相应的智能合约。
本说明书实施例提供一种数据的存储装置,对待处理的目标数据进行拆分处理,得到目标数据对应的多个分片数据,其中,从目标数据中拆分出的分片数据的数量大于恢复目标数据所需要的分片数据的数量,目标数据为目标用户的数字身份信息对应的密钥,这样,将目标数据拆分成多个分片数据,后续可以发给多个不同的用户,从而可以保证每个用户不会拥有完整的目标数据,从而保证了目标数据不被泄露,提高了目标数据的安全性。此外,基于每个分片数据生成相应的可验证声明,将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储多个分片数据,这样,通过颁发可验证声明的方式将相应的分片数据颁发给相应的用户,从而即可以保证分片数据的完整性和准确性,还可以进一步保证目标数据的安全性。
实施例五
基于同样的思路,本说明书实施例还提供一种数据的恢复装置,如图5所示。
该资源处理装置包括:恢复请求模块501、声明接收模块502和数据恢复模块503,其中:
恢复请求模块501,分别向预定的多个不同的数据存储方发送目标数据的恢复请求,所述目标数据为目标用户的数字身份信息对应的密钥;
声明接收模块502,接收所述数据存储方返回的所述恢复请求对应的可验证声明,所述可验证声明基于从所述目标数据拆分出的分片数据生成;
数据恢复模块503,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复所述目标数据。
本说明书实施例中,所述接收到的可验证声明为所述可验证声明中的内容经过加密处理的可验证声明,所述加密处理包括对称加密处理或非对称加密处理;
所述数据恢复模块503,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则对所述接收到的可验证声明中包含的内容进行解密处理,基于解密后的可验证声明的内容获取相应的分片数据。
本说明书实施例提供一种数据的恢复装置,分别向预定的多个不同的数据存储方发送目标数据的恢复请求,目标数据为目标用户的数字身份信息对应的密钥,接收数据存储方返回的该恢复请求对应的可验证声明,可验证声明基于从目标数据拆分出的分片数据生成,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据,这样,通过可验证声明的方式将相应的分片数据返回给目标用户,从而可以保证分片数据的完整性和准确性,还可以保证目标数据的安全性。此外,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据,这样,只需要获取部分分片数据即可得到完整的目标数据,而不需要返回所有的分片数据,从而即使某一个或多个数据存储方丢失相应的分片数据,也可以得到完整的目标数据,提高了目标数据的可恢复率。
实施例六
以上为本说明书实施例提供的数据的恢复装置,基于同样的思路,本说明书实施例还提供一种数据的存储设备,如图6所示。
所述数据的存储设备可以为上述实施例提供的终端设备或服务器。
数据的存储设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对数据的存储设备中的一系列计算机可执行指令。更进一步地,处理器601可以设置为与存储器602通信,在数据的存储设备上执行存储器602中的一系列计算机可执行指令。数据的存储设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,一个或一个以上键盘606。
具体在本实施例中,数据的存储设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据的存储设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
对待处理的目标数据进行拆分处理,得到所述目标数据对应的多个分片数据,其中,从所述目标数据中拆分出的所述分片数据的数量大于恢复所述目标数据所需要的所述分片数据的数量,所述目标数据为目标用户的数字身份信息对应的密钥;
基于每个分片数据生成相应的可验证声明;
将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使所述多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储所述多个分片数据。
本说明书实施例中,所述将生成的可验证声明发送给多个不同数字身份信息的用户,包括:
获取与所述目标用户的数字身份信息存在关联关系的多个不同数字身份信息;
将生成的可验证声明发送给与目标用户的数字身份信息存在关联关系的多个不同数字身份信息的用户。
本说明书实施例中,所述将生成的可验证声明发送给多个不同数字身份信息的用户,包括:
获取与所述目标用户的数字身份信息之间进行数据交互的次数大于预定阈值的数字身份信息;
将生成的可验证声明发送给与获取的数字身份信息的用户。
本说明书实施例中,所述将生成的可验证声明发送给多个不同数字身份信息的用户,包括:
获取所述目标用户的数字身份信息的文件中记录的多个不同的数字身份信息的信息;
将生成的可验证声明发送给所述记录的多个不同的数字身份信息的用户。
本说明书实施例中,所述生成的可验证声明为所述可验证声明中的内容经过加密处理的可验证声明,所述加密处理包括对称加密处理或非对称加密处理。
本说明书实施例中,还包括:
分别向预定的多个不同数字身份信息的用户发送与所述用户接收到的可验证声明对应的解密信息,以使所述用户基于所述解密信息对接收到的可验证声明的内容进行解密处理,以获取相应的分片数据。
本说明书实施例中,所述将生成的可验证声明发送给预定的多个不同数字身份信息的用户,包括:
通过预设的应用程序,将生成的可验证声明发送给预定的多个不同数字身份信息的用户。
本说明书实施例中,所述多个不同数字身份信息包括第一数字身份信息,所述方法还包括:
将发送给所述第一数字身份信息的可验证声明对应的分片数据与所述第一数字身份信息进行关联绑定,并根据绑定的分片数据与所述第一数字身份信息,向区块链中部署相应的智能合约。
本说明书实施例提供一种数据的存储设备,对待处理的目标数据进行拆分处理,得到目标数据对应的多个分片数据,其中,从目标数据中拆分出的分片数据的数量大于恢复目标数据所需要的分片数据的数量,目标数据为目标用户的数字身份信息对应的密钥,这样,将目标数据拆分成多个分片数据,后续可以发给多个不同的用户,从而可以保证每个用户不会拥有完整的目标数据,从而保证了目标数据不被泄露,提高了目标数据的安全性。此外,基于每个分片数据生成相应的可验证声明,将生成的可验证声明发送给预定的多个不同数字身份信息的用户,以使多个不同数字身份信息的用户分别基于接收的可验证声明获取并存储多个分片数据,这样,通过颁发可验证声明的方式将相应的分片数据颁发给相应的用户,从而即可以保证分片数据的完整性和准确性,还可以进一步保证目标数据的安全性。
实施例七
以上为本说明书实施例提供的数据的存储装置,基于同样的思路,本说明书实施例还提供一种数据的恢复设备,如图7所示。
所述数据的恢复设备可以为上述实施例提供的终端设备或服务器。
数据的恢复设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器701和存储器702,存储器702中可以存储有一个或一个以上存储应用程序或数据。其中,存储器702可以是短暂存储或持久存储。存储在存储器702的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对数据的恢复设备中的一系列计算机可执行指令。更进一步地,处理器701可以设置为与存储器702通信,在数据的恢复设备上执行存储器702中的一系列计算机可执行指令。数据的恢复设备还可以包括一个或一个以上电源703,一个或一个以上有线或无线网络接口704,一个或一个以上输入输出接口705,一个或一个以上键盘706。
具体在本实施例中,数据的恢复设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对数据的恢复设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:
分别向预定的多个不同的数据存储方发送目标数据的恢复请求,所述目标数据为目标用户的数字身份信息对应的密钥;
接收所述数据存储方返回的所述恢复请求对应的可验证声明,所述可验证声明基于从所述目标数据拆分出的分片数据生成;
如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复所述目标数据。
本说明书实施例中,所述接收到的可验证声明为所述可验证声明中的内容经过加密处理的可验证声明,所述加密处理包括对称加密处理或非对称加密处理;
所述如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,包括:
如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则对所述接收到的可验证声明中包含的内容进行解密处理,基于解密后的可验证声明的内容获取相应的分片数据。
本说明书实施例提供一种资源处理设备,分别向预定的多个不同的数据存储方发送目标数据的恢复请求,目标数据为目标用户的数字身份信息对应的密钥,接收数据存储方返回的该恢复请求对应的可验证声明,可验证声明基于从目标数据拆分出的分片数据生成,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据,这样,通过可验证声明的方式将相应的分片数据返回给目标用户,从而可以保证分片数据的完整性和准确性,还可以保证目标数据的安全性。此外,如果接收到的可验证声明对应的分片数据的数量大于预定数量阈值,则基于接收到的可验证声明获取相应的分片数据,并基于获取的分片数据恢复目标数据,这样,只需要获取部分分片数据即可得到完整的目标数据,而不需要返回所有的分片数据,从而即使某一个或多个数据存储方丢失相应的分片数据,也可以得到完整的目标数据,提高了目标数据的可恢复率。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书一个或多个实施例时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书的实施例是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程资源处理设备的处理器以产生一个机器,使得通过计算机或其他可编程资源处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程资源处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程资源处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。