«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (12): 150-156, 192  DOI: 10.19678/j.issn.1000-3428.0056369
0

引用本文  

杨小东, 裴喜祯, 陈桂兰, 等. 支持用户撤销的多用户多副本数据公开审计方案[J]. 计算机工程, 2020, 46(12), 150-156, 192. DOI: 10.19678/j.issn.1000-3428.0056369.
YANG Xiaodong, PEI Xizhen, CHEN Guilan, et al. Multi-User and Multi-Replica Public Data Audit Scheme Supporting User Revocation[J]. Computer Engineering, 2020, 46(12), 150-156, 192. DOI: 10.19678/j.issn.1000-3428.0056369.

基金项目

国家自然科学基金(61662069);中国博士后科学基金(2017M610817);甘肃省高等学校创新能力提升项目(2019A-006);兰州市科技计划(2013-4-22);西北师范大学青年教师科研能力提升计划(WNU-LKQN-14-7)

作者简介

杨小东(1981-), 男, 教授、博士, 主研方向为云计算安全;
裴喜祯, 硕士研究生;
陈桂兰, 硕士研究生;
王美丁, 硕士研究生;
王彩芬, 教授、博士

文章历史

收稿日期:2019-10-22
修回日期:2019-12-18
支持用户撤销的多用户多副本数据公开审计方案
杨小东 , 裴喜祯 , 陈桂兰 , 王美丁 , 王彩芬     
西北师范大学 计算机科学与工程学院, 兰州 730070
摘要:用户将海量数据存储于云服务器以节省本地存储空间,然而云存储存在数据丢失或损坏的风险,现有审计方案虽能进行云端数据完整性验证,但主要用于单用户单副本环境,不支持用户撤销且数据动态更新计算开销较大。针对该问题,基于秘密共享技术和多分支路径树,提出一种多用户多副本云端数据公开审计方案。引入代理重签名算法实现用户安全撤销功能,利用多分支路径树完成云端数据的修改、插入和删除等动态更新,并对该方案的安全性和计算效率进行分析。实验结果表明,该方案满足审计的健壮性并能抵抗云服务器和被撤销用户的合谋攻击,与同类多副本数据完整性方案相比,在签名和挑战响应阶段具有较高的计算效率。
关键词云存储    基于身份的密码系统    用户撤销    数据动态更新    多分支路径树    
Multi-User and Multi-Replica Public Data Audit Scheme Supporting User Revocation
YANG Xiaodong , PEI Xizhen , CHEN Guilan , WANG Meiding , WANG Caifen     
College of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070, China
Abstract: Cloudstorage can help save local storage space when dealing with massive data, but increases the risk of data loss or damage.Although the existing audit schemes can verify the integrity of cloud data, it is mainly used in single-user single-replica environment, and does not support user revocation.Also, the calculation cost of dynamic data update is high.To solve the problem, this paper proposes a multi-user and multi-replica public audit scheme for cloud data based on secret sharing technology and multi-branch path tree.The scheme introduces the proxy re-signature algorithm to realize the secure user revocation function, and uses the multi-branch path tree to dynamically update cloud data, including modification, insertion and deletion.The security and computational efficiency of the scheme are analyzed.Experimental results show that the proposed scheme satisfies the robustness requirements of audit and can resist the collusion attacks of cloud server and revoked users.Compared with the similar multi-replica data integrity schemes, the proposed scheme has higher computational efficiency in the signature and challenge response phase.
Key words: cloud storage    identity-based cryptosystem    user revocation    dynamic data update    multi-branch path tree    
0 概述

随着云存储技术的快速发展, 越来越多用户将数据存储于云服务器以节省本地存储空间。然而数据外包到远程平台后用户将失去对数据的实际控制[1], 且由于存在硬件故障、软件错误以及管理员操作失误等不可抗因素, 用户数据有丢失或损坏的风险, 因此如何保证用户外包数据的完整性成为近年来云计算安全研究的热点[2-4]

