掌桥专利:专业的专利平台
掌桥专利
首页

一种数据存储系统及一种数据存储方法

文献发布时间:2023-06-19 11:35:49


一种数据存储系统及一种数据存储方法

技术领域

本发明涉及数据存储技术领域,特别是涉及一种数据存储系统以及一种数据存储方法。

背景技术

1995年,欧盟发布了通用数据保护条例(General Data Protection Regulation,GDPR),同时在2018年正式生效。GDPR要求用户数据托管方符合监管要求,保护用户的隐私信息。实际场景中,用户在上传自身数据时,本地用户端应该按照监管规则要求,对上传数据进行审核,确保满足监管规则要求。传统实现监管功能的程序架构,一般需要依赖中心化节点进行实现,而这会引入单点故障问题,同时监管过程对用户不透明,因此如何实现一种去中心化、对用户透明的监管功能是当前需要解决的一个问题。

发明内容

本发明的目的是提供一种数据存储系统,可以实现去中心化、对用户透明的监管功能;本发明的另一目的在于提供一种输出存储方法,可以实现去中心化、对用户透明的监管功能。

为解决上述技术问题,本发明提供一种数据存储系统,包括用户端、区块链和云端;

所述用户端用于:

从待存储数据中提取元数据信息;

将所述元数据信息以及所述用户端的用户公钥发送至所述区块链;

将所述待存储数据以及所述用户公钥发送至所述云端;

所述区块链用于:

调用智能合约检测所述用户公钥以及所述元数据信息是否满足第一要求;所述第一要求包括所述用户公钥存储于所述区块链预先建立的已注册用户清单,以及所述元数据信息符合监管规则;

所述云端用于:

当检测到所述用户公钥以及所述元数据信息满足所述第一要求时,根据所述用户公钥将所述待存储数据进行存储。

可选的,所述用户端具体用于:

根据所述待存储数据的唯一标记符以及所述用户公钥计算标签;

将所述元数据信息以及所述标签发送至所述区块链;

所述区块链还用于:

当检测到所述用户公钥以及所述元数据信息满足所述第一要求时,将所述标签存储于所述区块链预先建立的标签信息清单。

可选的,所述用户端具体用于:

根据所述用户端的用户私钥计算所述待存储数据每个数据块的文件鉴别符集;

将所述待存储数据、所述用户公钥以及所述文件鉴别符集发送至所述云端;

所述云端还用于:

通过所述文件鉴别符集校验每个所述数据块的正确性。

可选的,所述云端具体用于:

当每个所述数据块均正确,且所述标签信息清单存储有所述待存储数据对应的标签时,根据所述用户公钥将所述待存储数据进行存储。

可选的,还包括TPA;

所述云端还用于:

接收校验方发送的用于校验文件完整性的挑战信息;

根据所述挑战信息生成证明信息,并将所述证明信息、所述用户公钥以及所述唯一标记符发送至所述TPA;

所述TPA用于:

调用所述智能合约校验所述的标签信息清单中是否存储有所述用户公钥以及所述唯一标记符;

当所述标签信息清单中存储有所述用户公钥以及所述唯一标记符时,通过所述唯一标记符对应的标签校验所述证明信息是否成立。

可选的,所述TPA还用于:

当所述证明信息成立时,将校验结果存储至所述区块链。

可选的,还包括KGC;

所述KGC用于:

根据所述用户端的用户身份信息以及监管规则,确定用户公钥,并将所述公户公钥发送至所述区块链;

所述区块链用于:

将所述用户公钥存储至所述已注册用户清单。

可选的,所述KGC还用于:

将所述用户公钥发送至所述用户端;

所述用户端还用于:

根据所述用户公钥生成用户私钥。

本发明还提供了一种数据存储方法,应用于用户端,包括:

从待存储数据中提取元数据信息;

将所述元数据信息以及所述用户端的用户公钥发送至区块链,以使所述区块链调用智能合约检测所述用户公钥以及所述元数据信息是否满足第一要求;所述第一要求包括所述用户公钥存储于所述区块链预先建立的已注册用户清单,以及所述元数据信息符合监管规则;

将所述待存储数据以及所述用户公钥发送至云端,以使所述云端当检测到所述用户公钥以及所述元数据信息满足所述第一要求时,根据所述用户公钥将所述待存储数据进行存储。

本发明还提供了一种数据存储方法,应用于云端,包括:

获取待存储数据以及用户端的用户公钥;

当检测到区块链通过智能合约确定所述用户公钥以及元数据信息满足第一要求时,根据所述用户公钥将所述待存储数据进行存储;所述元数据信息为所述用户端从所述待存储数据中提取元数据信息;所述第一要求包括所述用户公钥存储于所述区块链预先建立的已注册用户清单,以及所述元数据信息符合监管规则。

