1.一种抗密钥泄露的云存储数据完整性验证方法,其特征在于,包括以下步骤:步骤1:系统建立,生成公开参数;
步骤2:客户生成两组密钥对,一组用于生成数据块标签,一组用于生成文件标签;
步骤3:客户为外包到云存储中的数据生成数据块标签和文件标签,然后将数据块及数据块标签上传到云存储中,并将文件标签发送给验证者;
步骤3具体如下:
步骤3‑1:客户首先将外包数据 分割成 个数据块,表示为 ,其中每个数据块 ;客户设置密钥更新的时间周期为 并基于 和客户身份标识 计算得到 ;接着,客户随机选择整数 ,计算得到 ;
步骤3‑2:客户为数据块 计算验证标签为: ;利用该公式客户计算出所有数据块标签的集合: ;客户将 上传到云存储服务器中保存;
步骤3‑3 :客 户使用签名算法 及密钥对 计算文件标 签: ,其中 为数据 的唯一标识;客户将 发送给第三方验证者;验证者利用 验证文件标签的合法性,如果合法则将其留存,否则要求客户重新发送;
步骤4:客户不定期更新私钥,以抵抗密钥泄露攻击;
步骤4具体如下:
客户初始私钥 的生成时间是 ,那么在第 个时间周期 时,客户私钥更新为: ;
步骤5:客户生成标签更新密钥,用于更新云存储中的数据块标签;
步骤5具体如下:
步骤5‑1:客户生成新的私钥后,原云存储中的数据块验证标签需要同步更新,以确保数据完整性的验证功能是正常的;假设在前一个周期 时客户的私钥为 ,在当前时间周期 时客户的私钥更新为 ,那么数据块更新密钥计算为: ;客户将数据块更新密钥 发送给云服务器;
步骤6:云服务器利用数据块更新密钥 ,将原数据标签更新;
步骤6具体如下:
步骤6‑1:收到数据块更新密钥后,云服务器利用数据块的原数据标签计算得到新的标签;假设在时间周期 时数据块 的标签为 ,在当前时间周期 时数据块的标签为;利用该公式,云存储服务器将所有的数据块标签更新;
步骤7:验证者挑战云存储服务器上的数据是否完好如初,具体如下:验证者在时间周期 时挑战数据完整性,验证者选择两个随机数 ,同时设置要挑战的数据块数量 ;验证者将挑战信息 发送给云存储服务器;
步骤8:云服务器接收到验证者的挑战信息后,为挑战的数据块生成完整性证据,并将证据返回给验证者检查数据的完整性;
云服务器利用伪随机置换函数计算得到挑战的数据块索引集合:, 同时利用伪随机函数计算得到随机系数集合: ;然后,云服务器计算完整性证据为: ,并将 发送给验证者;
步骤9:验证者接收到证据后,对证据进行验证,并根据验证结果判定数据是否完好如初。
2.根据权利要求1所述的一种抗密钥泄露的云存储数据完整性验证方法,其特征在于,步骤1具体如下:步骤1‑1:设定系统安全参数,随机选择一个大素数 ,满足 ;
步骤1‑2:选择 和 两个阶为 的乘法循环群,是群 的生成元, 是双线性映射;选择三个不同的Hash函数 , 和 ,以及一个伪随机置换和一个伪随机函数 ;输出系统公开参数 。
3.根据权利要求1所述的一种抗密钥泄露的云存储数据完整性验证方法,其特征在于,步骤2具体如下:步骤2‑1:客户设定生成首个私钥 的时间是 ;客户随机选择一个整数 ,将其设置为初始私钥 ;客户计算公钥 ,得到密钥对 ;
步骤2‑2:客户随机选择一个签名算法 ,并生成相应的密钥对 。
4.根据权利要求1所述的一种抗密钥泄露的云存储数据完整性验证方法,其特征在于,步骤9具体包括:步骤9‑1:验证者首先计算从初始时间 到当前时间 的周期数,也即客户私钥更新的次数: ;然后伪随机置换函数计算得到挑战的数据块索引集合:,利用伪随机函数计算得到随机系数集合: ;
步骤9‑2:验证者验证公式 是否
成立,成立说明数据是完整的,否则说明数据不完整;
步骤9‑3:验证者将验证结果如实反馈给客户,客户根据验证结果处理后续事情。