一种云环境下远程数据完整性认证数据结构及其实现方法

文档序号:6527259阅读:259来源:国知局
一种云环境下远程数据完整性认证数据结构及其实现方法
【专利摘要】本发明公开了一种云环境下远程数据完整性认证数据结构的实现方法,其包括:利用认证数据结构来认证存放于云端数据的完整性包括是否被修改,是否有数据丢失;在云端服务器不可信的情况下,利用认证数据结构来认证存放于云端数据的下标正确性;利用认证数据结构来支持云端数据的动态更新,所述动态更新包括修改操作、插入操作和删除操作。本发明还公开了一种云环境下远程数据完整性认证数据结构,包括:认证二叉树的生成的伪代码模块;证明路径的生成和验证的伪代码模块;节点的修改操作的伪代码模块;节点的插入操作的伪代码模块;节点删除三种情形的操作的伪代码模块。具有降低了在用户端和云端的计算在时间复杂度和存储空间的消耗等优点。
【专利说明】一种云环境下远程数据完整性认证数据结构及其实现方法
【技术领域】
[0001]本发明涉及一种云储存中远程数据认证技术,特别涉及一种云环境下远程数据完整性认证数据结构及其实现方法,该方法是一种当数据存放于公有云端,并且云端不可信的情况下,如何利用认证数据结构来认证存放于云端的数据,并且同时可以支持对数据的动态操作如插入、删除和修改等的方法。
【背景技术】
[0002]随着云计算的发展,云存储服务商(CSP)可以提供按需的、可量化的存储服务,用户可以通过自己的需要按需付费,同时用户可以在任意时间任意地点访问云端上属于自己的数据,减轻了携带存储设备的不方便性。如Amazon云计算AWS (Amazon Web Service)的弹性计算云EC2和简单存储服务S3等。但其带来极大便利的同时也引进了一定的风险。其中最重要的一点就是存储设备不在用户的可控范围之内,用户无法控制他人对云上数据的访问,服务商可能承诺保护用户的数据隐私,但这仅仅是道德和经济层面的约束,可靠性太低,又或者服务商本身就是不可信的,可能对用户有欺诈行为,因而云上数据的机密性和完整性受到很大的挑战。
[0003]一方面我们要防止云端个人或组织的私密信息不会被不可信的服务商,或者敌手窃取,并且不会被损坏或者被篡改,另一方面,如果在云端的数据已经受到损坏,或者被恶意篡改的情况下,我们需要及时发现,并且证实数据已不具备完整性,揭露云服务提供商(CSP)存在的不可靠问题。
[0004]由于用户的数据存在云端服务,如何有效地证明存在云端的数据的完整性成了云计算领域中一个重要的安全问题。传统的基于hash函数的检验数据完整性的方法,对数据存储在云端的情况下已经不适用,要使这种方法可行,用户必须在本地保存数据的副本,这就失去了数据保存在云端的意义。另外,用户可以通过下载整个数据到本地来验证其完整性,但这样又浪费了大量的I/O操作和通信带宽,并不切合实际。因此,在用户端需要有高效的方法以最小的计算、空间消耗和最小的通信量来达到验证远程数据完整性的目的。以往的认证数据结构都能在一定的程度上解决上述的问题,但是其在认证过程中所使用的用户端的计算与存储,云端的计算与存储,以及用户端与云端的通信量都比较高,需要进一步的改进与降低。
[0005]另外,在满足上述要求的情况下,还需满足支持数据的动态操作,因为某些应用下,要求存放于云端的数据能够支持如插入、删除、修改等这样的动态操作。满足这些性质使得存放于云端的数据相比不支持的静态数据更加灵活可变,更适应云存储发展的要求。

【发明内容】

