云存储中一种数据软恢复方法与流程

文档序号:11064690阅读:737来源:国知局

本发明涉及云计算、云存储中数据安全和数据验证恢复领域。



背景技术:

随着云技术的发展,企业和个人愈来愈倾向于将数据存储在云端,同时,数据也可以在云端实现共享、方便他人下载。云存储具有空间大,下载数据方便,价格低廉的特点,但是,在多数情况下,云端的数据将受到不安全因素的影响;那么确保数据的安全,以及对损失数据的修复便显得尤为重要。恢复技术能验证不可信的存储服务器是否正确地持有(保存)数据,避免存储服务提供者删除、篡改数据,并确保存储数据的可恢复性。由于云存储是将本地数据存储于非完全可控介质中,因此才存在数据的持有性证明和数据可恢复性证明,如何确保数据的完整性和可恢复性就显得尤为重要。

可恢复数据的安全数据聚集算法,在保护数据隐私以及提供有效的数据完整性和真实性验证基础上,特别设计了数据恢复机制,从而使聚集节点在得到聚集结果的同时,能够精确、有效地恢复聚集前的原始数据。这些原始数据的获得让其他后续聚集操作在执行时,类型不再受限,同时也降低了网络总的能耗开销。



技术实现要素:

针对现有技术的上述不足,本发明提出了云存储中一种数据软恢复方法。

为解决上述问题,本发明提出了以下技术方案:

通过将数据分块后,采用双线性映射加密,然后哈希密文数据块,得到数据的验证标签,将数据存储到服务器节点上,同时将验证标签和数据块的位置信息一起,映射到两个不同的节点上即:遵循数据块i存放的节点上,不存放i的标签,和同一个标签不能存储在一个节点上;当数据验证不通过后,利用数据标签对数据进行恢复,并提出了数据可恢复的情况说明,支持部分数据恢复。其具体实施步骤如下:

步骤1:数据加密,生成数据密钥和公钥。

步骤2:密文验证标签及位置信息生成。

步骤3:数据存储。

步骤4:数据篡改、损坏验证,定位需要恢复的数据块。

步骤5:数据恢复。

本发明的有益效果是:

1、采用双线性哈希的方式,数据验证和恢复时候计算更简单,系统开销更小;

2、与数据备份或副本存储的方式,更加节省存储空间,条件式的储方式,增大了数据恢复的可行性。

具体实施方式

步骤1:数据加密,生成数据密钥和公钥

客户端,用户拥有待上传的数据明文F,首先将数据F分块,即F=(F1,F2,...,Fn),用双线性映射方案对每一个数据块进行加密:

G0是素数阶为p>2λ的双线性群(G0,G1,e,p),g是G0的生成元,双线性映射e:G0×G0→G1,安全参数λ决定群的大小,Zp表示p的整数群,拉格朗日系数其中S是一个整数集合,i∈S。

设:Rand(y1,y2,α),y1、y2、α∈Zp,Rang(g2),g2∈G0,然后再次从G0中选取t1,t2,...,tn+1,令:N={1,2,…,n+1},由拉格朗日定理可知:

其中h(X)为n阶多项式,所以,在密钥中心中产生的公钥PK1为:m=gα,g2,t1,t2,...,tn+1,私钥MK1为y1,y2,α。

步骤2:密文验证标签及位置信息生成

计算得到每个数据块的密文信息,对密文数据块哈希,生成数据验证签名和存储的位置信息:

生成验证标签:

tagi={h(C(Fi)),C(Fi)}

记录存储的位置(location)信息:

步骤3:数据存储

数据块加密完成后,用户将加密结果和公钥发送给云服务商,利用伪随机函数将标签数据映射到服务器节点上,并保存在文件的数据块上,数据标签的存储遵循数据块i存放的节点上,不存放i的标签,和同一个标签不能存储在一个节点上的原则;标签生成算法得到标签tagi后,每一个tagi随机映射到两个存储C(Fi)加密文件块的节点上。这样的话,一是可以防止标签数据被破坏,同时抵制了服务器相互欺骗的风险,二是大大提高了数据恢复的可能性。在保存之前,还需要向将数据进行处理:

T(tagi)=T(Index||h(C(Fi)))

步骤4:数据篡改、损坏验证,定位需要恢复的数据块

当数据属主还以数据被篡改后,可以向服务器发起验证请求,首先用户生成验证(verify)请求,存储时候数据时分散在n个存储节点上的,随机抽取a(1≤a≤n)个数据节点,要求服务器将节点上的数据发送过来。

verify=(a,T,locationi)

用户收到节点发送过来的包含有密文数据块i、两个密文块j的标签信息和位置信息后,由位置信息要求服务器将对应的数据块发送到用户。

(1)获取两个两个指纹标签对应的密文数据块执行解密

T(tagi)=T(Index||h(C(Fi)))求解tagi

tagi=f-1(T=T(Index||h(C(Fi))))

对密文块进行解密

(2)依据tagi计算规则重新计算Fi‘指纹标签值

(3)对两次计算的指纹标签进行对比

如果用户要求服务器返回数据密文的时候,服务器无法返回,则说明节点遭到破坏,数据也更随丢失,如果返回的数据在经过计算后,两次的验证标签不一致,也也说明数据被破坏了,循环计算所有的数据块,返回遭到破坏的数据位置信息和剩余的数据存储信息。

步骤5:数据恢复

经过循环计算后,返回所有遭到破坏的数据信息列表和的数据标签,由于数据密文块只存储于一个节点上,而其验证标签存储在两个节点上,,所以标签遭到破坏的概率远远小于密文块。

(1)对于数据块缺失,标签还在的数据块恢复

(2)对于数据标签缺失的密文数据块,重新计算其标签

tagi`={h(C(Fi)),C(Fi)}

(3)对比密文数据块的标号信息和标签标号信息,如果某个数据块及其对应的两个标签都缺失,则该数据块无法恢复。

对于(1)和(2)所述的情况,数据恢复后,在重新进行上传处理,第(3)所述情况,数据无法恢复,但是由于数据在上传过程中,遵循数据块i存放的节点上,不存放i的标签,和同一个标签不能存储在一个节点上的准则,出现的概率远远低于前两种情况。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1