本发明所提供的一种数据存储系统,包括用户端、区块链和云端;用户端用于从待存储数据中提取元数据信息;将元数据信息以及用户端的用户公钥发送至区块链;将待存储数据以及用户公钥发送至云端;区块链用于调用智能合约检测用户公钥以及元数据信息是否满足第一要求;第一要求包括用户公钥存储于区块链预先建立的已注册用户清单,以及元数据信息符合监管规则;云端用于当检测到用户公钥以及元数据信息满足第一要求时,根据用户公钥将待存储数据进行存储。

通过将待存储数据的元数据信息发送至去中心化的区块链进行存储,可以避免单点故障问题;而通过区块链调用智能合约检测元数据信息是否符合监管规则,当元数据信息符合监管规则之后,云端再存储数据,可以实现对用户透明的监管功能。

本发明还提供了一种数据存储方法,同样具有上述有益效果,在此不再进行赘述。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例所提供的一种数据存储系统的结构框图;

图2为本发明实施例所提供的一种数据存储方法的流程图;

图3为本发明实施例所提供的另一种数据存储方法的流程图。

具体实施方式

本发明的核心是提供一种数据存储系统。在现有技术中,传统实现监管功能的程序架构,一般需要依赖中心化节点进行实现,而这会引入单点故障问题,同时监管过程对用户不透明,因此如何实现一种去中心化、对用户透明的监管功能是当前需要解决的一个问题。

而本发明所提供的一种数据存储系统,包括用户端、区块链和云端;用户端用于从待存储数据中提取元数据信息;将元数据信息以及用户端的用户公钥发送至区块链;将待存储数据以及用户公钥发送至云端;区块链用于调用智能合约检测用户公钥以及元数据信息是否满足第一要求;第一要求包括用户公钥存储于区块链预先建立的已注册用户清单,以及元数据信息符合监管规则;云端用于当检测到用户公钥以及元数据信息满足第一要求时,根据用户公钥将待存储数据进行存储。

通过将待存储数据的元数据信息发送至去中心化的区块链进行存储,可以避免单点故障问题;而通过区块链调用智能合约检测元数据信息是否符合监管规则,当元数据信息符合监管规则之后,云端再存储数据,可以实现对用户透明的监管功能。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明实施例所提供的一种数据存储系统的结构框图。

参见图1,在本发明实施例中,数据存储系统括用户端1、区块链2和云端3;所述用户端1用于:从待存储数据中提取元数据信息;将所述元数据信息以及所述用户端1的用户公钥发送至所述区块链2;将所述待存储数据以及所述用户公钥发送至所述云端3;所述区块链2用于:调用智能合约检测所述用户公钥以及所述元数据信息是否满足第一要求;所述第一要求包括所述用户公钥存储于所述区块链2预先建立的已注册用户清单,以及所述元数据信息符合监管规则;所述云端3用于:当检测到所述用户公钥以及所述元数据信息满足所述第一要求时,根据所述用户公钥将所述待存储数据进行存储。

上述用户端1即面向用户所设置的端口,在本发明实施例中当用户通过用户端1想要在云端3存储数据,即待存储数据时,会先从待存储数据中提取元数据信息,该元数据信息通常包括有待存储数据的标识信息,例如唯一标记符等等。有关元数据信息的具体内容可以根据实际情况自行设定,在此不做具体限定。在本发明实施例中,用户端1会将元数据信息和用户端1的用户公钥发送至所述区块链2,并将完整的待存储数据以及用户公钥发送至云端3。

上述区块链2中维护有智能合约,有关智能合约的具体内容可以参考现有技术,在此不再进行赘述。在本发明实施例中,区块链2可以调用智能合约检测用户公钥以及元数据信息是否满足第一要求。上述第一要求需要检测用户端1是否已经提前进行注册,以及元数据信息是否符合监管规则的要求等,有关第一要求的具体内容将在下述发明实施例中做详细介绍,在此不再进行赘述。

在本发明实施例中,云端3通常首先会等区块链2中智能合约判定用户公钥以及元数据信息满足第一要求之后,即当检测到用户公钥以及元数据信息满足所述第一要求时,根据用户公钥将待存储数据进行存储,从而实现文件在云端3的储存。

本发明实施例所提供的一种数据存储系统,包括用户端1、区块链2和云端3;用户端1用于从待存储数据中提取元数据信息;将元数据信息以及用户端1的用户公钥发送至区块链2;将待存储数据以及用户公钥发送至云端3;区块链2用于调用智能合约检测用户公钥以及元数据信息是否满足第一要求;第一要求包括用户公钥存储于区块链2预先建立的已注册用户清单,以及元数据信息符合监管规则;云端3用于当检测到用户公钥以及元数据信息满足第一要求时,根据用户公钥将待存储数据进行存储。

