一种面向用户的云存储数据完整性保护方法_5

文档序号:9564821阅读:来源:国知局
据进行恢复操作。云平台模块由管理节点上的 管理模块、更新模块、验证模块、恢复模块和存储节点上的存储模块、计算模块组成。图中验 证模块、恢复模块是ECAS-FDPOR方案在云平台新增的模块,验证模块、恢复模块、计算模块 是对云平台原有模块进行修改、增加部分内容。各个子系统所用到的模块如表1所示: [0140] 表1各子系统所用模块不意图
[0142] 用户端与云平台的各个模块功能如下:
[0143] ?用户端模块
[0144] 1、文件上传模块
[0145] 用户把文件上传到云存储服务器之前,需要对文件进行与处理操作,包括将文件 做纠删码编码,对每个数据块计算哈希值,对纠删码生成的校验数据加密等,之后上传文件 和服务器附属信息给云平台管理模块。
[0146] 2、文件更新模块
[0147] 用户将要更新的节点索引发送给服务器端,验证服务器返回的路径是否正确,正 确则生成哈希值给服务器,经云平台管理节点的验证模块验证后将更新数据并计算纠删 码,由管理节点返回存储地址,用户将数据存储在存储节点上。
[0148] 3、文件验证模块
[0149] 用户发送挑战数据索引给云存储管理节点,计算由云平台返回的代数签名是否匹 配,若不匹配,调用文件恢复模块。
[0150] 4、文件恢复模块
[0151] 用户将有错误数据的分支树节点对应的数据块下载到本地,对其进行哈希值的计 算并对比,定位错误数据并对受损数据进行恢复。
[0152] ?云平台模块
[0153] 1、管理模块
[0154] 云存储管理节点收到了存储文件与附属信息的请求后,会管理并存储文件的元数 据,确定文件数据块到存储节点的映射并将其记录在2-3树中,接收用户请求并判断请求 类型调用其他相应的模块。
[0155] 2、更新模块
[0156] 返回索引对应的路径给用户,通过用户端文件验证模块的验证,若通过用户的验 证,将对应的数据块返回给用户。
[0157] 3、验证模块
[0158] 进行两种验证,一个是数据完整性的验证,根据索引调用存储模块,将存储模块的 计算出来的代数签名结果返回给用户;另外一种验证是验证用户传来数据块是否正确,实 现公平性。
[0159] 4、恢复模块
[0160] 用户请求恢复数据时,由管理模块调用恢复模块进行文件恢复。
[0161] 5、存储模块
[0162] 存储模块位于云平台存储节点上,由管理节点的管理模块接收到用户存储数据的 请求以后调用,将数据存储在存储节点上
[0163] 6、计算模块
[0164] 计算模块同样位于云平台存储节点上,当管理节点请求为指定数据计算数据签名 时,该模块将计算数据签名并将结果返回给管理节点。
【主权项】
1. 一种面向用户的云存储数据完整性保护方法,其步骤为: 1) 文件上传:用户端将文件分块编号,对每一文件块进行纠删码编码,生成块内冗余 校验码;计算每一文件块哈希值,将哈希值保存成一个基于范围的2-3树,将这些哈希值联 接成一个值并用私钥对其进行数字签名;并根据树形结构对文件块进行纠删码编码,生成 文件块之间的块间冗余校验码,用流置换密钥对块间冗余校验码进行加密;用户端本地保 存文件块编号、私钥、流置换密钥和2-3树信息,并生成云端附属信息上传到云端,云端附 属信息包含文件块编号、数字签名、纠删编码后的文件、公钥、2-3树信息;所述纠删编码后 的文件包括原始文件、块内冗余校验码和加密后的块间冗余校验码; 2) 文件验证:用户端将文件验证请求发送给云存储管理节点,云存储管理节点根据该 文件验证请求中包含的云存储服务器编号,将请求发送给对应的云存储服务器,由云存储 服务器计算对应的原始数据及其与原始数据对应的块间冗余校验码的代数签名,之后将该 代数签名返回给用户端进行数据完整性验证,如果发现数据损坏则进行步骤3); 3) 文件恢复:用户端根据2-3树信息从云端获取包含该损坏数据的分支树上的所有文 件块,通过对这些文件块的哈希值进行对比定位出错误所在的文件块,并用该文件块的纠 删码对其进行纠错恢复,如果无法恢复,则从云端获取该分支树的块间冗余校验码对其进 行纠错恢复。2. 如权利要求1所述的方法,其特征在于所述2-3树的节点用v来表示,每一个节点储 存(1 (v),r(v),x(v),p(v)) ;1 (v)是节点v的高度;r(v)是节点v的范围值;x(v)是节点 v的认证值,p(v)是文件块之间的冗余校验码的哈希值信息;其中,如果1 (v) = 2,则p(v) =c2,c3)),h、c2、c3是节点v的从左到右的三个孩子,当节点v只有2个孩子Cp c2时,c3为空;如果1 (v)不等于2,则p(v) = 0。3. 如权利要求1或2所述的方法,其特征在于所述2-3树中设有冗余校验码节点,其与 2-3树中高为2的那层节点在逻辑上对应。4. 如权利要求1或2所述的方法,其特征在于采用RS(3,1)、RS(2,1)纠删码计算生成 所述块间冗余校验码;选择RS(6, 2)纠删码计算生成所述块内冗余校验码。5. 如权利要求1所述的方法,其特征在于所述文件校验方法为: 51) 用户端将文件验证请求(X,n,s,y,c,α)发给云存储管理节点;其中,X是起始偏 移量,η是想要挑战的样本数量,s是一个纠删码码字,y是分支树的编号,c是服务器编号 集合,α是计算代数签名的参数值; 52) 云存储管理节点将该文件验证请求与用户端地址发给云存储服务器编号集合c对 应的存储节点,然后每一云存储节点对第y分支树上的原始数据及其块间冗余校验码进行 代数签名的计算,并将该代数签名的结果返回给该用户端; 53) 该用户端根据收到的该代数签名对这个分支树上的数据进行数据完整性验证,判 断数据是否有损坏。6. 如权利要求1所述的方法,其特征在于所述从云端获取该分支树的块间冗余校验码 对其进行纠错恢复的方法为:通过云存储管理节点从云存储节点上取回有损坏数据分支树 对应的块间冗余校验码P/ ;然后用流置换密钥S对其进行解密,得到P/ ;然后用P/ 与该分支树上剩余的完好数据块对损坏的数据进行恢复。7. 如权利要求1或2所述的方法,其特征在于当用户端更新上传的文件时,用户端与云 端进行两方面的验证:一方面对该2-3树的树形结构验证,即该用户端向云存储管理节点 发送要更新的文件块索引,云存储管理节点返回该文件块的路径,由用户端验证云端保存 的树形信息与用户端保存的树形信息是否一致,如果一致则验证通过;另一方面是对文件 块的数字签名的验证,用户端将更新后的数字签名发送给云端,云端通过公钥验证该签名 的正确性;当两方面验证均通过后,云存储管理节点将该用户端需更新的文件块索引号对 应的文件块发给该用户端进行更新,然后将重新计算后的块内冗余校验码和加密后的块间 冗余校验码传给云端保存。8. 如权利要求7所述的方法,其特征在于所述更新为对文件块进行修改处理,其方法 为:首先用户端确定更新文件块对应的节点在该2-3树的分支,返回该分支上的所有节点 和父节点索引,得到一节点索引集合I;然后将该节点索引集合I发送给云端,云端返回对 应的文件块给该用户端,用户端选取节点i对应的文件块进行更新后,对更新后的文件块 进行纠删码的计算,生成块内冗余校验码;然后对索引节点集合I对应的文件块进行纠删 码编码,生成文件块之间的块间冗余校验码;然后将更新后的2-3树信息本地更新并发送 给云端进行更新。9. 如权利要求7所述的方法,其特征在于所述更新为对文件块进行删除处理,其方法 为:首先用户端确定删除文件块对应的节点i所影响的节点索引集合I;然后删除该节点 i,对索引节点集合I对应的文件块进行纠删码编码,生成文件块之间的块间冗余校验码; 然后将更新后的2-3树信息本地更新并发送给云端进行更新。10. 如权利要求9所述的方法,其特征在于确定所述节点索引集合I的方法为:根据该 节点i在该2-3树的分支,若该分支具有3个孩子,则返回该节点所在分支树上的所有节点 和父节点索引;若该分支具有2个孩子,则探测其邻居分支:若存在有3个孩子的分支p,则 更新节点i所在分支上的剩余节点优先加入只有3个孩子的分支,返回节点i所在分支上 的所有节点与分支P上的节点和他们的父节点索引;若只存在2个孩子的分支,节点i所 在分支上的剩余节点加入2个孩子的分支,该分支更新后其父节点将减少1,此时在父节点 上循环进行文件块删除处理直到其他情形出现,若最终达到该2-3树的根节点,该2-3树树 高-1,循环返回这个分支的节点与父节点索引。11. 如权利要求7所述的方法,其特征在于所述更新为对文件块进行插入处理,其方法 为:首先用户端确定对该2-3树的节点i进行文件块插入操作所影响的节点索引集合I;然 后在该节点i后插入一个新的叶子值为e,对数据e进行纠删码的计算,生成块内冗余校验 码;然后对索引节点集合I对应的文件块进行纠删码编码,生成文件块之间的块间冗余校 验码;然后将更新后的2-3树信息本地更新并发送给云端进行更新。12. 如权利要求11所述的方法,其特征在于确定所述节点索引集合I的方法为:首先 判断该节点i在该2-3树的分支,若该分支具有2个孩子,返回该节点所在分支树上的所有 节点和父节点索引;若该分支具有3个孩子,则返回这个分支上的节点与父节点索引,并且 递归判断上一层节点,直到根节点为止,返回所有更新的分支上的节点索引。
【专利摘要】本发明公开了一种面向用户的云存储数据完整性保护方法。本方法为:1)上传:用户端将文件分块编号,生成块内冗余校验码;计算每一文件块哈希值,将哈希值保存成一个基于范围的2-3树,将这些哈希值联接成一个值并用私钥签名;生块间冗余校验码,用流置换密钥对块间冗余校验码进行加密;2)验证:云管理节点将验证请求发送给对应云存储服务器,计算对应的原始数据及其对应的块间冗余校验码的代数签名,返回给用户端进行数据完整性验证,如果发现数据损坏则进行3);3)恢复:用户端根据树信息从云端获取对应分支树上的所有文件块,并用该文件块的纠删码对其进行纠错恢复。本发明从用户角度对存储在云端的动态数据进行完整性验证、恢复。
【IPC分类】G06F21/64
【公开号】CN105320899
【申请号】CN201410350589
【发明人】杨雅辉, 李晓晨, 沈晴霓, 吴中海, 方跃坚
【申请人】北京大学
【公开日】2016年2月10日
【申请日】2014年7月22日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1