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

一种数据动态更新方法、装置及设备

文献发布时间:2024-04-18 20:02:18


一种数据动态更新方法、装置及设备

技术领域

本发明涉及信息安全技术领域,特别是一种数据动态更新方法、装置及设备。

背景技术

大数据、人工智能、数据挖掘等前沿技术在准确全面分析数据的同时也带来了海量数据存储使用的挑战,用户的本地存储已经不能满足大数据的要求,为了便捷存储和高效计算海量数据,云存储技术应运而生。

云存储技术具备易扩展、高效计算、资源可控等优势,能够针对大数据所需要的数据存储需求,提供方便低廉的数据存储服务。由于数据通过云存储技术保存在远端的服务器上,数据资产的安全性就成为了重要的关注点。目前,数据泄漏事件层出不穷,造成了恶劣的影响,保障数据使用过程的安全可信具有重要的实际意义。

此外,云存储服务器上数据的动态更新也是一个值得探讨的问题,对于用户想要将存储在远程云服务器上的数据块进行更新,如何在确保不下载全部数据的情况下完成高效的数据块动态更新也是一个值得讨论的问题。

发明内容

本发明要解决的技术问题是提供一种数据动态更新方法、装置及设备,解决云存储服务器上的数据高效动态更新问题。

为解决上述技术问题,本发明的技术方案如下:

一种数据动态更新方法,包括:

获取用户发送的第一密文数据块;

根据所述第一密文数据块的标识信息,对该标识信息对应的第二密文数据块进行更新;所述第一密文数据块和第二密文数据块存储于目标文件的多分支路径树的目标节点,所述多分支路径树的每一个节点标识有访问值信息。

可选的,获取用户发送的第一密文数据块,包括:

获取用户发送的待更新的第二密文数据块的标识信息;

根据所述待更新的第二密文数据块的标识信息,得到存储的第二密文数据块;

将所述第二密文数据块发送至用户,得到用户返回的第一密文数据块。

可选的,根据所述待更新的第二密文数据块的标识信息,得到存储的第二密文数据块,包括:

将所述多分支路径树根据每一个节点的访问值大小,按照访问值从高到低的顺序重新排序,得到更新后的多分支路径树;

根据所述第二密文数据块的标识信息,按照更新后的多分支路径树的存储路径,对所述更新后的多分支路径树的存储路径依次查找,得到存储的第二密文数据块。

可选的,将所述第二密文数据块发送至用户,得到用户返回的第一密文数据块,包括:

用户对所述第二密文数据块进行更新,并对更新后的数据块进行加密,得到第一密文数据块;

确定所述第一密文数据块的同态签名;

将所述第一密文数据块、同态签名和标识信息发送至云存储服务器,得到用户返回的第一密文数据块。

可选的,对该标识信息对应的第二密文数据块进行相应操作,将第一密文数据块进行存储和/或删除所述第二密文数据块,包括:

将该标识信息对应的第二密文数据块更新为第一密文数据块、或者删除所述第二密文数据块、或者在所述第二密文数据块后插入第一密文数据块。

可选的,数据动态更新方法还包括:

每对数据块进行动态更新一次,对该数据块对应的节点,以及该节点到根节点的路径上的其他节点的访问值进行更新。

可选的,数据动态更新方法还包括:

将新存储的第一密文数据块的相关位置信息发送至用户;

在确认相关位置信息正确后,更新所述多分支路径树的根节点哈希值和签名信息,并更新区块链交易区块。

可选的,所述相关位置信息包括:

所述第一密文数据块的密文对应的哈希值在多分支路径树存储的目标节点的位置信息,所述目标节点到多分支路径树的根节点的路径中,所有兄弟节点的哈希值信息。

本发明还提供一种数据动态更新装置,包括:

获取模块,用于获取用户发送的第一密文数据块;

更新模块,用于根据所述第一密文数据块的标识信息,对该标识信息对应的第二密文数据块进行更新;所述第一密文数据块和第二密文数据块存储于目标文件的多分支路径树的目标节点,所述多分支路径树的每一个节点标识有访问值信息。