通过将待存储数据的元数据信息发送至去中心化的区块链2进行存储,可以避免单点故障问题;而通过区块链2调用智能合约检测元数据信息是否符合监管规则,当元数据信息符合监管规则之后,云端3再存储数据,可以实现对用户透明的监管功能。

有关本发明所提供的一种数据存储系统的具体内容将在下述发明实施例中做详细介绍。

区别于上述发明实施例,本发明实施例是在上述发明实施例的基础上,进一步的对数据存储系统的内容进行具体限定,其余内容已在上述发明实施例中做详细介绍,在此不再进行赘述。

在本发明实施例中,数据存储系统从建立到使用一共可以分为初始化阶段、用户注册阶段、数据存储阶段、完整性校验阶段、用户撤销、更新监管规则六个阶段。而上述发明实施例主要对数据存储阶段进行介绍。在本发明实施例中,数据存储系统一共可以扩展为:用户端、区块链、云端、KGC(Key Generation Center,密钥管理中心)、TPA(Third-partyauditor),其中密钥管理中心负责和用户协作生成用户的公私钥信息,TPA负责代表用户去校验云端数据完整性的实体。需要说明的是,在本发明实施例中,数据校验过程中所使用的算法具体可以为离散对数,即本发明实施例具体可以是基于离散对数实现的一种数据存储及完整性校验的整个方案,具有较高的执行效率。

在初始化阶段,当建立整个系统时,用户可以选择两个大素数p和q,其需要满足q|p-1。然后选择三个哈希函数

在用户注册阶段,用户端会与KGC进行协商生成用户端的私钥和公钥,即用户私钥和用户公钥。其中,用户私钥只由用户端自己存储,其他部件不会了解到该用户私钥。在本发明实施例中,所述KGC用于:根据所述用户端的用户身份信息以及监管规则,确定用户公钥,并将所述公户公钥发送至所述区块链;所述区块链用于:将所述用户公钥存储至所述已注册用户清单。通常情况下,所述KGC还用于:将所述用户公钥发送至所述用户端;所述用户端还用于:根据所述用户公钥生成用户私钥。

具体的,用户端i的用户身份信息为ID

用户端i收到

如果校验不通过,用户端i会要求KGC重新发送相应的数据。在本发明实施例中,用户端可以计算得到

在本发明实施例中,当区块链收到

在数据存储阶段,用户端、云端以及区块链所执行的流程大体与上述发明实施例中所述流程一致。具体的,在本发明实施例中,用户端可以具体用于:根据所述待存储数据的唯一标记符以及所述用户公钥计算标签;将所述元数据信息以及所述标签发送至所述区块链;此时区块链还可以用于:当检测到所述用户公钥以及所述元数据信息满足所述第一要求时,将所述标签存储于所述区块链预先建立的标签信息清单。进一步的,用户端可以具体用于:根据所述用户端的用户私钥计算所述待存储数据每个数据块的文件鉴别符集;将所述待存储数据、所述用户公钥以及所述文件鉴别符集发送至所述云端;相应的所述云端还具体用于:通过所述文件鉴别符集校验每个所述数据块的正确性。进一步的,云端可以具体用于:当每个数据块均正确,且标签信息清单存储有待存储数据对应的标签时,根据用户公钥将待存储数据进行存储。

在本发明实施例中,当用户端i想要存储文件F,即待存储数据F时,通常会先将存储数据F分为n份数据块,每份数据块标记为m

tag=X

上述区块链调用智能合约ξ检测元数据信息metadata和标签tag的有效性,即检测用户公钥以及所述元数据信息是否满足第一要求,其通常包括ψ

上述云端在收到

在现阶段,用户在将自身符合监管规则要求的数据存储到云端后,需要依赖一种机制确保数据的完整性。当前相关研究人员提出了PDP(provable data possession,用户无需下载云端数据,即可实现对云端数据完整性审计的方案)技术,用户无需下载云端数据,即可实现对云端数据完整性审计。现在大部分PDP方案并没有实现前面所述的分布式用户数据监管功能,因此如何提供一种可以支持数据监管功能以及PDP技术方案的数据存储系统是本领域技术人员急需解决的问题。

而在本发明实施例中,在数据完整性校验阶段,具体可以基于上述各个流程实现PDP技术方案。具体的,在本发明实施例中,所述云端还可以用于:接收校验方发送的用于校验文件完整性的挑战信息;根据所述挑战信息生成证明信息,并将所述证明信息、所述用户公钥以及所述唯一标记符发送至所述TPA;所述TPA用于:调用所述智能合约校验所述的标签信息清单中是否存储有所述用户公钥以及所述唯一标记符;当所述标签信息清单中存储有所述用户公钥以及所述唯一标记符时,通过所述唯一标记符对应的标签校验所述证明信息是否成立。进一步的,在本发明实施例中,TPA还可以用于当所述证明信息成立时,将校验结果存储至所述区块链。

