一种基于哈希树的数据动态操作可验证性方法技术

技术编号:8959626 阅读:255 留言:0更新日期:2013-07-25 19:11
本发明专利技术公开了一种基于哈希树的数据动态操作可验证性方法,是由用户USER、云计算数据中心CDC和第三方审计机构TPA三部分通过通信网络连接组成。USER作为数据存储服务请求的提出一方,希望将自己拥有的数据文件存储到云计算数据中心的云存储空间之中。USER既可以是个人用户,也可以是企业用户。CDC负责响应用户的数据存储服务请求,按照一定的规则将用户的数据文件存储到自己庞大的数据中心,并对数据文件的管理维护负责。TPA作为可靠的第三方审计机构,受USER的委托对存储在CDC数据中心的数据文件进行完整性和一致性的审查。本发明专利技术解决了云计算环境下对于用户数据文件完整性和一致性的验证问题。

【技术实现步骤摘要】

本专利技术属于计算机
,涉及。
技术介绍
目前,尽管云计算服务提供商能够通过稳定高速的网络连接使用户获得便捷高效的远程数据存储访问服务,但是由于云计算具有的虚拟化、大规模、动态配置和可扩展性等诸多自身特性,还是为在云计算环境下的大规模数据存储服务带来了诸多的安全隐患和挑战。为了提高存储效率和存储空间的利用率,大的数据文件通常会被云计算服务提供商拆分成若干个小的数据块进行存储,每一个数据块存储的地理位置及存储的状态都是用户所未知的,用户难免会对自己数据文件的完整性和一致性产生怀疑。作为衡量数据存储服务的一大关键指标,如何保证存储在地理未知的庞大服务器集群中的用户数据文件的完整性和一致性,一直以来都是云计算数据存储服务所面临的一大难题。尤其在亚马逊简单存储服务和谷歌Docs服务相继发生服务意外中断等事故之后,用户对云计算服务提供商是否会为了节省资源和节约成本而隐瞒了更多的安全事故产生了极大的不信任。用户希望能够有一套完整的机制使自己在不耗费过多计算资源和时间的前提下,拥有对数据文件进行完整性和一致性审查的能力。相关的研究在·很早之前便已经开始进行,并在设计方案的效率、可验证性、可查询性和可恢复性方面取得了不错的成绩。目前,对于数据完整性和一致性较为通用的解决方案主要有私下审计和公开审计两个类型,如图1所示。私下审计顾名思义就是用户自己承担对数据文件的审计工作,公开审计则是将审计委托可信的第三方审计机构来完成。虽然私下审计因其逻辑简单拥有更高的审计效率,但是公开审计不仅能够为用户提供安全可靠的数据审计,还在很大程度上为用户节省了大量的计算资源和时间。在云计算环境下,用户不太可能拥有大量的时间和精力来对自己的数据文件进行频繁的审计工作,将这项费时费力的任务交由拥有可靠审计协议和完整解决方案的可信第三方审计机构来完成可以说是一个非常不错的选择。本专利技术拥有可信第三方审计机构的云计算数据存储安全体系架构,针对云计算环境下数据文件的存储和操作特点,设计了一个基于MerkleHash Tree的数据动态操作可验证性方案。数据存储可验证性方面的研究在很早之前便已受到业界的普遍关注,学者们提出的解决方案在效率、可验证性、可查询性和可恢复性等方面也都取得了一定的成绩。但可惜的是,大多数学者的研究内容局限于对静态数据文件的操作,很多研究成果不能够满足对于数据文件频繁的动态操作。下面将对学者们之前的相关研究成果进行一下总结。在远程存储数据认证方面,Burns等人最先提出了确保存储在不可信存储介质中数据的可验证性,并提出了一个叫做数据证明拥有(provable data possession,PDP)的模型概念。Burns等人使用基于RSA的标签,实现了对于外部数据的审计功能。但可惜Burns等人没有充分考虑数据的动态存储问题。随后,Ateniese等人针对基于PDP模型在静态存储转换动态存储的过程中存在安全隐患的缺陷,提出了一个在PDP模型下支持动态数据操作的新模型。遗憾的是,Ateniese等人的新模型并没有支持所有的基本数据动态操作,包括插入操作在内的重要数据操作方式都没有能够出现在新模型中。美国伊利诺伊理工大学的华裔科学家王聪博士等人在那之后提出了一个应用于分布式环境,能够审查数据文件正确性并定位可能的失效节点的方案,但是与Ateniese等人提出的模型类似,王聪等人的方案也未能支持全部的基本动态操作。此外,Juels和Kaliski提出了一种叫做数据可检索性证明(proofof retrievability,POR)的概念模型。在他们的文献中,校验码和抽样调查方法被用来确保数据的可检索性,并且保证数据完整地存储在数据中心内。Juels和Kaliski采用为数据块随机添加附加信息的方法来达到检测的目的。但是POR模型限制了查询的数量,也不支持公开的审计方案。Waters和Shacham在那之后设计了一套改进的POR模型,不过改进的模型仅拥有为静态数据提供数据恢复的能力。Papamanthou等人是最先探索构建动态PDP模型可能性的学者,他们提出的改进PDP模型具备完整的动态操作功能,并成功的避免了使用额外的数据标签。此外,Devanbu等人在文献中给出了基于MerkleHash Tree的数据查询验证解决方案,目前主流的基于Merkle Hash Tree结构的查询验证算法均将其作为基础。现有技术中给出了一种基于POR模型的数据块验证模型,该模型也是基于MerkleHash Tree数据结构,但是并未考虑在分布式环境下数据存储的地理位置对于计算效率所产生的影响。
技术实现思路
为了解决上述技术问题,本专利技术提供一种基于Merkle Hash Tree的数据动态操作可验证性方案是由用户(USER)、云计算数据中心(⑶C)和第三方审计机构(TPA)三部分通过通信网络连接组成。USER作为数据存储服务请求的提出一方,希望将自己拥有的数据文件存储到云计算数据中心的云存储空间之中。USER既可以是个人用户,也可以是企业用户。CDC负责响应用户的数据存储服务请求,按照一定的规则将用户的数据文件存储到自己庞大的数据中心,并对数据文件的管理维护负责。TPA作为可靠的第三方审计机构,受USER的委托对存储在CDC数据中心的数据文件进行完整性和一致性的审查。方案在参考先前研究成果的基础上,利用Merkle Hash Tree特殊的树状结构,解决了云计算环境下对于用户数据文件完整性和一致性的 验证问题。不仅有效地支持云计算环境下所有的基本数据动态操作(包括数据的增加、删除和修改等),还充分考虑到分布式环境下数据存储的地理位置对于计算效率的影响,对基于Merkle Hash Tree可验证性方面的研究做出了一定的贡献。其技术方案如下:,包括以下步骤:A文件预处理文件进行预处理之前,USER会向⑶C提出数据文件的存储请求。⑶C按照其预先设定的访问控制规则对USER进行身份验证。通过CDC身份验证的合法用户便会获得进行文件存储的权限。USER通过⑶C的身份验证之后,⑶C便开始接收USER需要存储的数据文件,并对其进行预处理:(I)首先,数据文件将被分成大小相同的若干个数据块,F- (fl, f2, f3, f4,f5,f6,...fn)ο(2)然后,CDC对每个数据块进行哈希操作并求出所有数据块的哈希值H(fi)(I < i < η)。(3)哈希操作之后,数据文件可以记为:F’ 一 (fl+H(fl),f2+H(f2),f3+H(f3), , fn+H(fn))。⑶C将暂时保存所有数据块的哈希值,为接下来构造文件的验证数据结构Merkle Hash Tree做准备。(4)为了对数据块进行唯一的地理位置标记,方案为每个数据块添加了一个5字节大小的位置标签(LTag),标签由2字节的次序标记信息、I字节的机架标记信息和2字节的节点标记信息组成。次序标记信息记录的是数据块在所有数据块中的次序编号,机架标记信息记录的是该数据块存储在数据中心的具体机架编号,节点标记信息则标明数据块存储的节点服务器的具体编号。CDC会为每个数据文件维护一个LTag标签列表,记录该文件所有数据块的LTag标签信息。(5)标签添加完毕之后,所有数据块将会被⑶本文档来自技高网
...