本发明还提供一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上述的方法。

本发明的上述方案至少包括以下有益效果:

本发明的上述方案,通过获取用户发送的第一密文数据块;根据所述第一密文数据块的标识信息,对该标识信息对应的第二密文数据块进行更新;所述第一密文数据块和第二密文数据块存储于目标文件的多分支路径树的目标节点,所述多分支路径树的每一个节点标识有访问值信息。可以实现高效的远程数据动态更新。

附图说明

图1是本发明实施例的数据动态更新方法的流程示意图;

图2是本发明实施例的数据动态更新方法的系统模型示意图;

图3是本发明实施例的数据动态更新方法的多分支路径树初始化示意图;

图4是本发明实施例的数据动态更新方法的多分支路径树数据修改示意图;

图5是本发明实施例的数据动态更新方法的多分支路径树数据插入示意图;

图6是本发明实施例的数据动态更新方法的多分支路径树数据删除示意图;

图7是本发明实施例的数据动态更新装置的结构图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

如图1所示,本发明的实施例提出一种数据动态更新方法,包括:

步骤11,获取用户发送的第一密文数据块;

步骤12,根据所述第一密文数据块的标识信息,对该标识信息对应的第二密文数据块进行更新;所述第一密文数据块和第二密文数据块存储于目标文件的多分支路径树的目标节点,所述多分支路径树的每一个节点标识有访问值信息。

如图2所示,本申请构建一个由用户、云存储服务器CSP、区块链和密钥管理机构PKG组成的系统模型,解决该场景下的用户上传到云存储服务器中的数据高效动态更新问题。具体的,如图3所示,本实施例中,应用于云存储服务器,提出一种多分支路径树的数据存储结构,将用户发送的待存储的文件拆分成多个加密数据块,将多个加密数据块存储于多分支路径树的叶子节点,同时标记每一个叶子节点存储的加密数据块的哈希值。多个叶子节点向上汇集到上一层的中间节点,所述中间节点标记根据该中间节点下的叶子节点的哈希值计算的哈希值。中间节点继续向上汇集,直至根节点,所述根节点的哈希值根据该根节点下的中间节点的哈希值计算。同时所述多分支路径树的每一个节点标记有访问值,在对某一个节点存储的数据块进行更新或者删除后,该节点的访问值以及该节点到根节点的路径上的其他节点的访问值都进行相应更新,以表示该路径上的节点的访问次数。在下一次更新某一数据块时,根据上一次访问更新的访问值数据,对多分支路径树按照访问值由高到低的顺序重新排序。然后查找重新排序后的多分支路径树,得到需要进行相应操作的目标数据块。

在用户数据动态更新过程中,获取对第二密文数据块更新后的第一密文数据块,对预先存储的第二密文数据块进行相应的更新操作,删除第二密文数据块,或者将第二密文数据块更新为第一密文数据块,又或在第二密文数据块后插入第一密文数据块。同时根据更新过程中的相应数据记录区块链交易区块。

本发明的上述系统模型,其中PKG是一个可信权威机构管理,负责为整个系统设置公开参数,并为该系统中的用户生成密钥对。

用户(User)是一个有大量数据可以外包的实体,但是由于自身通信存储计算资源优先,因此需要将数据存储在云服务器上,可以随时查看区块更新,维护区块。

云存储服务器(CSP)为用户提供大量的存储资源和更高效的计算能力,对接收到的用户请求进行响应。同时它也与用户一样可以随时查看区块更新,维护区块。

区块链由于其去中心化,可追溯性和不可篡改等优势,使整个系统实现安全的完整性审计,公开验证等机制。

本发明一可选的实施例中,步骤11,获取用户发送的第一密文数据块,包括:

步骤111,获取用户发送的待更新的第二密文数据块的标识信息;

步骤112,根据所述待更新的第二密文数据块的标识信息,得到存储的第二密文数据块;

步骤113,将所述第二密文数据块发送至用户,得到用户返回的第一密文数据块。