文献[5]提出一种数据可恢复性证明(Proofs of Retrievability, PoR)方案, 用户能对外包数据进行完整性验证, 但该方案验证次数受到限制。文献[6]利用短签名构造出有效的PoR方案, 可解决验证次数受限的问题, 但该方案不支持数据动态操作。文献[7]基于改进认证跳表提出支持全动态更新的数据持有性证明(Provable Data Possession, PDP)方案, 但该方案认证过程较长且需大量的计算与通信开销。文献[8]基于Merkel哈希树(Merkel Hash Tree, MHT)提出支持动态更新的数据完整性验证方案, 但其中树的深度会随数据增多呈指数增长, 且数据动态更新的计算开销较大。文献[9]基于多分支路径树提出云端数据公开审计方案, 但其不支持数据隐私保护。上述方案均是对单用户的数据完整性进行验证, 未考虑群用户共享数据的公共审计。针对该情况, 研究人员相继提出基于环签名、群签名等多用户公开审计方案[10-12], 但这些方案均不能抵抗合谋攻击且不支持数据动态更新。文献[13]使用代理重签名技术设计出支持用户撤销的云端数据完整性验证方案, 但该方案无法抵抗合谋攻击。文献[14]利用秘密共享技术提出支持用户撤销的数据完整性验证方案, 然而该方案未考虑数据动态更新。以上方案均未对重要数据进行备份存储, 一旦数据丢失会造成重大经济损失。为提高数据存储的可靠性, 通常采用在云中存储多个数据副本的方法。文献[15]设计出基于多副本的云端数据完整性验证方案, 但该方案不支持数据动态操作。文献[16-18]提出不同的云端多副本数据完整性验证方案, 但这些方案仍无法支持用户撤销且计算效率较低。文献[19-20]分别设计出多副本数据完整性验证方案, 但方案中树的深度会随数据块增多呈指数增长, 导致数据动态更新需较大的计算开销。

为支持用户撤销并减少数据动态更新计算开销, 本文提出一种基于身份的多用户多副本云端数据公开审计方案。利用秘密共享技术和重签名算法实现用户安全撤销, 通过多分支路径树进行数据动态更新, 并对该方案的安全性和不同阶段的计算开销进行分析。

1 困难性问题

离散对数(Discrete Logarithm, DL)问题, 即假设G1是阶为素数q的循环群, gG1的生成元, a, b$\mathbb{Z}$q*, 给定(g, ga)∈G1, 计算a$\mathbb{Z}$q*

定义1(DL假设)  如果任意多项式时间算法无法解决群G1上的DL问题, 则称G1上的DL问题是困难的。

2 多用户多副本数据公开审计方案 2.1 系统模型

图 1为本文所提支持用户撤销的多用户多副本数据公开审计方案的系统模型, 该模型主要包括以下方面:1)群用户(Users)负责生成数据的标签, 上传数据到云服务器并对云端数据进行动态更新; 2)私钥生成中心(Private Key Generator, PKG)负责生成系统参数和用户私钥; 3)第三方审计员(Third Party Auditor, TPA)负责验证云端数据完整性并将结果发送给用户; 4)云服务提供商(Cloud Server Provider, CSP)负责存储用户数据及标签, 并响应TPA的数据验证请求与转换被撤销用户的签名; 5)代理者(Proxies)负责生成重签名份额并发送给云服务提供商。

Download:
图 1 本文方案的系统模型 Fig. 1 System model of the proposed scheme
2.2 方案描述

本文方案具体介绍如下:

1) 系统初始化

输入安全参数K, PKG执行如下操作:

(1) 随机选择阶为p>2K的乘法循环群G1G2G1的生成元g、双线性映射e:G1×G1G2、抗碰撞哈希函数H1:{0, 1}*$\mathbb{Z}$p*H2:{0, 1}*G1、伪随机函数f1:$\mathbb{Z}$p×{0, 1}n1×{0, 1}n2×{0, 1}s$\mathbb{Z}$p以及f2:$\mathbb{Z}$p×{0, 1}n1×{0, 1}n2$\mathbb{Z}$p、伪随机置换π:$\mathbb{Z}$p*×{0, 1}n1×{0, 1}n2→{0, 1}n

(2) 随机选取x$\mathbb{Z}$p*作为主私钥, 计算Y=gx作为主公钥。

(3) 秘密保存主私钥, 公开系统参数params={G1, G2, p, g, e, H1, H2, f1, f2, π, Y}。

2) 密钥生成

为生成用户身份IDi的私钥, PKG随机选择ri$\mathbb{Z}$p*, 计算Di=gri和ski=ri+xH1(IDi, Ri), 将私钥Si=(Ri, ski)通过秘密通道发送给用户。

3) 私钥分发

用户收到PKG发送的私钥Si后执行如下操作:

(1) 验证等式gski=RiYH1(IDi, Ri)是否成立, 若等式成立, 则用户接受私钥, 否则用户拒绝。

(2) 随机选取at$\mathbb{Z}$p*t=1, 2, …, k, k-1, 构建插值多项式L(x)=1/ski+a1x+a2x+…+akxk+ak-1xk-1, 其中L(0)=1/ski

(3) 选择n1个不同的随机值xk$\mathbb{Z}$p*, k=1, 2, …, n1, 计算秘密值份额yk=L(xk)并发送(xk, yk)给用户Uk

