云存储中数据完整性证明计算机学报数据完整性证明必要性:1、服务提供商不可信2、各类安全攻击分类:数据完整性验证机制根据是否对数据文件采用了容错预处理分为数据持有性证明PDP机制和数据可恢复证明POR机制。数据完整性证明框架1、密钥生成算法2、数据块标签生成算法3、证据生成算法4、证据检测算法*5、更新执行算法*6、更新验证算法密钥生成算法由用户在本地执行。k为安全参数,返回一个匹配的公钥、私钥对(pk,sk)。数据块标签生成算法由用户执行,为每个文件生成同态签名标签集合Φ,作为认证的元数据。该算法输入参数包括私钥sk和数据文件F,返回认证的元数据Φ。证据生成算法由服务器运行,生成完整性证据P。输入参数包括公钥pk、文件F、挑战请求chal和认证元数据集合Φ。返回该次请求的完整性证据P。证据检测算法由用户或可信第三方TPA运行,对服务器返回的证据P进行判断。输入参数为公钥pk,挑战请求chal及P。返回验证成功或失败。更新执行算法由服务器运行,将文件F作为输入,相应标签Φ及数据请求操作Update,输出一个更新文件F′和更新标签集合Φ′,及相对应地更新证据Vupdate。更新验证算法由用户执行,返回更新操作成功或失败。实施数据完整性验证机制在具体实施过程中可以分为两个阶段组成:Setup阶段和Challenge阶段。Setup阶段Setup阶段:初始化阶段。首先,用户运行密钥生成算法生成密钥对(pk,sk);然后,对存储的文件进行分块F=(m1,m2,…,mn);之后,运行数据块标签生成算法为文件中每一个数据块生成同态标签集合Φ;最后,将数据文件F和签名集合Φ同时存入云中,删除本地的{F,Φ}。Challenge阶段Challenge阶段:验证请求阶段。用户或TPA作为验证者,周期性的发起完整性验证。从文件F分块索引集合[1,n]中随机挑取c个块索引{s1,s2,…,sc},并且为每一个索引si选取一个随机数vi,将两者组合一起生成挑战请求chal发送给服务器。服务器作为证明者,根据存储在其服务器上的数据文件{F,Φ},调用证据生成算法生成完整性证据P,返回给验证者.验证者接受证据后,执行证据检测算法验证证据是否正确。数据持有性证明PDP机制现有的PDP机制包括:基于MAC认证码的PDP机制、基于RSA签名的PDP机制、基于BLS签名的PDP机制、支持动态操作的PDP机制、支持多副本的PDP机制及保护隐私的PDP机制等。