本实施例中,用户根据具体需求,确定待修改的第二密文数据块。在云存储服务器的多分支路径树上找到所述第二密文数据块。根据具体更新需求,对第二密文数据块解密后修改,并加密,得到第一密文数据块。将所述第一密文数据块发送至云存储服务器进行更新。

本发明一可选的实施例中,步骤112,根据所述待更新的第二密文数据块的标识信息,得到存储的第二密文数据块,包括:

步骤1121,将所述多分支路径树根据每一个节点的访问值大小,按照访问值从高到低的顺序重新排序,得到更新后的多分支路径树;

步骤1122,根据所述第二密文数据块的标识信息,按照更新后的多分支路径树的存储路径,对所述更新后的多分支路径树的存储路径依次查找,得到存储的第二密文数据块。

本实施例中,引入多分支路径树,并且使用局部优先策略,通过加入interview字段(访问值),该字段代表用户对该分支路径数据块的访问频次,对用户存储在云服务器上的数据通过interview字段进行由高到低排序,从而提高查找效率,优化动态更新方案。在数据更新等操作过程中,先依据更新后的访问值大小,对多分支路径树的每一个路径重新排序,将访问次数多的存储路径排在前面。然后按照存储路径的排列顺序依次查找每一个路径,得到数据块。

本发明一可选的实施例中,步骤113,将所述第二密文数据块发送至用户,得到用户返回的第一密文数据块,包括:

步骤1131,用户对所述第二密文数据块进行更新,并对更新后的数据块进行加密,得到第一密文数据块;

步骤1132,确定所述第一密文数据块的同态签名;

步骤1133,将所述第一密文数据块、同态签名和标识信息发送至云存储服务器,得到用户返回的第一密文数据块。

本实施例中,对于更新操作,用户向云存储服务器CSP发送动态更新请求,首先用户根据访问值iv来对该数据块路径进行查找,在找到待更新的数据块后,对待上传的数据块进行加密,计算同态签名,然后将其打包发送给CSP,CSP接收到用户的请求后,将数据块更新,并且将更新节点的位置信息和更新节点到根节点路径的所有关联节点信息打包给用户,用户在确认信息无误后,计算新的根节点的哈希值,并且对其进行签名,最后将整个更新信息记录区块。

本发明一可选的实施例中,对该标识信息对应的第二密文数据块进行更新,包括:

将该标识信息对应的第二密文数据块更新为第一密文数据块、或者删除所述第二密文数据块、或者在所述第二密文数据块后插入第一密文数据块。

本发明一可选的实施例中,还包括:

每对数据块进行动态更新一次,对该数据块对应的节点,以及该节点到根节点的路径上的其他节点的访问值进行更新。

本实施例中,通过引入区块链实现系统的去中心化,用户与云存储服务商的每次请求和响应全部记录在区块中,方便双方查看,增加可信度,完成去中心化的数据完整性验证。用户在上传文件时,将文件拆分成数据块,并将每个数据块的哈希值存储在多分支路径树中,并在其每个节点都增加参数interview(iv)来记录该节点以下的子节点被访问的频率,如果该节点被访问,则沿着该节点到根节点路径上的所有节点中的参数iv全部加1,以此来记录每条路径的访问频次。当用户想要将存储在云服务器上的数据进行动态更新时,首先通过每条路径记录的iv进行查找,以此来提高更新效率,如果找到待更新的数据块,只需要更新该条路径上的哈希值,不需要下载整棵树即可完成数据的动态更新。

本发明一可选的实施例中,还包括:

将新存储的第一密文数据块的相关位置信息发送至用户;

在确认相关位置信息正确后,更新所述多分支路径树的根节点哈希值和签名信息,并更新区块链交易区块。

本发明一可选的实施例中,所述相关位置信息包括:

所述第一密文数据块的密文对应的哈希值在多分支路径树存储的目标节点的位置信息,所述目标节点到多分支路径树的根节点的路径中,所有兄弟节点的哈希值信息。

