面向云存储服务的动态数据完整性审计方案的制作方法

文档序号:8925285阅读:364来源:国知局
面向云存储服务的动态数据完整性审计方案的制作方法
【技术领域】
[0001] 本发明属于云存储安全技术领域,更为具体地讲,设及一种面向云存储服务的动 态数据完整性审计方案。
【背景技术】
[0002] 云存储作为未来存储技术的一种发展趋势,为云计算提供便捷和低成本的海量存 储服务。用户将个人数据存储在云服务器,不仅能够减轻用户的存储负担,而且能够随时随 地访问云端数据。然而用户不具有对云端个人数据的绝对控制权,所W数据安全是一个不 可忽视的问题。
[0003] 目前,研究者已经提出了多种云存储服务的数据完整性检查方案,但是现有的动 态审计方案存在不安全问题和效率低下的问题。用户的动态操作可能导致W下几种攻击: 重放攻击一-恶意的云服务提供商使用已经过期版本的数据块和标签通过审计者的验证, 伪造攻击一-恶意的云服务提供商伪造一个标签W欺骗审计者的验证,删除攻击一-恶意 的云服务提供商故意删除一部分用户数据或预先计算聚合的数据块和标签。
[0004] 本发明旨在利用认证性的数据结构,提出一个适合云存储服务的动态数据完整性 审计方案。通过对用户更新后的数据进行验证和签名操作,W确信云服务提供商是诚实地 更新用户存储在云服务器上的个人数据。最后通过审计者对云服务提供商的数据完整性验 证,确信用户的数据被正确地存储在云服务器上。

【发明内容】

[0005] 本发明的目的在于克服已有云存储服务的数据完整性检查方案对用户动态操作 支持的不足,提出一种面向存储服务的动态数据完整性检查方案。通过使用认证性数据结 构对数据块的位置和版本进行验证,确信云服务提供商诚实地更新用户的数据,W达到对 用户存储在云端个人数据进行完整性检查的目的。
[0006] 为了实现上述目的,本发明所述面向云存储服务的动态数据完整性检查方案,包 括W下几个步骤:
[0007] 密钥生成阶段;用户生成公私钥对,秘密保存私钥,并将公钥发送给审计者和云服 务提供商;
[000引数据外包阶段:用户将文件分割成多个数据块,并对每个数据块计算一个标签,然 后将数据块和标签发送给云服务提供商;云服务提供商对用户发送来的数据块和标签进行 验证,如果验证通过,则云服务提供商接受用户的存储请求,否则将拒绝用户的存储请求;
[0009] 云端数据完整性审计阶段;审计者向云服务提供商发送数据完整性检查的请求消 息,当云服务提供商接收到审计者的请求消息后,需要计算一个证据并将其发送给审计者; 审计者验证上述证据是否正确,如果正确,就说明用户的个人数据被正确地存储在云服务 器上,否者就说明用户存储在云服务器上的个人数据已经被损;
[0010] 动态更新云端数据阶段;如果用户想要更新云端个人数据,就需要将数据块和标 签发送给云服务提供商;云服务提供商收到用户的数据块和标签后,执行更新操作,并将更 新后的结果告知用户。
【附图说明】
[0011] 图1是本发明面向云存储服务的动态数据完整性审计方案的【具体实施方式】原理 框图;
[0012] 图2是图1所示的动态更新云端数据阶段4的原理框图。
【具体实施方式】
[0013] 下面结合附图对本发明的【具体实施方式】进行描述,图1是本发明面向云存储服务 的动态数据完整性审计方案的【具体实施方式】原理框图,包括密钥生成阶段对应1、数据外包 阶段2、数据审计阶段3. 1和3. 2、动态更新云端数据阶段4。图2是本发明面向云服务的动 态数据完整性验证审计方案的动态更新云端数据阶段4的原理框图,包括用户发送更新请 求消息4. 1、云服务提供商返回响应消息4. 2、用户验证响应消息4. 3. 1和用户发送更新请 求消息4. 3. 2、用户更新数据4. 4. 1和用户发送签名4. 4. 2、云服务提供商更新数据和签名 4. 5。
[0014]1.密钥生成阶段:用户选择随机数s&eZ;;和UG Gi,并且计算pk=gsk,从而得到 用户的私钥为sk、公钥为(pk,u);用户秘密存储私钥,将公钥发送给云服务提供商和审计 者。
[001引 2.数据外包阶段;(1)用户将文件M分成割成S个分区M= {Ml,M2,…,M,},每个分区11被分割成111个数据块^,=机1,"!,:,...,。;,",;,其中"!&.62;、1£{1,2,...,3}和 j G {1, 2, ???,nj0
[0016] 0)用户为每个分区Mi构造一个初始的版本向量Vi= (1,2,…,n1),其中 iG(1,2,…,s};用户为每个数据块计算一个同态标签7;=(雌/)-""'")",其中*^ = FIDIIiIIV。、jG{1,2,…,叫},"FID"表示文件M的唯一标识;通过上述计算,用户生成一 个同态标签集合T= {T。.IiG{1,2,…,s},jG{1,2,…,叫}}。
[0017] (3)用户构造Merkle化sh树并计算根结点R,然后计算R的签名〇K||?;用户将 (M,T,N,0…piJ发送给云服务提供商,其中集合N= {ni,n2,…,nJ表示每个数据分区的数 量。
[001引 (4)云服务提供商构造Merkle化sh树并且计算根结点R';使用R'验证签名 0是否有效,如果签名有效,就将T、M和kUu. 存储在云服务器,否则将拒绝用户的 存储请求。
[0019] 3.云端数据完整性审计阶段;(1)审计者选择集合{1,2,…,s}的一个子集I= (si,S,,…,S。},并选择一个随机数AeZ;:;将挑战集合C= (I,k)发送给云服务提供商。
[0020] 似云服务提供商接收到挑战集合后,为每个1GI和jG{1,2,…,叫}的 数据块计算一个系数ay=fkO),其中函数fO是一个伪随机函数;CSP计算聚合的 W=茲。~和a=雨。TT;Liir' ;记第1个叶结点的辅助路径为Ki,那么辅助信息可W被 表示成A= (vi,Ki}iei;将证据P= {m,0,A}发送给审计者。
[002U (3)审计者使用I和A构造Merkle化sh树的叶结点,然后构造Merkle化sh树并 计算根结点R",使用R"验证签名0K||?是否有效;如果签名无效,系统将输出"0"并退 出;否则审计者为每个1eI和je{1,2,…,nj的数据块计算一个系数ay=fk(j);验证 下面的等式如',各塔(取,,巧11&仍01|/||,'4尸'"'",如)是否成立;如果等式成立,系统输出"1", 否则系统输出"0"并退出。
[0022] 4.动态更新云端数据阶段;(1)如果用户想要更新存储在云服务器的个人数据, 那么就需要用户将更新请求消息发送给云服务提供商。
[002引 似当云服务提供商接收到消息后,就将响应消
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1