4) 副本数据块生成

为生成副本数据块, 用户执行如下操作:

(1) 使用对称加密算法(如AES算法)对文件F加密得到密文数据, 将密文数据分块处理得到mij$\mathbb{Z}$p(1≤in1, 1≤jn2)。

(2) 选取1个随机值τi$\mathbb{Z}$p*, 计算miju=mij+f1τi(iju), 其中u=0, 1, …, s, f1为伪随机函数, 用户得到副本数据块miju={mij0, mij1, …, mijs}, 其中u=0时该副本数据块代表原始数据块mij

5) 数据上传

为生成多分支路径树根节点的签名和每个数据块mij的标签, 用户执行如下操作:

(1) 计算每个副本数据块miju的哈希值H2(miju)=H2(IDiumiju), 利用副本数据块的哈希值构造1棵多分支路径树Ti, 其结构如图 2所示。

Download:
图 2 多分支路径树结构 Fig. 2 Multi-branch path tree structure

图 2中多分支路径树的叶子节点构造为1棵子树, 子树的根节点代表原始数据块, 叶子节点代表副本数据块。假设多分支路径树的深度为l、出度为v, 数据块的副本数量为s。在构造多分支路径树过程中, 将H2(mij1)保存在第j个数据块第1个叶子节点, H2(mij2)保存在第j个数据块第2个叶子节点, H2(mijs)保存在第j个数据块第s个叶子节点, H2(mij1), H2(mij2), …, H2(mijs)保存在节点mij, 其哈希值为H2(mij)=H2(H2(mij1)‖H2(mij2)‖…‖H2(mijs))。以此类推, 节点Ak的哈希值为H2(Ak)=H2(H2(mij)‖H2(mij+1)‖H2(mij+v-1)), 根节点Ri的哈希值为H2(Ri)=H2(H2(A1)‖H2(A2)‖…‖H2(Av))。为使CSP快速检索到目标数据块, 树中每个节点存储其对应的哈希值和秩值r[9], 其中秩值r表示从当前节点向下检索能到达的原始数据块数量, 原始数据块和副本数据块的秩值r默认为0。在多分支路径树中, 认证路径是指从目标节点到根节点路径中的节点集合, 辅助信息指认证路径上所有兄弟节点的集合。利用节点的辅助信息可重构多分支路径树, 从而计算根节点的值。以副本数据块mij1为例, 其认证路径为{mij, Ak}, 辅助信息为Ωij1={mij2, …, mijs, mij+1, …, mj+v-1, A1, A2, …, Ak-1, Ak+1, …, Av}。

(2) 计算根节点Ri的签名IDS(Ri)=H2(Ri)ski

(3) 选择1组随机数{tu$\mathbb{Z}$q*|u=0, 1, …, s}, 计算wu=gtu, σij=(H2(idj${{g}^{\sum\limits_{u=0}^{s}{{{t}_{u}}m_{ij}^{u}}}}$)ski, 其中idj= name‖ij是数据块mij的标识, 数据标签集合为ϕ={σi1, σi2, …, σin2}。

(4) 将{{H2(miju)}, IDS(Ri), ϕ}发送给CSP, 同时删除本地数据文件。

(5) CSP收到用户上传数据后, 验证根节点签名的正确性, 若等式e(IDS(Ri), g)=e(H2(Ri), RiYH1(IDi, Ri))成立, 则根节点签名有效, 保存用户上传的数据。

6) 重签名

若要撤销群中用户Ua, 则需将用户Ua的签名转换为用户Ub的签名, 群用户产生重签名密钥份额发送给代理者, 代理者产生代理重签名份额发送给CSP, CSP产生重签名, 具体步骤如下:

(1) CSP选取1个随机数R$\mathbb{Z}$p*发送给用户Ub, 用户Ub收到R后, 计算skb/R并发送给群组用户。

(2) 对于群中每个用户, 给定skb/R和用户Ua的私钥份额(xk, yk), 用户计算r′ab=yk·skb/R作为重签名密钥份额发送给代理者, 并将pk=gr′ab作为公钥发送给CSP。