本发明的上述实施例,当用户需要更新云存储服务器上的部分区块时,一共分为修改、插入、删除操作。在存储时,用户为在多分支路径树上的每个节点中都添加一个字段iv(访问值),iv代表该节点被访问的次数,即如果该节点是叶子节点,则每进行一次更新操作,iv的值加1,如果该节点是非叶子节点,则其子节点每执行一次更新操作,该节点的iv值加1。

CSP将每条路径的iv值进行由高到低顺序排序,用户在执行动态更新时,按照该方式进行查找路径,防止查找许多不常用的文件,提高查找效率。

具体来说,当用户需要对文件F中的数据块b

当用户需要在数据块b

删除操作的具体实现方法与上述修改和插入类似,其对应的示意图如图6所示。

本发明设计的系统模型是通过引入区块链从而实现去中心化的数据完整性验证,并通过引入多分支路径树根据局部优先策略实现高效的远程数据动态更新操作。通过区块链不可篡改等特性,保证每个交易的真实性,从而保证数据的完整性。通过引入多分支路径树,对数据文件的存储量,更新效率有很大的提高。通过使用局部优先策略,使用户进行远程动态更新的效率提高。

需要说明的是,本发明的上述系统模型,除进行数据动态更新,还对CSP上的数据完整性验证提出一种新的方法。具体的,引入系统参数,PKG为用户生成密钥。之后是文件上传的步骤,用户通过PKG生成的密钥生成文件F的签名,将F分割成数据块进行加密,并计算加密数据块的标签,通过加密数据块构建多分支路径树,并在每个节点添加参数interview(iv)代表访问频次,计算其根节点以及根节点的签名,对每个加密数据块,计算同态签名。在执行完一系列操作后,用户将加密文件,文件标签,同态签名发送给CSP,CSP在接收到用户发来的文件后将加密文件信息存储,向用户发送请求,用户在接收到通知后,删除本地副本。

基于“挑战-证明-验证”机制执行远程数据完整性验证。

用户随机选择一个挑战集合,并且将挑战集合和其他辅助信息向CSP发送挑战请求。CSP接收到请求后进行计算挑战集合的信息,并将得到的结果返回给用户,用户接收到响应信息后,对接收的数据进行数据完整性验证,并且将此次的结果记录区块。

本发明的上述数据存储及完整性验证方法对应的具体参数设置如下所示:

1、双线性映射

G和G

2、哈希函数

H是安全的图映射到点的哈希函数:{0,1}