【技术保护点】
一种基于哈希树的数据动态操作可验证性方法,其特征在于,包括以下步骤:A文件预处理文件进行预处理之前,USER会向CDC提出数据文件的存储请求,CDC按照其预先设定的访问控制规则对USER进行身份验证,通过CDC身份验证的合法用户便会获得进行文件存储的权限;USER通过CDC的身份验证之后,CDC便开始接收USER需要存储的数据文件,并对其进行预处理:(1)首先,数据文件将被分成大小相同的若干个数据块,F→(f1,f2,f3,f4,f5,f6,...fn),(2)然后,CDC对每个数据块进行哈希操作并求出所有数据块的哈希值H(fi)(1≤i≤n),(3)哈希操作之后,数据文件可以记为:F’→(f1+H(f1),f2+H(f2),f3+H(f3),...,fn+H(fn)),CDC将暂时保存所有数据块的哈希值,为接下来构造文件的验证数据结构Merkle?Hash?Tree做准备,(4)为了对数据块进行唯一的地理位置标记,方案为每个数据块添加了一个5字节大小的位置标签(LTag),标签由2字节的次序标记信息、1字节的机架标记信息和2字节的节点标记信息组成,次序标记信息记录的是数据块在所有数据块中的次序编号,机架标记信息记录的是该数据块存储在数据中心的具体机架编号,节点标记信息则标明数据块存储的节点服务器的具体编号,CDC会为每个数据文件维护一个LTag标签列表,记录该文件所有数据块的LTag标签信息;(5)标签添加完毕之后,所有数据块将会被CDC存入数据中心,数据块所存储的地理位置信息也会被记录在数据块自己的LTag标签之中,待所有数据块的LTag标签记录完毕,CDC将会为数据文件创建一个包含全部数据块地理位置信息的LTag标签信息列表,(6)随后,进行关键数据结构Merkle?Hash?Tree的构造,1)首先,CDC从Ltag标签列表中取出文件所有数据块的机架值Rack(LTag(fi)),对存储在不同机架中的数据块进行划分,存入相应机架的ListRack[]列表,2)然后,CDC依次从不同机架的ListRack[]列表中取出所有数据块Ltag标签中的节点信息,对存储在相同机架不同节点的数据块再次进行划分,3)接着,对存储在相同机架相同节点的数据块,CDC将取出它们Ltag标签中的次序信息,进行按序排列,用数据块的哈希值作为叶子节点构造节点Merkle?Hash?Tree,并计算其根节点值,如果节点仅存有一个数据块,则该数据块的哈希值便为该节点Merkle?Hash?Tree的根节点值,,记为NRoot[i,j],其中i代表所在机架编号,j代表所在节点编号,4)完成文件存储的所有节点Merkle?Hash?Tree的构造和根节点值的计算工作之后,CDC将存储在相同机架的所有节点Merkle?Hash?Tree根节点值按节点顺序进行排序,将其作为叶子节点构造各个机架的Merkle?Hash?Tree,并计算其根节点值,如果机架仅有一个节点存储数据文件,则该节点的Merkle?Hash?Tree根节点值便为机架Merkle?Hash?Tree的根节点值,记为 RRoot[i],其中i代表机架序号,5)最后,对所有机架Merkle?HashTree的根节点值进行按序排列,将它们的根节点值作为叶子节点构造文件的Merkle?Hash?Tree,并计算其根节点值(如果仅有一个机架存储数据文件,则该机架的Merkle?Hash?Tree根节点值便为文件Merkle?Hash?Tree的根节点值),记为FRoot;B数据文件的验证(1)首先,CDC完成USER的数据文件存储工作,并向TPA提交USER所存储数据文件的相关验证信息,数据文件在被USER删除之前,只要发生了改动,CDC都将负责为数据文件生成最新的验证信息,并与TPA进行实时更新,(2)然后,CDC通知USER数据文件的存储及验证信息的生成工作已经完成,并告知USER可以开始委托TPA对数据文件进行完整性和一致性的验证,(3)USER可以选择马上或者另选其他时间与TPA进行通信,来委托TPA对数据文件进行完整性和一致性验证,(4)TPA在收到USER的审计委托请求之后,会根据USER的需求对数据文件进行定期或不定期的审计验证,并对所有审计操作保留验证日志以供USER日后查验,验证过程中,如果出现数据文件验证失败的情况,则TPA将通过邮件或短信等通信方式告知USER,同时要求CDC进行数据文件的副本恢复等补救措施,方案中数据文件的验证过程是指USER委托TPA所进行的定期不定期的数...