[0006]本发明的首要目的在于克服现有技术的缺点与不足,提供一种云环境下远程数据完整性认证数据结构,该数据结构使用检索二叉树作为基础模型,实现了数据与数据位置认证的结合,与以往的认证数据结构相比,无论是在静态数据的认证还是在动态数据的修改时的认证,在用户端和云端的计算在时间复杂度和存储空间消耗上都有所降低,实现了一种远程数据认证过程。
[0007]本发明的另一目的在于克服现有技术的缺点与不足,提供一种云环境下远程数据完整性认证数据结构的实现方法,该实现方法满足了基本静态数据认证的情况下数据完整性证明的要求,还满足了支持动态修改操作功能,如插入、删除和修改等。
[0008]本发明的首要目的通过下述技术方案实现:一种云环境下远程数据完整性认证数据结构,包括:
[0009]认证二叉树的生成的伪代码模块,用于认证二叉树的构建;
[0010]证明路径的生成和验证的伪代码模块,用于验证云端数据的完整性和云端数据的下标正确性;
[0011]节点的修改操作的伪代码模块,用于实现认证二叉树节点内容的修改操作;
[0012]节点的插入操作的伪代码模块,用于实现认证二叉树节点的插入操作;
[0013]节点删除三种情形的操作的伪代码模块,用于实现认证二叉树节点的删除操作。
[0014]本发明的另一目的通过下述技术方案实现:一种云环境下远程数据完整性认证数据结构的实现方法,包括:
[0015]在云端服务器不可信的情况下,利用所述云环境下远程数据完整性认证数据结构来认证存放于云端数据的完整性包括是否被修改,是否有数据丢失;
[0016]在云端服务器不可信的情况下,利用所述云环境下远程数据完整性认证数据结构来认证存放于云端数据的下标正确性;
[0017]在满足上述的两个基本条件的情况下,利用所述云环境下远程数据完整性认证数据结构来支持云端数据的动态更新,所述动态更新包括修改操作、插入操作和删除操作。
[0018]在满足上述三个条件的情况下,使得用户端和云端的计算复杂度和空间复杂度以及双方的通信量尽可能低。
[0019]对所述云端数据的完整性认证,包括:
[0020]认证二叉树的生成、证明路径的生成和验证。
[0021]对于所述云端数据的下标正确性,包括:
[0022]认证数据结构利用节点与节点之间数据的属性,来确保数据的下标正确性。
[0023]支持云端数据的动态更新,包括:
[0024]节点的修改操作、节点的插入操作和节点删除操作。
[0025]本发明相对于现有技术具有如下的优点及效果:
[0026]1、本发明的数据结构使用检索二叉树作为基础模型,实现了数据与数据位置认证的结合,满足基本静态数据认证的情况下数据完整性证明的要求。
[0027]2、本发明数据结构的实现方法满足支持动态修改操作功能,如插入、删除、修改等,与以往的认证数据结构相比,无论是在静态数据的认证还是在动态数据的修改时的认证,在用户端和云端的计算在时间复杂度和存储空间消耗上都有所降低。
【专利附图】