(3) 假设用户Ua对数据块maj的签名为σaj, 代理者验证e(σaj, g)=e(H2(IDj${{g}^{\sum\limits_{u=0}^{s}{{{t}_{u}}m_{aj}^{u}}}}$, RaYH1(IDa, Ra))是否成立, 若等式成立, 则签名有效, 计算重签名份额σ′ab=σar′ab并发送(xk, σ′ab)给CSP。

(4) CSP验证e(σar′ab, g)=e(σa, pk)是否成立, 若等式成立, 则重签名份额有效。当CSP得到至少k个重签名份额时, 可通过L(x)=$\sum\limits_{i=1}^{k}{{{y}_{i}}{{\lambda }_{i}}}$(x)重构用户Ua的秘密值1/ska, 其中λi(x)=$\prod\limits_{j=1, j\ne i}^{k}{\frac{x-{{x}_{j}}}{{{x}_{i}}-{{x}_{j}}}}$。本文定义得到的重签名份额集合为φ, CSP计算重签名为σab=${{\prod\limits_{k\in \varphi }{\left( {{{{\sigma }'}}_{a\to b}} \right)}}^{{{\lambda }_{k}}\left( 0 \right)\cdot R}}$

7) 挑战信息生成

为生成挑战信息, 用户执行如下操作:

(1) 若用户Ui要验证存储在CSP上数据块及其副本的完整性, 则可发送请求给TPA。

(2) 若TPA要验证C个数据块及其副本的完整性, 则可随机选择κ1, κ2$\mathbb{Z}$q*并发送挑战信息chal=(C, κ1, κ2)给CSP。

8) 证据生成

CSP收到TPA发送的挑战信息chal后, 执行如下操作:

(1) 计算sj=πκ1(i, j)和aj=f2κ2(i, j)。

(2) 在多分支路径树中, 找到被检索数据块对应的副本数据块{misju}1≤jc, 1≤us, 记录该节点的辅助信息{Ωisju}1≤jc

(3) 计算$\sigma =\prod\limits_{C}{\sigma _{i{{s}_{j}}}^{{{a}_{j}}}}$${{\varphi }^{u}}=\sum\limits_{j=1}^{c}{{{a}_{j}}m_{i{{s}_{j}}}^{u}}$, 其中u=0, 1, …, s

(4) 发送proof={{φu}, σ, {H2(misju), Ωisj}1≤jc, {IDS(Ri)}}给TPA。

9) 证据验证

TPA收到CSP发送的证据proof后, 执行如下操作:

(1) 利用辅助信息{H2(misju), Ωisju}1≤jc生成每个根节点Ri, 验证e(IDS(Ri), g)=e(H2(Ri), RiYH1(IDi, Ri))是否成立, 若有1个根节点等式不成立, 则输出FALSE, 否则执行下一步。

(2) 继续验证等式$e\left( \sigma , g \right)=e\left( \prod\limits_{C}{\sigma _{i{{s}_{j}}}^{{{a}_{j}}}, g} \right)=\prod\limits_{i=1}^{{{n}_{1}}}{e\left( \prod\limits_{j=1}^{c}{{{H}_{2}}\left( \text{I}{{\text{D}}_{j}} \right){{g}^{\sum\limits_{u=1}^{s}{{{t}_{u}}{{\varphi }^{u}}}}}}, {{R}_{i}}{{Y}^{{{H}_{1}}\left( \text{I}{{\text{D}}_{i}}, {{R}_{i}} \right)}} \right)}$是否成立, 若等式成立, 则数据完整, 将验证结果返回给用户。

2.3 数据动态更新

数据动态更新包括数据块的修改、插入和删除。

2.3.1 数据块修改

用户Ui为将数据块mij修改为数据块m′ij, 生成数据块m′ij的标签σ′ij=e(H2(idj${{g}^{\sum\limits_{u=1}^{s}{{{t}_{u}}m{{_{ij}^{u}}^{\prime }}}}}$, 将修改信息Modify=(j, {miju}, s′, σ′ij)发送给CSP。CSP收到请求后, 执行如下操作:

1) 利用e(σ′ij, g)=e(H2(idj${{g}^{\sum\limits_{u=1}^{s}{{{t}_{u}}m{{_{ij}^{u}}^{\prime }}}}}$, RiYH1(IDi, Ri))验证数据块标签的有效性, 若等式成立, 则σ′ij有效, 执行下一步, 否则输出FALSE。

2) 利用H2(miju)替换多分支路径树第j个数据块第u个副本节点的值, 更新第j个数据块的签名为σ′ij, 并更新该数据块遍历路径上节点的哈希值与秩值, 生成新的根节点R′i

3) 生成修改操作证明proof={{Ωiju, H2(miju)}, IDS(Ri), R′i}发送给用户。

用户收到CSP发送的证明proof后, 执行如下操作:

(1) 利用e(IDS(Ri), g)=e(H2(Ri), RiYH1(IDi, Ri))验证根节点签名的正确性, 若等式不成立, 则输出FALSE, 否则继续验证。

(2) 利用{Ωiju, H2(miju)}生成树的根节点R″i, 验证R″iR′i是否相等, 若相等, 则数据修改成功, 否则修改失败。

(3) 对新的根节点R′i生成签名IDSski(H2(R′i)), 并将签名信息IDSski(H2(R′))发送给CSP, 完成修改操作。

以上数据块修改操作完成后, 得到的多分支路径树结构如图 3所示。

Download:
图 3 修改数据块后的多分支路径树结构 Fig. 3 Multi-branch path tree structure after modifying data block
2.3.2 数据块插入

用户UI需在数据块mij后插入新数据块mijt。与修改操作类似, 用户生成数据块mijt的标签σijt, 将插入信息Insert=(j, (mijut), st, σijt)发送给CSP。CSP收到请求后, 先验证数据块标签的有效性, 再生成1个新子树, 通过数据块mij与新子树的根节点生成1个新中间节点, 用新中间节点替换该数据块, 最后生成新根节点Rit。用户收到修改操作证明后, 生成新根节点签名并发送给CSP, 完成数据的插入操作。以上数据块插入操作完成后, 得到的多分支路径树结构如图 4所示。

Download:
图 4 插入数据块后的多分支路径树结构 Fig. 4 Multi-branch path tree structure after inserting data block
2.3.3 数据块删除

用户Ui需删除数据块mij。与修改操作类似, 用户生成数据块mij的标签σij, 将删除信息Delete=(j, {miju}, s, σij)发送给CSP。CSP收到请求后, 先验证数据块标签的有效性, 再删除第j个原始数据块及其副本节点, 最后生成新根节点R′i。用户收到删除操作证明后, 生成新根节点签名发送给CSP, 完成数据的删除操作。以上数据块删除操作完成后, 得到的多分支路径树结构如图 5所示。

Download:
图 5 删除数据块后的多分支路径树结构 Fig. 5 Multi-branch path tree structure after deleting data block
3 安全性分析

定理1  本文方案满足抗合谋攻击性, 即能够抵抗云服务器和已撤消用户的合谋攻击。

证明  本文方案满足抗合谋攻击性的证明过程如下:使用秘密分割技术[21]将用户的秘密值1/ski分为n份分发给群用户。CSP必须联合至少k个群成员才能恢复得到重签名密钥。若群用户中至少有k+1个成员可信, 则本文方案可抵抗来自云服务器和已撤销用户的合谋攻击, 实现安全撤销。因此, 本文方案满足抗合谋攻击性。

定理2  如果DL假设成立, 则本文方案满足审计的健壮性, 即只有CSP基于正确数据产生的完整性证明proof才可通过TPA验证。

证明  本文方案满足审计健壮性的证明过程如下:

如果CSP基于损坏文件产生的证明proof通过了TPA验证, 则DL问题将以不可忽略的概率被成功求解。给定(b1, b2)∈G1, 令b2=b1x, 由于CSP的目标是求解x, 因此其与TPA进行交互:TPA发送1个挑战质询给CSP, CSP利用存储的数据产生完整性证明并发送给TPA。CSP基于正确的数据M产生完整性证明proof={φ, σ}, 其满足式(1):

$ \begin{align} & e\left( \sigma , g \right)=e\left( \prod\limits_{C}{\sigma _{i{{s}_{j}}}^{{{a}_{j}}}, g} \right)= \\ & \prod\limits_{i=1}^{{{n}_{1}}}{e\left( \left( \prod\limits_{j=1}^{c}{{{H}_{2}}\left( \text{i}{{\text{d}}_{j}} \right){{g}^{\sum\limits_{u=0}^{s}{{{t}_{u}}{{\varphi }^{u}}}}}} \right), {{R}_{i}}{{Y}^{{{H}_{1}}\left( \text{I}{{\text{D}}_{i}}, {{R}_{i}} \right)}} \right)} \\ \end{align} $ (1)

假设CSP基于损坏数据M′(M′M)伪造的完整性证明proof={φ*, σ*}也能通过验证, 则其满足式(2):

$ \begin{align} & e\left( {{\sigma }^{*}}, g \right)=e\left( \prod\limits_{C}{\sigma _{i{{s}_{j}}}^{{{a}_{j}}}, g} \right)= \\ & \prod\limits_{i=1}^{{{n}_{1}}}{e\left( \left( \prod\limits_{j=1}^{c}{{{H}_{2}}\left( \text{i}{{\text{d}}_{j}} \right){{g}^{\sum\limits_{u=0}^{s}{{{t}_{u}}{{\varphi }^{*u}}}}}} \right), {{R}_{i}}{{Y}^{{{H}_{1}}\left( \text{I}{{\text{D}}_{i}}, {{R}_{i}} \right)}} \right)} \\ \end{align} $ (2)

根据式(1)、式(2)以及双线性映射性质可得到$\prod\limits_{u = 0}^s {w_u^{{\varphi ^u}}} = \prod\limits_{u = 0}^s {w_u^{{\varphi ^{*u}}}} \Rightarrow \prod\limits_{u = 0}^s {w_u^{\Delta {\varphi ^u}}} = 1$, 其中Δφ=φ-φ*。CSP随机选取xu, yu$\mathbb{Z}$p*, 令wu=b1xub2yu, 得到如下表达式:

$ \begin{align} & \prod\limits_{u=0}^{s}{w_{u}^{\Delta {{\varphi }^{u}}}}=\prod\limits_{u=0}^{s}{{{\left( b_{1}^{{{x}_{u}}}b_{2}^{{{y}_{u}}} \right)}^{\Delta {{\varphi }^{u}}}}}= \\ & b_{1}^{\sum\limits_{u=0}^{s}{{{x}_{u}}\Delta {{\varphi }^{u}}}}b_{2}^{\sum\limits_{u=0}^{s}{{{y}_{u}}\Delta {{\varphi }^{u}}}}=b_{1}^{\sum\limits_{u=0}^{s}{{{x}_{u}}\Delta {{\varphi }^{u}}}+x\sum\limits_{u=0}^{s}{{{y}_{u}}\Delta {{\varphi }^{u}}}}=1 \\ \end{align} $ (3)
$ x=\frac{\sum\limits_{u=0}^{s}{{{x}_{u}}\Delta {{\varphi }^{u}}}}{\sum\limits_{u=0}^{s}{{{y}_{u}}\Delta {{\varphi }^{u}}}} $ (4)

由此可知, 解决DL问题必须满足yuΔφu≠0 mod p。由上述假设得到Δφ≠0, 因为yu$\mathbb{Z}$p*, 所以yu=0的概率为1/p, 从而可得攻破DL问题的概率为$1-\frac{1}{p}$, 其中p为大素数。CSP以不可忽略的概率解决了DL问题, 与DL假设矛盾。因此, 只有CSP正确存储用户的数据才可通过TPA验证。

定理3  本文方案满足数据隐私性, 即云服务器无法获得用户的原始数据。

证明  本文方案满足数据隐私性的证明过程如下:用户的原始数据经过加密、分块、随机化处理并上传到云服务器后, 可有效阻止云服务提供商从密文中恢复用户的数据内容。因此, 本文方案满足数据隐私性。

4 性能分析

本文方案与文献[17-19]方案均为多副本数据完整性方案, 以下对这4种方案在采用基于身份的签名、支持数据动态更新、支持用户撤销、抗合谋攻击方面的功能以及通信开销与计算开销进行对比分析。

4.1 功能对比

表 1为本文方案与文献[17-19]方案在采用基于身份的签名、支持数据动态更新、支持用户撤销和抗合谋攻击方面的功能对比情况。由表 1可知:文献[17-19]方案均基于传统公钥密码体制, 存在复杂的证书管理问题; 文献[18]方案不支持数据动态更新; 文献[17]方案虽然采用多分支路径树实现了数据动态更新, 但需要巨大的通信开销; 文献[19]方案采用MHT实现了数据动态更新, 导致树的深度随数据块数量的增加呈指数增长; 文献[17-19]方案不支持用户撤销, 且不能抵抗已撤销用户和云服务器的合谋攻击; 本文方案采用基于身份的签名, 实现了数据动态更新、用户撤销和抗合谋攻击的功能。

下载CSV 表 1 4种方案的功能对比 Table 1 Function comparison of four schemes
4.2 通信开销对比

通信开销主要集中在挑战及其响应阶段, 即TPA向CSP发送挑战信息chal, CSP向TPA返回验证证据proof。表 2为本文方案与文献[17-19]方案的通信开销对比情况。其中, |$\mathbb{Z}$p|表示$\mathbb{Z}$p中元素的大小, |G1|表示G1中元素的大小, s表示副本数量, c表示参加挑战的数据块数量, k表示扇区数量, N表示支持更新的认证数据结构中所有节点数量。由表 2可知, 本文方案在挑战阶段仅需3|$\mathbb{Z}$p|的通信开销, 在挑战响应阶段(证据生成阶段)需N|G1|+s|$\mathbb{Z}$p|+2|G1|的通信开销, 和文献[17-19]方案相比, 本文方案具有较少的通信开销。

下载CSV 表 2 4种方案的通信开销对比 Table 2 Computational overhead comparison of four schemes
4.3 计算开销对比

表 3为本文方案与文献[17-19]方案在签名阶段、证据生成阶段以及证据验证阶段的计算开销对比情况。其中, n表示数据块数量, TexpTmulTaddThashTp分别表示1次幂运算、1次乘法运算、1次加法运算、1次哈希运算、1次双线性配对运算所需的时间。由表 3可知:在签名和证据验证阶段, 本文方案的计算开销与副本数量几乎无关, 而文献[17-19]方案与副本数量线性相关; 在证据生成阶段, 本文方案仅需计算c次取幂运算, 而文献[17-18]方案需进行cs次取幂运算。因此, 和文献[17-19]方案相比, 本文方案具有较高的计算效率。

下载CSV 表 3 4种方案的计算开销对比 Table 3 Computational overhead comparison of four schemes
5 实验结果与分析

对本文方案和文献[17-19]方案进行仿真实验, 对比4种方案在签名阶段、证据验证阶段的计算开销, 并用上述方案在签名阶段、证据验证阶段所用时间作为计算开销的评估指标。实验环境为Intel Core i7-5500U CPU、4 GB内存以及版本号为0.4.7的PBC库。

当用户数据块数量为20、40、60、80、100且每个数据块副本数量为2时, 本文方案和文献[17-19]方案在签名阶段、证据验证阶段的计算开销对比情况分别如图 6图 7所示。可以看出, 随着用户数据块数量的增加, 本文方案和文献[17-19]方案的签名时间和证据验证时间都呈线性增长, 但本文方案相较文献[17-19]方案在这2个阶段所用时间的增幅更小, 因此, 本文方案在签名和证据验证阶段的计算开销更少。当用户数据块数量为50且每个数据块副本数量为2、4、6、8、10时, 本文方案和文献[17-19]方案在签名阶段、证据验证阶段的计算开销对比情况分别如图 8图 9所示。可以看出:随着数据块副本数量的增加, 文献[17-18]方案的签名时间和证据验证时间都呈线性增长, 文献[19]方案的签名时间呈线性增长但增幅大于文献[17-18]方案, 其证据验证时间虽保持恒定但多于本文方案; 本文方案在这2个阶段所用时间最少, 且随着数据块副本数量的增加保持恒定。因此, 和文献[17-19]方案相比, 本文方案在签名和证据验证阶段具有更高的计算效率。

Download:
图 6 4种方案在签名阶段的计算开销随数据块数量的变化情况 Fig. 6 The change of computational overhead of four schemes in the signature phase with the number of data blocks
Download:
图 7 4种方案在证据验证阶段的计算开销随数据块数量的变化情况 Fig. 7 The change of computational overhead of four schemes in the evidence verification phase with the number of data blocks
Download:
图 8 4种方案在签名阶段的计算开销随副本数量的变化情况 Fig. 8 The change of computational overhead of four schemes in the signature phase with the number of copies
Download:
图 9 4种方案在证据验证阶段的计算开销随副本数量的变化情况 Fig. 9 The change of computational overhead of four schemes in the evidence verification phase with the number of copies
6 结束语

本文利用秘密分割思想, 提出一种多用户多副本云端数据公开审计方案, 结合代理重签名算法和多分支路径树进行群组用户安全撤销与云端多副本数据动态更新。安全性分析及实验结果表明, 该方案能抵抗云服务器和被撤销用户的合谋攻击, 有效保护数据的隐私性并满足审计健壮性, 解决基于传统公钥密码系统的证书管理问题, 确保用户数据副本在云端完整存储。后续将设计格上多用户多副本云端数据公开审计方案, 避免方案安全性依赖于数学困难问题, 从而更好地抵抗量子攻击。

参考文献
[1]
BUYYA R, YEO C S, VENUGOPAL S, et al. Cloud computing and emerging IT platforms:vision, hype and reality for delivering computing as the 5th utility[J]. Future Generation Computer Systems, 2009, 25(6): 599-616.
[2]
ATENIESE G, BURNS R, CURTMOLA R, et al.Provable data possession at untrusted stores[C]//Proceedings of the 14th ACM Conference on Computer and Communications Security.New York, USA: ACM Press, 2007: 598-609.
[3]
CACHIN C, KEIDAR I, SHRAER A. Trusting the cloud[J]. ACM SIGACT News, 2009, 40(2): 81-86. DOI:10.1145/1556154.1556173
[4]
REN Kaili, WANG Cong, WANG Qian. Security challenges for the public cloud[J]. IEEE Internet Computing, 2012, 16(1): 69-73. DOI:10.1109/MIC.2012.14
[5]
JUELS A, KALISKI B S.PoRs: proofs of retrievability for large files[C]//Proceedings of the 14th ACM Conference on Computer and Communications Security.New York, USA: ACM Press, 2007: 584-597.
[6]
SHACHAM H, WATERS B.Compact proofs of retrievability[C]//Proceedings of the 14th International Conference on the Theory and Application of Cryptology and Information Security.Berlin, Germany: Springer, 2008: 90-107.
[7]
ERWAY C, KUPCU A, PAPAMANTHOU C, et al.Dynamic provable data possession[C]//Proceedings of the 16th ACM Conference on Computer and Communications Security.New York, USA: ACM Press, 2009: 213-222.
[8]
WANG Qian, WANG Cong, LI Jin, et al.Enabling public verifiability and data dynamics for storage security in cloud computing[C]//Proceedings of ESORICS'09.Berlin, Germany: Springer, 2009: 355-370.
[9]
XIE Sijiang, JIA Bei, WANG He, et al. Proof mechanism of cloud storage big data integrity based on multi-branch path tree[J]. Computer Science, 2019, 46(3): 188-196. (in Chinese)
谢四江, 贾倍, 王鹤, 等. 基于多分支路径树的云存储大数据完整性证明机制[J]. 计算机科学, 2019, 46(3): 188-196.
[10]
WANG Boyang, LI Baochun, LI Hui. Oruta:privacy-preserving public auditing for shared data in the cloud[J]. IEEE Transactions on Cloud Computing, 2014, 2(1): 43-56. DOI:10.1109/TCC.2014.2299807
[11]
WANG Boyang, LI Baochun, LI Hui.Knox: privacy-preserving auditing for shared data with large groups in the cloud[C]//Proceedings of 2012 International Conference on Applied Cryptography and Network Security.Berlin, Germany: Springer, 2012: 507-525.
[12]
WANG Boyang, LI Baochun, LI Hui. Panda:public auditing for shared data with efficient user revocation in the cloud[J]. IEEE Transactions on Services Computing, 2015, 8(1): 92-106. DOI:10.1109/TSC.2013.2295611
[13]
YANG Xiaodong, LIU Tingting, YANG Ping, et al. Integrity verification scheme of cloud data based on proxy re-signature[J]. Computer Engineering, 2018, 44(9): 130-135. (in Chinese)
杨小东, 刘婷婷, 杨平, 等. 基于代理重签名的云端数据完整性验证方案[J]. 计算机工程, 2018, 44(9): 130-135.
[14]
LUO Yuchuan, XU Ming, HUANG Kai, et al. Efficient auditing for shared data in the cloud with secure user revocation and computations outsourcing[J]. Computers and Security, 2018, 73(3): 492-506.
[15]
CURTMOLA R, KHAN O, BURNS R, et al.MR-PDP: multiple-replica provable data possession[C]//Proceedings of the 28th International Conference on Distributed Computing Systems.Washington D.C., USA: IEEE Press, 2008: 411-420.
[16]
LIU C, RANJAN R, YANG C, et al. MuR-DPA:top-down levelled multi-replica Merkle Hash tree based secure public auditing for dynamic big data storage on cloud[J]. IEEE Transactions on Computers, 2015, 64(9): 2609-2622. DOI:10.1109/TC.2014.2375190
[17]
CHA Yaxing.Research on data integrity verification technology in cloud storage environment[D].Beijing: Beijing University of Posts and Telecommunications, 2018.(in Chinese)
查雅行.云存储环境下数据完整性验证技术研究[D].北京: 北京邮电大学, 2018.
[18]
LU Jing, CHEN Yuxiang, TIAN Hui, et al.Improving the security of a public auditing scheme for multiple-replica dynamic data[C]//Proceedings of 2018 International Conference on Algorithms and Architectures for Parallel Processing.Berlin, Germany: Springer, 2018: 185-191.
[19]
LI Jingwei, ZHU Mingdong. MHT-based dynamic data integrity verification and recovery scheme in cloud storage[J]. Application Research of Computers, 2019, 36(7): 2179-2183. (in Chinese)
李敬伟, 朱命冬. 云存储中基于MHT的动态数据完整性验证与恢复方案[J]. 计算机应用研究, 2019, 36(7): 2179-2183.
[20]
PENG Su, ZHOU Fucai, LI Jin, et al. Efficient, dynamic and identity-based remote data integrity checking for multiple replicas[J]. Journal of Network and Computer Applications, 2019, 134(2): 72-88.
[21]
SHAMIR A. How to share a secret[J]. Communications of the ACM, 1979, 22(11): 612-613. DOI:10.1145/359168.359176