1.一种新型面向多数据用户、保护用户隐私的云端数据完整性验证方法,其特征在于,包括以下步骤:步骤1:系统建立阶段生成系统公开参数和主私钥,其具体步骤如下:步骤1‑1:设定系统安全参数k,随机选择一个大素数q,满足|q|=k;
步骤1‑2:选择 和 两个阶为q的乘法循环群,g是群 的生成元, 是双线性映射;选择两个不同的安全Hash函数 和 以及一个伪随机置换 一个伪随机函数
s
步骤1‑3:KGC随机选择 设置主私钥msk=s,计算主公钥为P0=g ;系统公开参数为s
步骤2:User提交自己的身份信息ID到KGC,KGC计算skID=H1(ID)作为用户的私钥,并通过安全信道返回给User;
步骤3:User利用自己的私钥为数据生成数据标签;然后将数据块和标签上传到云存储中,并将它们从本地存储删除;具体如下:步骤3‑1:User将待上传的数据文件F分割成n个数据块表示为F=(m1,m2,…,mn),其中任意的步骤3‑2:User(IDj)按照如下步骤为每一个数据块生成验证标签:(1)User(IDj)选择一个随机数
(2)User(IDj)为数据块mi计算标签 其中Fid为数据的唯一性标识;
(3)User(IDj)计算 并选择一个安全的签名方案Sig,计算得到整个数据文件的签名μj=Sig(Rj||IDj);
步骤3‑3:User(IDj)上传(mi,Ti,j,IDj,Rj,μj)到CSP中,注意其中的(IDj,Rj,μj)与用户相关,因此仅需上传一次;上传完成后将其从本地删除;
步骤4:CSP接收到数据拥有者上传的数据后,首先验证μj=Sig(Rj||IDj)的有效性,如果验证不通过,直接拒绝接收该数据;如果验证通过,则进一步验证公式是否成立;如果成立说明数据与标签是匹配的,那么CSP接收并存储该数据和标签;如果不成立说明标签与数据不匹配,则CSP拒绝接收该数据与标签,并继续检查下一条数据与标签,直至结束;
步骤5:TPA通过挑战CSP来检查上传的数据是否完好如初;具体如下:步骤5‑1:TPA选择两个随机数 同时设置要挑战的数据块数量c∈[1,n];TPA将挑战信息chal=(c,k1,k2)和数据标识Fid发送给CSP;
步骤6:CSP在接收到TPA的挑战信息后,为挑战的数据块生成完整性证据,并将证据返回给TPA以检查数据的完整性;具体如下:步骤6‑1:CSP利用伪随机置换和伪随机函数计算得到挑战集合C={(vi,ai)|i∈[1,c]},其中vi=π(k1,i),ai=φ(k2,i);
步骤6‑2:CSP随机选择 并计算
最后,CSP将元组P=(σ1,σ2,M)作为数据完整性证据返回给TPA;
步骤7:TPA接收到证据后,对证据进行验证,并根据验证结果判定数据是否完好如初;
具体如下:
步骤7‑1:TPA利用伪随机置换和伪随机函数计算得到挑战集合C={(vi,ai)|i∈[1,c]},其中vi=π(k1,i),ai=φ(k2,i);
步骤7‑2:TPA验证公式 是否成立;如果成立表示数据完整,否则表示数据不正确;
步骤7‑3:TPA将验证结果如实反馈给用户;用户根据验证结果处理后续事情。