与POR相似的是,Ateniese等人提出的PDP的模型是使用同态可验证标签,提供了一个RSA算法方案,对不可修改的静态数据能够实现 O(1) 的通讯复杂度[5]。用户对每个文件块生成一个标签,并一起存放在服务器上,要求服务器返回拥有这些文件数据块的证据,由于利用了同态性质,很多标签可以聚合成一个值,可以节省很大一部分的带宽开销。同时他们还提出了一个公开可验证的版本,允许任何人可以向证明者prover发送挑战以实现完整性证明,应用领域更加广阔。不过该方案对于动态数据就很难保证它的安全性。所以后来Erway 等人针对这个问题提出了动态PDP方案[6],更加完善了存储安全证明体系。
在此前工作的基础上,由Shacham和Waters等人还提出了两种机制分别针对私有验证(Private Verifiability)和公开验证(Public Verifiability),称为紧凑可恢复性证明机制 (Compact Proof of Retrievability,CPOR)[7]。这两种POR机制都有如下三个共同优点:一是验证者verifier不必要把验证进程中的验证状态留存下来;二是验证者verifier对远程服务器上存储的数据可以随时发起多次甚至无限次挑战;三是通信消耗小,通过采用Ateniese等人同态验证标签的思想,可将证明简化为更小值。无状态和任意次的挑战验证需要可恢复证明机制支持公开验证,这样,数据持有者就可以放心将文件数据审核的事情交给第三方来处理,大大减轻了数据持有者的验证负担。
来自清华大学的肖达、舒继武等人,于2009年提出了国内第一篇关于数据持有性证明(PDP)的论文,被称为数据持有性检查方案(Data Possession Checking,DPC)[8]。其基本内容是,在一次挑战中,验证者随机指定文件中的某些数据块和一个密钥,服务器便会根据指定内容、用Hash函数算出一个Hash值并把对应的校验块一并返回给验证者,然后由验证者检查是否匹配。同时,他们还提出了一个挑战更新机制,可以动态增加挑战和服务器响应次数。该方案不使用公钥密码系统,且测试结果表明其计算开销将会大大降低。
当POR机制还在在初始化进程的时候,由于数据块参与了容错编码,更新数据块的同时必须把相应的冗余信息修改过,导致可能的计算代价比较高。Wang等人设计实现了第一种支持部分动态操作的POR机制,该机制可以检测到云存储中的数据损坏或者丢失,并确定在云服务器上出错的位置(DPORI) [9]。支持的动态操作包括:修改、删除和追加等三种操作。该POR机制是一种私有验证的机制,并且做数据完整性检测只能执行有限的次数。Chen等人在此基础上,考虑采用Cauchy-Reed-Solomon纠错码来代替DPORI中的Reed-Solomon纠错码,提高抽取审计阶段的运行效率[14]。
综上来看,支持全动态操作的POR机制仍然有待开发研究,这也是POR现在所面临的最大挑战。同时,用户可能会选择多个云服务提供商来存储数据或者备份应用,以此获得更高的安全性和便捷性,那么这种情况下需要深入研究的问题就是如何保证多个云服务提供商所存储的数据是安全而完整的。论文网
2012年,由福建师范大学的陈兰香等人提出了一种基于同态Hash值的PDP方案,验证数据的持有性他们利用的是两数据块之和的Hash值即为它们Hash值的乘积原理[13]。这个方案减少了用户端的计算开销,把很大计算量转移到服务器中,使得用户可以无限次进行检查和挑战。
Goldreich最早提出ORAM(oblivious random access machine),并与Ostrovsky共同提出了对存储器隐藏客户的访问记录模式。随着云计算的发展,ORAM在云存储隐私保护方面也有着重要的应用。
1。4 本文工作