上述TPA(Third-party auditor)即负责代表用户去校验云端数据完整性的实体。而上述校验方即对云端数据进行校验的实体。该校验方可以由用户和云服务器共同信任的第三方承担,也可以由用户信任的云服务器承担,在本发明实施例中不做具体限定。首先,在本发明实施例中校验方通常会随机生成元素集合

上述云端在收到Chal后,首先计算

上述TPA收到云端发送过来的信息后,该TPA可以调用智能合约ξ检测ζ

在用户撤销段,主要用于实现用户的撤销。上述区块链在用户撤销段用于将接收到撤销用户指令时,调用所述智能合约将所述撤销用户指令对应的用户公钥从所述已注册用户清单移动至已撤销用户清单。具体的,在本发明实施例中区块链通过智能合约ξ维护有已注册用户清单ζ

在现阶段,传统的PDP技术在实现用户撤销功能时,需要对待撤销用户所存储的元数据信息进行处理,因此执行撤销功能所耗费的时间与待撤销用户已存储的数据量呈线性关系。而在本发明实施例中,通过维护已注册用户清单ζ

在更新监管规则时,本发明实施例中只会对应修改用户私钥,即当监管规则更新时,可以通过KGC将更新后的监管规则发送至用户端;用户端用于根据更新后的监管规则对用户私钥进行更新。

具体的,数据存储系统中通常还设置有管理人员进行操作的管理中心。而在更新监管规则时,管理中心会计算得到新规则rule'对应的哈希值RN'=H

在本发明实施例中用户端收到上述信息后,会计算得到

本发明实施例所提供的一种数据存储系统,基于离散对数实现了一种数据完整性校验方案,执行效率较高。并且本发明实施例中提出的PDP方案支持实现数据监管功能,中间无需中心化监管节点,而是基于区块链进行实现,能够实现一种去中心化、对用户透明的数据监管流程。

下面对本发明实施例所提供的一种数据存储方法进行介绍,下文描述的一种数据存储方法与上文描述的一种数据存储系统可相互对应参照。

请参考图2,图2为本发明实施例所提供的一种数据存储方法的流程图。

本发明实施例所提供的一种数据存储方法具体应用于用户端,有关用户端的具体内容,以及与用户端相关的数据存储系统的具体内容已在上述发明实施例中做详细介绍,在此不再进行赘述。

参照图2,数据存储方法可以包括:

S101:从待存储数据中提取元数据信息。

S102:将元数据信息以及用户端的用户公钥发送至区块链,以使区块链调用智能合约检测用户公钥以及元数据信息是否满足第一要求。

在本发明实施例中,所述第一要求包括所述用户公钥存储于所述区块链预先建立的已注册用户清单,以及所述元数据信息符合监管规则。

S103:将待存储数据以及用户公钥发送至云端,以使云端当检测到用户公钥以及元数据信息满足第一要求时,根据用户公钥将待存储数据进行存储。

有关用户端在数据存储系统中具体执行的操作已在上述发明实施例中做详细介绍,在此不再进行赘述。本实施例的数据存储方法具体用于实现前述的数据存储系统,因此数据存储方法中的具体实施方式可见前文中的数据存储系统的实施例部分,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

请参考图3,图3为本发明实施例所提供的另一种数据存储方法的流程图。

本发明实施例所提供的一种数据存储方法具体应用于云端,有关云端的具体内容,以及与云端相关的数据存储系统的具体内容已在上述发明实施例中做详细介绍,在此不再进行赘述。

参照图3,数据存储方法可以包括:

S201:获取待存储数据以及用户端的用户公钥。

S202:当检测到区块链通过智能合约确定用户公钥以及元数据信息满足第一要求时,根据用户公钥将待存储数据进行存储。

在本发明实施例中,所述元数据信息为所述用户端从所述待存储数据中提取元数据信息;所述第一要求包括所述用户公钥存储于所述区块链预先建立的已注册用户清单,以及所述元数据信息符合监管规则。

有关云端在数据存储系统中具体执行的操作已在上述发明实施例中做详细介绍,在此不再进行赘述。本实施例的数据存储方法具体用于实现前述的数据存储系统,因此数据存储方法中的具体实施方式可见前文中的数据存储系统的实施例部分,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种数据存储系统以及一种数据存储方法进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

相关技术
  • 一种元数据管理服务器、数据存储系统及数据存储方法
  • 一种元数据管理服务器、数据存储系统及数据存储方法
技术分类

06120112985920