【附图说明】
[0028]图1是认证过程图。
[0029]图2是认证二叉树示意图。[0030]图3是证明路径的示意图。
[0031]图4是修改V13的示意图。
[0032]图5是插入V12的示意图。
[0033]图6是删除V12的示意图。
[0034]图7是V11删除之前的示意图。
[0035]图8是V11删除之后的示意图。
[0036]图9是V12删除之前的示意图。
[0037]图10是V12删除之后的示意图。
【具体实施方式】
[0038]下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0039]实施例
[0040]本发明实施例的所解决的详细问题阐述如下:
[0041]在不可信的云存储环境中,用户将其数据存放于云端,并且删除本地的副本,如保存本地副本则丧失了其将数据保存于云端的意义。对于静态数据,由于数据本身不会再次经过修改,所以只需满足静态的完整性验证;但是对于动态数据,即存放于云端的数据必须满足用户对其的插入、删除、修改等要求,其不止需要满足数据的完整性验证,还需满足数据块的位置信息的正确性。
[0042]下面对动态数据所产生的问题进行阐述:
[0043]问题一:数据块下标问题。
[0044]对于存放于云端的数据集M=Im1, m2, m3, m4,......Hii, mi+1......1V1, mn},每一块数据
对应一个下标值,这个下标值可以是用户端在上传数据之前将下标值嵌入数据中,云端不能拥有修改下标值的权限,如果云端可以修改下标值,则当用户要求验证第i块数据的完整性时,云端可以用任何一块数据通过修改下标后来达到欺骗用户端的目的。
[0045]例如,当用户端请求验证数据块mJPmi+1的完整性时,云端如具备修改数据块下标的能力,则此时云端可以将IVm2修改其下标成为m ‘1和111 ‘i+1并将其发送给用户端,用户端提取m ‘,和m ‘i+1的下标值i和i+Ι之后,便确信这两块数据为第i块和第i+Ι块。此时云端的欺骗成功。
[0046]所以云端不应当具备修改数据下标的能力。
[0047]问题二:动态修改时的数据下标问题。
[0048]对于存放于云端的数据集M=Im1, m2, m3, m4,......Hii, mi+1......1v1, mj满足动态修
改的要求,即用户端可以随意要求插入、删除、修改等操作。其中插入和删除操作将会使得
后续的数据块下标值产生修改,如在数据集M=Invnvnvm4,......Hii, mi+1......nwmj中第
i块数据前插入一块数据,则其后的所有下标都要发生改变,变为M,=Im1, m2, m3, m4,……,m……,mn,mn+1}。然而所有数据都存放于云端,而云端却不能具备修改数据下标的
能力,这是两个矛盾。
[0049]对于该问题,其中的一个解决方案是,在用户端保存一个标示下标的数组R= {1, 2,3,......,η}, 同时利用一定的算法机制来使得下标与相应的数据块互相对应,但是这将使得用户端的存储消耗上升到O (η)。
[0050]本发明实施例提出的认证二叉树结构能很好的解决上述的问题,即在数据块存放于云端且云端不具备修改数据下标的能力下,确保达到以下目的:
[0051]I)支持数据的动态操作。
[0052]2)支持数据的完整性证明。
[0053]3)支持数据的下标正确性。
[0054]4)在满足以上三个条件的情况下,使得用户端和云端的计算复杂度和空间复杂度,以及双方的通信量尽可能低。
[0055]本发明实施例的认证过程如图1所示,该过程包含以下的几个算法过程:各个算法描述如下:
[0056]GenRoot(M) — {root}:该算法在用户端执行,输入是数据集,输出是数据的签名即认证二叉树的根节点。该算法在已分块的数据集M上构建一棵认证二叉树,其中中间节点包含的数据与其子节点相关,一层一层往上,最终生成根节点root。用户端保存该根节点,用于用户完整性认证使用。
[0057]VerifyProof (proofPath,root) — {true or false}:该算法在用户端执行,输入是在云端生成的证明路径和用户端保存的root,输出true表示被认证的数据完整,false则相反。该算法通过云端产生的证明路径,利用该路径计算生成新的root’,并且验证root’是否等于root。
[0058]GenProof (Hii) — {proofPath}:该算法在云端执行,输入是指定的数据块Hii,输出是对应该数据块的证明路径proofPath。算法通过指定数据块在认证二叉树中的位置,生成从其兄弟节点和父节点,到根节点的整个路径,该路径即为VerifyProof算法的输入proofPath。
[0059]PerformUpdate (op,m, i):该算法在云端执行,输入参数op代表动态操作的类型,分别为插入、删除和修改。对于插入,执行算法Insert (m,i),m和i代表要插入的数据块和其位置;对于删除,执行算法Delete(i),m则可以省略,i代表其要删除的数据块的位置;对于修改,执行算法Modify (m,i),m和i代表要修改的数据块的新值和其相应的位置。
[0060]本发明实施例的认证数据结构一认证二叉树详细说明如下:
[0061]我们提出一个新的认证数据结构一认证二叉树,用来满足上述的认证过程。
[0062]对于数据集M我们将在其分块M=Im1, m2, m3, m4,......Hii, mi+1......1V1, mj的基础
上对这n个元素构建一棵认证二叉树。并在这棵认证二叉树上来实现对数据的动态操作。
[0063]该数据结构与已有的树形认证数据结构不同,已有的树形认证数据结构只把数据块的信息存储于叶子节点,此处则把数据块的信息存储于整棵树中,这样明显的优点就是减少了树的高度,并且可以减少需要存储的信息。如图2所示,图中第i个节点,对应下面第i个数据块,数据块的相关信息将被保存在相应的节点中。对于每个节点V保存数值
X (V) = {h (HIi), r (V), f (V)}:
[0064]r(v)代表该节点与其父节点在数据块的位置上的差值。(在位置上,左子节点小于父节点,右子结点大于父节点);
[0065]假设该节点为左子节点,例如对于图2v2是V4的左子节点,则V2的r(v)值为
4- 2=2 ;[0066]假设该节点为右子节点,例如对于图2^是V4的右子节点,则V6的r(v)值为6 - 4=2 ;
[0067]特殊情况,如果该节点为根节点的话,由于其没有父节点,我们将其r (V)值直接设为其位置值,如图2的v8。
[0068]r(v)定义如下:
[0069]其中i为V的r(v)值,j为V的父节点的r(v)值:
[0070]
【权利要求】
1.一种云环境下远程数据完整性认证数据结构的实现方法,其特征在于,包括: 在云端服务器不可信的情况下,利用所述云环境下远程数据完整性认证数据结构来认证存放于云端数据的完整性包括是否被修改,是否有数据丢失; 在云端服务器不可信的情况下,利用所述云环境下远程数据完整性认证数据结构来认证存放于云端数据的下标正确性; 在满足上述的两个条件的情况下,利用所述云环境下远程数据完整性认证数据结构来支持云端数据的动态更新,所述动态更新包括修改操作、插入操作和删除操作。
2.根据权利要求1所述的云环境下远程数据完整性认证数据结构的实现方法,其特征在于,对所述云端数据的完整性认证,包括: 认证二叉树的生成、证明路径的生成和验证。
3.根据权利要求2所述的云环境下远程数据完整性认证数据结构的实现方法,其特征在于,对于所述云端数据的下标正确性,包括: 认证数据结构利用节点与节点之间数据的属性,来确保数据的正确性。
4.根据权利要求3所述的云环境下远程数据完整性认证数据结构的实现方法,其特征在于,所述支持云端数据的动态更新,包括: 节点的修改操作、节点的插入操作和节点删除操作。
5.一种云环境下远程数据完整性认证数据结构,其特征在于,包括: 认证二叉树的生成的伪代码模块,用于认证二叉树的构建; 证明路径的生成和验证的伪代码模块,用于验证云端数据的完整性和云端数据的下标正确性; 节点的修改操作的伪代码模块,用于实现认证二叉树节点内容的修改操作; 节点的插入操作的伪代码模块,用于实现认证二叉树节点的插入操作; 节点删除三种情形的操作的伪代码模块,用于实现认证二叉树节点的删除操作。
【文档编号】G06F21/64GK103716404SQ201310754002
【公开日】2014年4月9日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】徐红云, 江捷斯, 杨克敏 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1