【技术特征摘要】
1.一种基于哈希树的数据动态操作可验证性方法,其特征在于,包括以下步骤: A文件预处理 文件进行预处理之前,USER会向CDC提出数据文件的存储请求,CDC按照其预先设定的访问控制规则对USER进行身份验证,通过CDC身份验证的合法用户便会获得进行文件存储的权限; USER通过⑶C的身份验证之后,⑶C便开始接收USER需要存储的数据文件,并对其进行预处理: (1)首先,数据文件将被分成大小相同的若干个数据块,F-(fl,f2, f3,f4,f5,f6,...fn), (2)然后,CDC对每个数据块进行哈希操作并求出所有数据块的哈希值H(fi)(I ^ i ^ η), (3)哈希操作之后,数据文件可以记为:F’— (fl+H(fl),f2+H(f2),f3+H(f3),,fn+H(fn)),CDC将暂时保存所有数据块的哈希值,为接下来构造文件的验证数据结构Merkle Hash Tree 做准备, (4)为了对数据块进行唯一的地理位置标记,方案为每个数据块添加了一个5字节大小的位置标签(LTag),标签由2字节的次序标记信息、I字节的机架标记信息和2字节的节点标记信息组成,次序标记信息记录的是数据块在所有数据块中的次序编号,机架标记信息记录的是该数据块存储在数据中心的具体机架编号,节点标记信息则标明数据块存储的节点服务器的具体编号,CDC会为每个数据文件维护一个LTag标签列表,记录该文件所有数据块的LTag标签信息; (5)标签添加完毕之后 ,所有数据块将会被⑶C存入数据中心,数据块所存储的地理位置信息也会被记录在数据块自己的LTag标签之中,待所有数据块的LTag标签记录完毕,CDC将会为数据文件创建一个包含全部数据块地理位置信息的LTag标签信息列表, (6)随后,进行关键数据结构MerkleHash Tree的构造, 1)首先,CDC从Ltag标签列表中取出文件所有数据块的机架值Rack(LTag (fi)),对存储在不同机架中的数据块进行划分,存入相应机架的ListRack[]列表, 2)然后,⑶C依次从不同机架的ListRack[]列表中取出所有数据块Ltag标签中的节点信息,对存储在相同机架不同节点的数据块再次进行划分, 3)接着,对存储在相同机架相同节点的数据块,CDC将取出它们Ltag标签中的次序信息,进行按序排列,用数据块的哈希值作为叶子节点构造节点Merkle Hash Tree,并计算其根节点值,如果节点仅存有一个数据块,则该数据块的哈希值便为该节点Merkle HashTree的根节点值,,记为NRoot [i,j],其中i代表所在机架编号,j代表所在节点编号, 4)完成文件存储的所有节点MerkleHash Tree的构造和根节点值的计算工作之后,CDC将存储在相同机架的所有节点Merkle Hash Tree根节点值按节点顺序进行排序,将其作为叶子节点构造各个机架的Merkle Hash Tree,并计算其根节点值,如果机架仅有一个节点存储数据文件,则该节点的Merkle Hash Tree根节点值便为机架Merkle Hash Tree的根节点值,记为RRoot[i],其中i代表机架序号, 5)最后,对所有机架MerkleHashTree的根节点值进行按序排列,将它们的根节点值作为叶子节点构造文件的Merkle Hash Tree,并计算其根节点值(如果仅有一个机架存储数据文件,则该机架的Merkle Hash Tree根节点值便为文件Merkle Hash Tree的根节点值),记为FRoot ; B数据文件的验证 (1)首先,CDC完成USER的数据文件存储工作,并向TPA提交USER所存储数据文件的相关验证信息,数据文件在被USER删除之前,只要发生了改动,CDC都将负责为数据文件生成最新的验证信息,并与TPA进行实时更新, (2)然后,⑶C通知 USER数据文件的存储及验证信息的生成工作已经完成,并告知USER可以开始委托TPA对数据文件进行完整性和一致性的验证, (3)USER可以选择马上或者另选其他时间与TPA进行通信,来委托TPA对数据文件进行完整性和一致性验证, (4)TPA在收到USER的审计委托请求之后,会根据USER的需求对数据文件进行定期或不定期的审计验证,并对所有审计操作保留验证日志以供USER日后查验,验证过程中,如果出现数据文件验证失败的情况,则TPA将通过邮件或短信等通信方式告知USER,同时要求CDC进行数据文件的副本恢复等补救措施, 方案中数据文件的验证过程是指USER委托TPA所进行的定期不定期的数据文件完整性和一致性审查,TPA通过向⑶C提出数据文件的完整性和一致性验证请求,并对⑶C回复的验证信息进行审核,来完成USER所委托的验证工作,具体描述如下: 1)验证的起始阶段,TPA生成验证信息 checkM(UInfo, FInfo, RInfo (FRoot, RRoot [i],NRoot [i, j])), checkM验证消息由三部分组成:一是用户的个人信息UInfo, UInfo可以帮助CDC迅速准确定位需要进行查验的数据文件的拥有者;二是需要查验的数据文件信息FInfo,FInfo明确的指出需要进行查验的数据文件;三是具体的Merkle Hash Tree根节点信息RInfo, RInfo由数据文件Merkle Hash Tree根节点值FRoot、指定机架Merkle HashTree根节点值RRoot [i]和指定节点Merkle Hash Tree根节点值NRoot [i, j]三部分组成, 2)验证消息checkM生成之后,TPA会通过通信网络将checkM传送给CDC, 3)CDC接收到验证信息后,首先会对checkM进行分解,确定TPA所要审查的相关内容, 4)然后,⑶C使用上述A节介绍的相关MerkleHash Tree生成算法重新生成并计算相应Merkle Hash Tree及其根节点值, 5)完成所有验证信息的生成工作之后,⑶C将生成验证回复信息resp0ndM(UInf0,FInfo,RInfo’(FRoot,,RRootJ [i],NRootj [i, j])),其中,UInfo 和 FInfo 的内容与 checkM验证信息的前两部分保持一致,RInfo’则返回TPA需要审查的相关Merkle Hash Tree根节点值,包括指定的数据文件Merkle Hash Tree根节点值FRoot’、指定的机架Merkle HashTree根节点值RRoot’ [i]和指定的节点Merkle Hash Tree根节点值NRoot’ [i, j]三部分, 6)最后,TPA在收到respondM验证回复信息之后,将与自身保存的相关MerkleHashTree根节点值进行比对,如果结果一致,则审查失败,数据完整且与先前版本一致,反之,则说明数据与先前版本不一致,TPA将要求CDC进行数据文件的副本恢复等异常处理操作,并将审查结果告知USER ; C数据的动态操作 Cl数据的插入操作插入操作是数据文件最基本的动态操作内容,相对于修改和删除操作也是方案中最为复杂的动态操作,在数据文件的第i个数据块f i之后插入数据块f i ’,方案的操作步骤可以描述如下:(1)CDC计算出新的数据块fi’的哈希值H(fi’),并为需要进行插入操作的数据块fi’创建标签信息LTag(fi’), (2)生成并运行插入操作函数Insert(fi’,H(fi’),LTag(fi)),通过LTag(fi)定位数据块插入的具体位置,进行数据块的插入操作,(3)调用Merkle Hash Tree 插入操作函数 MerkleInsert (h (fi), h (fi ’ ), LTag (fi)),该函数对h(fi)和h(fi’ )进行连接操作,并对连结后的数值再次进行哈希操作,然后CDC使用哈希操作产生的新结果替代原来...

【专利技术属性】
技术研发人员:邢建川韩帅
申请(专利权)人:电子科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1