{G,G

3、密钥生成

PKG为用户生成一对RSA密钥对(spk,ssk)用于签名。用户选择一个随机数u∈G,之后选取sk=x∈Z

即:

P=(sk,pk)

根据上述参数设置,用户进行文件上传工作。首先通过PKG生成的私钥ssk生成文件F的签名,即:

Sig

其中ID

随后,用户将文件F切分成n个数据块,即:

F={B

对于第i个数据块b

然后用户计算加密文件的标签,即:

用户通过加密文件F

R=Root(F

用户计算根节点的签名,即:

sig

用户对于每个加密数据块,计算其同态签名,即:

W

其中,W

用户构建完上述参数后,将{Sig

其中,ID

CSP在接收到用户发来的文件后,计算该文件的根哈希值是否与发送过来的根节点哈希值相同,如果成功,则将加密文件进行存储,并且将结果写入区块链,并通知用户,即:

用户在接收到CSP存储成功的响应后,删除本地文件副本。

为了验证加密数据块是否完整的保存在云存储服务器上,用户可以作为审计者与CSP执行完整性验证协议,具体操作如下:

首先,用户选择一个包含c个元素的集合,即:

I={S

通过如下计算后,输出两个随机数集合{r

r=f(S

z=H(S

f(·)是伪随机函数,满足f:{0,1}

CSP接收到用户请求,先验证挑战集合chal是否超出范围,如果合法,CSP计算证明信息:

然后CSP将其记录在区块中,并向用户发送响应,即:

用户接收到CSP的响应后,通过以下公式对数据块的完整性进行验证,并将结果存储在区块,即:

如果上述等式成立,则数据完整,否则,用户存储在云服务器上的数据被损坏。

本发明设计的系统模型是通过引入区块链从而实现去中心化的数据完整性验证,并通过引入多分支路径树根据局部优先策略实现高效的远程数据动态更新操作。通过区块链不可篡改等特性,保证每个交易的真实性,从而保证数据的完整性。通过引入多分支路径树,对数据文件的存储量,更新效率有很大的提高。通过使用局部优先策略,使用户进行远程动态更新的效率提高。

本发明提出了一个基于区块链的审计模型,通过在传统模型的基础上去除第三方审计者引入区块链,实现去中心化的可信操作。使用户与云存储服务商之间进行点对点传输,解决数据存储的公开化,透明化。

其次,针对数据块的动态更新,引入多分支路径树,初始化操作如图3所示。并且使用局部优先策略,通过加入interview字段,该字段代表用户对该分支路径数据块的访问频次,对用户存储在云服务器上的数据通过interview字段进行由高到低排序,从而提高查找效率,优化动态更新方案。

本发明在上述基础上实现了安全的数据完整性验证以及远程数据的动态更新。

如图7所示,本发明还提供一种数据动态更新装置70,包括:

获取模块71,用于获取用户发送的第一密文数据块;

更新模块72,用于用于根据所述第一密文数据块的标识信息,对该标识信息对应的第二密文数据块进行更新;所述第一密文数据块和第二密文数据块存储于目标文件的多分支路径树的目标节点,所述多分支路径树的每一个节点标识有访问值信息。

可选的,获取用户发送的第一密文数据块,包括:

获取用户发送的待更新的第二密文数据块的标识信息;

根据所述待更新的第二密文数据块的标识信息,得到存储的第二密文数据块;

将所述第二密文数据块发送至用户,得到用户返回的第一密文数据块。

可选的,根据所述待更新的第二密文数据块的标识信息,得到存储的第二密文数据块,包括:

将所述多分支路径树根据每一个节点的访问值大小,按照访问值从高到低的顺序重新排序,得到更新后的多分支路径树;

根据所述第二密文数据块的标识信息,按照更新后的多分支路径树的存储路径,对所述更新后的多分支路径树的存储路径依次查找,得到存储的第二密文数据块。

可选的,将所述第二密文数据块发送至用户,得到用户返回的第一密文数据块,包括:

用户对所述第二密文数据块进行更新,并对更新后的数据块进行加密,得到第一密文数据块;

确定所述第一密文数据块的同态签名;

将所述第一密文数据块、同态签名和标识信息发送至云存储服务器,得到用户返回的第一密文数据块。

可选的,对该标识信息对应的第二密文数据块进行相应操作,将第一密文数据块进行存储和/或删除所述第二密文数据块,包括:

将该标识信息对应的第二密文数据块更新为第一密文数据块、或者删除所述第二密文数据块、或者在所述第二密文数据块后插入第一密文数据块。

可选的,数据动态更新方法还包括:

每对数据块进行动态更新一次,对该数据块对应的节点,以及该节点到根节点的路径上的其他节点的访问值进行更新。

可选的,数据动态更新方法还包括:

将新存储的第一密文数据块的相关位置信息发送至用户;

在确认相关位置信息正确后,更新所述多分支路径树的根节点哈希值和签名信息,并更新区块链交易区块。

可选的,所述相关位置信息包括:

所述第一密文数据块的密文对应的哈希值在多分支路径树存储的目标节点的位置信息,所述目标节点到多分支路径树的根节点的路径中,所有兄弟节点的哈希值信息。

需要说明的是,该装置是与上述方法对应的装置,上述方法实施例中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。

本发明的实施例一种计算设备,包括:处理器、存储有计算机程序的存储器,所述计算机程序被处理器运行时,执行如上述的方法。上述方法实施例中的所有实现方式均适用于该实施例中,也能达到相同的技术效果。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

此外,需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行,某些步骤可以并行或彼此独立地执行。对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。

因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。还需要指出的是,在本发明的装置和方法中,显然,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

技术分类

06120116580825