删除或更新信息,请邮件至freekaoyan#163.com(#换成@)

跨云存储环境下协同的动态数据持有方案

本站小编 Free考研考试/2020-04-15

曹来成 , 何文文 , 刘宇飞 , 郭显 , 冯涛
兰州理工大学 计算机与通信学院, 兰州 730050

收稿日期:2016-12-18
基金项目:国家自然科学基金资助项目(61562059,61461027,61462060)
作者简介:曹来成(1965-), 男, 副教授。E-mail:caolch@lut.cn


摘要:为了认证跨云环境下用户数据的完整性,该文提出了一种协同的动态数据持有CDDP(cooperative dynamic data possession)方案。首先,利用分层Hash索引技术,将多个云存储服务提供商的响应消息聚合为一个消息,通过云存储服务提供商、组织者和可信第三方之间的交互通信实现了数据的持有性认证。其次,通过对Hash索引表(index-Hash table)中只涉及更新数据块的索引记录和标签信息的更新,实现了数据修改、数据插入和数据删除等用户数据的动态更新。结果表明:该方案降低了计算时间,具有完备性和抵抗伪造攻击等属性。
关键词:动态数据持有完整性认证动态更新云存储安全
Cooperative dynamic data possession scheme across a cloud storage environment
CAO Laicheng, HE Wenwen, LIU Yufei, GUO Xian, FENG Tao
School of Computer and Communication, Lanzhou University of Technology, Lanzhou 730050, China


Abstract: User data integrity across cloud storage can be verified by a cooperative dynamic data possession (CDDP) scheme presented here. A layered Hash index is used to aggregate the response messages of the cloud storage service providers into one message with the communications among the cloud service providers, the organizer and a trusted third party used to verify the data possession. Dynamic updates of the user data, such as data modifications, data insertions, and data deletions, only require updating of the index records and the data block tags in the index-Hash table. This scheme reduces the computation times and resists forgery attacks.
Key words: dynamic data possessionintegrity verificationdynamic operationscloud storage security
云计算作为全新的计算模式,被普遍认为是继互联网后的又一个IT产业增长点和技术变革[1]。混合云计算模式是未来云计算发展的趋势,它至少由一个公有云和一个私有云构成。在混合云存储环境下,一个云存储服务提供商充当组织者,能够管理并提供内外部资源。除此之外,混合云还可以平衡负载,在事务处理失败后,可以自动重新部署事务的处理逻辑。然而,由于数据脱离了用户的物理控制而存储在云端,云存储服务提供商可能为了自己的利益,隐瞒用户数据的错误或者丢失等信息。更有甚者,他们可能为了节省云存储空间而删除很少被用户访问的存储数据。于是,许多用户可能会因为云存储的数据不完整性等安全问题,对使用云存储服务持怀疑态度。
因此,如何认证跨云存储环境下客户数据的完整性(数据持有性),是一个亟待解决的问题。为了解决该问题,Zhu等[2-3]提出混合云存储环境下协同的可证明数据持有方案(cooperative provable data possession, CPDP),该方案的认证协议类似于经典的Schnorr协议[4],利用分层Hash索引(Hash index hierarchy, HIH)和同态认证响应(homomorphic verifiable response, HVR)等技术达到混合云存储环境下的数据持有性证明。该方案里公开认证信息被存储到可信第三方(trusted third party, TTP),其中一个云存储服务提供商充当组织者,主要负责与可信第三方直接通信。客户向多个云存储提供商发起挑战,利用在可信第三方存储的公开信息认证外包数据的完整性。该方案利用同态响应技术将多个云存储服务提供商的响应证据聚合为一个认证值。然而,该方案存在一些安全漏洞[5]:恶意云存储服务提供商或者组织在无用户数据的前提下,能伪造正确的响应消息欺骗认证者。
文[6]利用分层Hash索引和同态认证响应技术,对Zhu方案进行了改进,提出一个改进的协同的可证明数据完整性持有方案,能够抵抗云服务提供商的伪造攻击,但是该方案不支持数据块的动态更新。
Wang等[7]提出了一种基于身份的分布可证明数据完整性持有方案(identity-based distributed provable data possession in multicloud storage),利用CDH(computation Diffie-Hellman)问题求解困难这一属性,来保证该方案的安全性。此外,该方案还支持授权认证、私人认证、基于用户授权的公开认证,但是该方案不支持数据的动态更新。
本文利用分层Hash索引和双线性映射系统,借鉴文[2, 6]提出一个可以抵抗云存储服务提供商伪造攻击的协同动态数据持有CDDP(cooperative dynamic data possession)方案。首先引入了Hash索引表,然后通过对该Hash索引表进行改进,使CDDP方案支持动态更新操作。
1 技术架构1.1 认证架构本文的CDDP认证架构由4个实体构成,如图 1所示。表 1是CDDP方案所用符号的说明。
图 1 CDDP认证架构
图选项





表 1 符号及含义
符号 含义
n 文件中数据块的数量
c 云存储服务提供商的数量
F 文件,被划分为n个数据块
P 云存储服务提供商的集合, P={Pk|k=1, 2, …, c}
Pk 编号为k的云存储提供商,PkP
Q 挑战索引系数组成的集合,Q={vi|i=1, 2, …, n}
Qk Pk的挑战索引系数集
级联运算


表选项






1) 用户(user):需要将大量的数据存储在混合云(包括公有云和私有云)中并进行维护的客户。
2) 云存储服务提供商(cloud service providers, CSPs):具有海量存储空间和巨大计算能力,并且能协同地为客户提供数据存储服务的云存储服务提供商集合。
3) TTP:进行完整性认证和具有认证信息备份功能的实体。
4) 组织者(organizer):CSPs中一个云存储服务提供商,管理其他云存储服务提供商,且与可信第三方直接通信。
1.2 双线性映射系统设p是大素数,G0G是阶均为p的乘法循环群,称映射e: G0×G0G为一个双线性对,且映射e满足下述性质。
1) 双线性:对于任意α, βZph, gG0,都有
$e\left( {{h^\alpha },{g^\beta }} \right) = e\left( {h,g} \right)\alpha \beta .$ (1)
对于任意h1, h2, gG0,有
$e\left( {{h_1},{h_2},g} \right) = e\left( {{h_1},g} \right)e\left( {{h_2},g} \right).$ (2)
对于任意h, g1, g2G0,有
$e\left( {h,{g_1}\;{g_2}} \right) = e\left( {h,{g_1}} \right)e\left( {h,{g_2}} \right).$ (3)
2) 非退化性:e(h, g)=1除非h=1或者g=1。
3) 可计算性:存在有效的多项式时间算法,对任意的h, gG0,计算e(h, g)的值。
满足上述条件的四元组(p, G0, Ge)为双线性映射系统。
1.3 Hash索引表为了支持动态操作,本文引入Hash索引表记录文件块的改变。为了记录数据的变化,表中的每条索引记录${\chi _i} = {B_i}\left\| {{V_i}} \right\|{R_i}\left( {i \in \left\{ {1, 2, \cdots, n} \right\}} \right) $能够产生唯一的Hash值,如表 2所示。其中Biχi中数据块fi的索引值iVi是更新版本号,Ri是一个随机数以避免出现碰撞。尽管重复执行插入、删除操作可能产生相同的BiVi值,但Ri可以避免这一冲突。这些索引记录也用于构造数据块标签ti(i∈{1, 2, …, n})。在初始阶段数据块fi的索引记录χi=(Bi=i, Vi=1, Ri∈{0, 1})。
表 2 Hash索引表
编号 χi Bi Vi Ri
1 χ1 1 1 0
2 χ2 2 1 1
3 χ3 3 1 1
n-1 χn-1 n-1 1 0
n χn n 1 0


表选项






为了支持动态操作,TTP必须利用Hash索引表记录当前文件块的存储状态。
1.4 分层Hash索引借鉴文[1],CDDP方案提出一种改进的分层Hash索引表示客户数据之间的相互关系,由3个层次组成:1) 文件层,产生存储文件名的索引标识;2) 服务层,提供并管理云存储服务提供商的索引标识;3) 存储层,生成存储在不同物理设备上的存储数据块的索引标识。给定Hash函数H(x),例如SHA-1或MD-5, 分层Hash索引的构造如下。
1) 文件层:给定c个秘密随机数o1, o2, …, oc和文件名F,计算
${H_f} = H\left( {{o_1}\left\| {{o_2}} \right\| \cdots \left\| {{o_c}} \right\|F} \right).$ (4)
其中Hf为公开变量。
2) 服务层:给定Hf和云存储服务提供商Pk(k∈{1, 2, …, c})的IDk(identification),计算
${H_{{P_k}}} = H\left( {{H_f}\left\| {{\rm{I}}{{\rm{D}}_k}} \right.} \right).$ (5)
3) 存储层:给定HPk和数据块fi(i∈{1, 2, …, n})的索引记录χi=BiViRi,计算
${H_{i,k}} = H\left( {{H_{{P_k}}}\left\| {{\chi _i}} \right.} \right).$ (6)
2 CDDP方案2.1 数据持有性认证借鉴文[2, 6],CDDP方案的数据持有性认证过程如下。
1) 密钥产生[2]:设(p, G0, G, e)为双线性映射系统,gh是群G0的生成元。由用户选择随机数a, bZp,计算
${H_1} = {h^a},\;\;\;{H_2} = {h^b}.$ (7)
得用户的私钥sku=(a, b),公钥pku=(g, h, H1, H2)。
组织者选择随机数dZp,计算
$D = {g^d}.$ (8)
得组织者的私钥skorg=d,公钥pkorg=(g, D)。
2) 标签产生:文件F分为n个数据块F={fi|i=1, 2, …, n}[2],记存储在云存储服务提供商Pk的数据块集为{fi, k|fi, kF; PkP}(k∈{1, 2, …, c}),用户选择c个秘密随机数o1, o2, …, ocZp,根据式(4) 计算Hfuk,
${u_k} = {g^{{o_k}}} \in {G_0},\;\;\;k \in \left\{ {1,2, \cdots ,c} \right\}.$ (9)
${t_{i,k}} = {\left( {{H_{i,k}}} \right)^a}{\left( {\prod\limits_{k = 1}^c {u_k^{{f_{i,k}}}} } \right)^b},\;\;\;k \in \left\{ {1,2, \cdots ,c} \right\}.$ (10)
其中ti, k为数据块fi, k的标签。用户构造索引表χ={χi|i=1, 2, …, n},记存储在云存储服务提供商Pk的数据块索引集为{χi, k|χi, kχ; PkP},其中χi, k为数据块fi, k的索引,令u=(u1, u2, …, uc),用户把(u, Hf, χ)存储在TTP上,发送F={fi|i=1, 2, …, n}(Pk的数据块集为{fi, k|PkP})和标签集tk至组织者,
${t_k} = \left\{ {{t_{i,k}}\left| {{P_k} \in P} \right.} \right\}.$ (11)
然后组织者分发给各个云存储服务商PkP,用户保存秘密(o1, o2, …, oc),表 3为将f1存储在P1f2f3存储在P2, fn-1fn存储在Pc时对应的数据块、索引号和数据块标签的隶属关系。
表 3 隶属关系
编号 Bi Vi Ri Pk fi fi, k χi χi, k ti, k
1 1 1 0 P1 f1 f1, 1 χ1 χ1, 1 t1, 1
2 2 1 1 P2 f2 f2, 2 χ2 χ2, 2 t2, 2
3 3 1 1 P2 f3 f3, 2 χ3 χ3, 2 t3, 2
n-1 n-1 1 0 Pc fn-1 fn-1, c χn-1 χn-1, c tn-1, c
n n 1 0 Pc fn fn-1, c χn χn, c tn, c


表选项






3) 认证:是云存储服务提供商Pk(k=1, 2, …, c)、组织者、可信第三方和用户之间的9轮协议,认证协议如下。
步骤1?请求(用户→可信第三方):用户向可信第三方请求认证。
步骤2?发起(可信第三方→组织者):可信第三方向组织者发送u
步骤3?承诺(可信第三方←组织者):组织者选择一个随机数rZp,发送tk至可信第三方,
${t_k} = \left\{ {{t_{i,k}}\left| {{P_k} \in P} \right.} \right\}.$ (12)
步骤4?挑战1(可信第三方→组织者):可信第三方选择n个随机数viZp, i∈{1, 2, …, n},将挑战系数集合Q={vi|i=1, 2, …, n}发送给组织者[6]
步骤5?挑战2(服务提供商Pk←组织者):组织者转发uQk={vi|fi, kPk}?Q至云存储服务提供商PkP(QkPk存储用户数据块的挑战系数集)。
步骤6?响应1(服务提供商Pk→组织者):云存储服务提供商Pk选择随机数rkZp和若干个随机数li, kZp(i∈{1, 2, …, n},其个数取决于Pk所存储的数据块fi, k的数目),计算:
${{t'}_k} = {D^{{r_k}}}\prod\limits_{{v_i} \in {Q_k}} {t_k^{{v_i}}} ,$ (13)
${l_{i,k}} = {l_{i,k}} + \prod\limits_{{v_i} \in {Q_k}} {{v_i}{f_{i,k}}} ,$ (14)
${\phi _{i,k}} = e\left( {u_k^{{l_{i,k}}},{H_2}} \right).$ (15)

$\left\{ \begin{array}{l}{l_k} = \left\{ {{l_{i,k}}\left| {i = 1,2, \cdots ,n} \right.} \right\},\\{\eta _k} = {g^{{r_k}}} \in {G_0},\\{\phi _k} = \prod\limits_{k = 1}^c {{\phi _{i,k}}} .\end{array} \right.$ (16)
云存储服务提供商Pk发送(tk, lk, ηk, ?k)至组织者。
步骤7?响应2(可信第三方←组织者):组织者收到全部云存储服务提供商Pk(k=1, 2, …, c)发送的消息后,聚合
$t' = {\left( {\prod\limits_{{P_k} \in P} {{{t'}_k}\eta _k^{ - d}} } \right)^r},$ (17)
${{l'}_i} = \prod\limits_{{P_k} \in P} {r{l_{i,k}}} ,$ (18)
$\phi ' = {\left( {\prod\limits_{{P_k} \in P} {{\phi _k}} } \right)^r}.$ (19)
l′={li|i=1, 2, …, n},组织者发送(t′, l′, ?′)至可信第三方。
步骤8?完整性认证:可信第三方验证如下等式:
$\phi 'e\left( {t',h} \right) = e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}}} ,{{H'}_1}} \right)e\left( {\prod\limits_{k = 1}^c {u_k^{{{l'}_i}}} ,{H_2}} \right).$ (20)
如果式(20) 成立,云存储数据具有数据完整性。
步骤9?应答(可信第三方→用户):可信第三方将认证结果发送给用户。
2.2 数据动态操作在云存储环境下,外包数据不仅需要用户进行访问,而且还需要进行数据动态更新[8]。用户可能随时需要数据修改、数据插入、数据删除等操作,如果用户更新存储于云服务器的整个数据,将带来较高的通信开销。基于文[6, 9-10],本文提出一种用户只需更新的数据块及相关的索引表和数据块标签的方案。
2.2.1 数据修改假设用户将数据块fz, k(z∈{1, 2, …, n}; k∈{1, 2, …, c})修改为fz, k,具体操作如下。
步骤1?修改版本号VzVz=Vz+1,选择一个新的随机数RzRz∈{0, 1}, 将χz=BzVzRz修改为χz=BzVzRz
步骤2?按照式(6) 和(10) 计算${H'_{z, k}} = H\left( {{H_{{P_k}}}||{{\chi '}_z}} \right), {t'_{z, k}} = {\left( {{{H'}_{z, k}}} \right)^{\alpha}}{\left( {\prod\limits_{k = 1}^c {u_k^{{{f'}_{z, k}}}} } \right)^b} $
步骤3?发送χz至可信第三方替换χz
步骤4?发送fz, ktz, k至组织者,然后组织者分发给相应的云存储服务提供商。
步骤5?云存储服务提供商用fz, ktz, k替换fz, ktz, k图 2为修改存储在Pk的数据块fz, k的操作结果。
图 2 数据块修改操作
图选项





2.2.2 数据插入假设用户在数据块fz, kfz+1, k之间插入fz+1, k(z, z+1∈{1, 2, …, n}; k∈{1, 2, …, c}),具体操作如下。
步骤1?修改版本号Vz+1=0,选择新的随机数Rz+1(Rz+1∈{0, 1}),取Bi=i(i=z+1, z+2, …, n+1),将χi=BiViRi(i=z+1, z+2, …, n)修改为χi=ViViRi(i=z+1, z+2, …, n+1)。
步骤2?按照式(6) 和(10) 计算${H'_{i, k}} = H\left( {{H_{{P_k}}}||{{\chi '}_i}} \right)\left( {i = z + 1, z + 2, \cdots n + 1} \right), {t'_{z + 1, k}} = {\left( {{{H'}_{z + 1, k}}} \right)^a}{\left( {\prod\limits_{k = 1}^c {u_k^{{{f'}_{z + 1, k}}}} } \right)^b} $${t'_{i, k}} = {\left( {{{H'}_{i, k}}} \right)^a} \times {\left( {\prod\limits_{k = 1}^c {u_k^{{{f'}_{i, k}}}} } \right)^b}\left( {i = z + 2, z + 3, \cdots, n + 1} \right) $,其中k∈{1, 2, …, c}。
步骤3?发送χi(i=z+1, z+2, …, n+1) 至可信第三方替换χi(i=z+1, z+2, …, n)。
步骤4?发送fz+1, kti, k (i=z+1, z+2, …, n+1) 至组织者,然后组织者分发给相应的云存储服务提供商。
步骤5?云存储服务提供商插入fz+1, k,用ti, k (i=z+1, z+2, …, n+1) 替换ti, k (i=z+1, z+2, …, n)。图 3为插入数据块fz+1, k的操作结果。
图 3 数据块插入操作
图选项





2.2.3 数据删除假设用户在数据块fz-1, kfz+1, k之间删除fz, k(z-1, z, z+1∈{1, 2, …, n}; k∈{1, 2, …, c}),具体操作如下。
步骤1?选择新的随机数Rz(Rz∈{0, 1}, i=z, z+1, …, n-1),取Bi=i (i=z, z+1, …, n-1),将χi=BiViRi (i=z+1, z+2, …, n)修改为χi=BiViRi (i=z, z+1, …, n-1)。
步骤2?按照式(6) 和(10) 计算Hi, k=H(HPkχi)和${t'_{i, k}} = {\left( {{{H'}_{i, k}}} \right)^a} \times {\left( {\prod\limits_{k = 1}^c {u_k^{{{f'}_{i, k}}}} } \right)^b}\left( {i = z, z + 1, \cdots, n-1;k \in \left\{ {1, 2, \cdots, c} \right\}} \right) $
步骤3?发送χi (i=z, z+1, …, n-1) 至可信第三方替换χi (i=z+1, z+2, …, n),可信第三方删除χz
步骤4?发送ti, k (i=z, z+1, …, n-1) 至组织者,然后组织者分发给相应的云存储服务提供商。
步骤5?云存储服务提供商删除fz, k,用ti, k (i=z, z+1, …, n-1) 替换ti, k (i=z+1, z+2, …, n)。图 4为删除数据块fz, k的操作结果。
图 4 数据块删除操作
图选项





3 安全性分析3.1 完备性设${l_i} = \sum\limits_{{P_k} \in P} {{l_{i,k}}\left( {i \in \left\{ {1,2, \cdots ,n} \right\};k \in \left\{ {1,2, \cdots ,c} \right\}} \right)} $,则
$\begin{array}{*{20}{c}}{\phi ' = {{\left( {\prod\limits_{{P_k} \in P} {{\phi _k}} } \right)}^r} = {{\left( {\prod\limits_{{P_k} \in P} {\prod\limits_{k = 1}^c {{\phi _{i,k}}} } } \right)}^r} = }\\{{{\left( {\prod\limits_{{P_k} \in P} {\prod\limits_{k = 1}^c {e\left( {u_k^{{l_{i,k}}},{H_2}} \right)} } } \right)}^r} = e{{\left( {\prod\limits_{{P_k} \in P} {\prod\limits_{k = 1}^c {u_k^{{l_{i,k}}}} ,{H_2}} } \right)}^r} = }\\{e{{\left( {\prod\limits_{k = 1}^c {u_k^{\sum\limits_{{P_k} \in P} {{l_{i,k}}} }} ,{H_2}} \right)}^r} = e{{\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}}} ,{H_2}} \right)}^r} = }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}}} ,H_2^r} \right).}\end{array}$
$\begin{array}{*{20}{c}}{t' = {{\left( {\prod\limits_{{P_k} \in P} {{{t'}_k}\eta _k^{ - d}} } \right)}^r} = {{\left( {\prod\limits_{{P_k} \in P} {\frac{{{D^{{r_k}}}\prod\limits_{{v_i} \in {Q_k}} {t_k^{{v_i}}} }}{{\eta _k^d}}} } \right)}^r} = }\\{{{\left( {\prod\limits_{{P_k} \in P} {\frac{{{{\left( {{g^d}} \right)}^{{r_k}}}\prod\limits_{{v_i} \in {Q_k}} {t_k^{{v_i}}} }}{{{{\left( {{g^{{r_k}}}} \right)}^d}}}} } \right)}^r} = \prod\limits_{{v_i} \in Q} {t_k^{{v_i}r}} .}\end{array}$
$\begin{array}{*{20}{c}}{{{l'}_i} = \sum\limits_{{P_k} \in P} {r{l_{i,k}}} = \sum\limits_{{P_k} \in P} {r\left( {{l_{i,k}} + \sum\limits_{{v_i} \in {Q_k}} {{v_i}{f_{i,k}}} } \right)} = }\\{\sum\limits_{{P_k} \in P} {r{l_{i,k}}} + r\sum\limits_{{P_k} \in P} {\sum\limits_{{v_i} \in {Q_k}} {{v_i}{f_{i,k}}} } = }\\{r{l_i} + r\sum\limits_{{v_i} \in {Q_k}} {{v_i}{f_{i,k}}} .}\end{array}$
因此,
$\begin{array}{*{20}{c}}{\phi 'e\left( {t',h} \right) = e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{{v_i} \in Q} {t_k^{{v_i}r},h} } \right) = }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{{\left( {{H_{i,k}}} \right)}^a}{{\left( {\prod\limits_{k = 1}^c {u_k^{{f_{i,k}}}} } \right)}^b}} \right)}^{{v_i}r}},h} } \right) = }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{a{v_i}r}}\sum\limits_{{v_i} \in Q} {{{\left( {\prod\limits_{k = 1}^c {u_k^{{f_{i,k}}}} } \right)}^{b{v_i}r}}} ,h} } \right) = }\end{array}$
$\begin{array}{*{20}{c}}{e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{a{v_i}r}},h} } \right) \times }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {\prod\limits_{k = 1}^c {u_k^{{f_{i,k}}}} } \right)}^{b{v_i}r}},h} } \right) = }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{a{v_i}r}},h} } \right) \times }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {\prod\limits_{k = 1}^c {u_k^{{f_{i,k}}}} } \right)}^{{v_i}r}},{h^b}} } \right) = }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{a{v_i}r}},h} } \right) \times }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{\sum\limits_{{v_i} \in Q} {r{f_{i,k}}{v_i}} },{h^b}} } \right) = }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}r}},{h^{a \cdot r}}} } \right) \times }\\{e\left( {\prod\limits_{k = 1}^c {u_k^{\sum\limits_{{v_i} \in Q} {r{f_{i,k}}{v_i}} },{H_2}} } \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{h^{ar}}} } \right) \times }\\{\left( {e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{k = 1}^c {u_k^{\sum\limits_{{v_i} \in Q} {r{f_{i,k}}{v_i}} },{H_2}} } \right)} \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},H_1^r} } \right) \times }\\{\left( {e\left( {\prod\limits_{k = 1}^c {u_k^{{l_i}},H_2^r} } \right)e\left( {\prod\limits_{k = 1}^c {u_k^{\sum\limits_{{v_i} \in Q} {r{f_{i,k}}{v_i}} },{H_2}} } \right)} \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right) \times }\\{\left( {e\left( {\prod\limits_{k = 1}^c {u_k^{r{l_i}},{H_2}} } \right)e\left( {\prod\limits_{k = 1}^c {u_k^{\sum\limits_{{v_i} \in Q} {r{f_{i,k}}{v_i}} },{H_2}} } \right)} \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right) \times }\\{e\left( {\left( {\prod\limits_{k = 1}^c {u_k^{r{l_i}}} } \right)\left( {\prod\limits_{k = 1}^c {u_k^{\sum\limits_{{v_i} \in Q} {r{f_{i,k}}{v_i}} }} } \right),{H_2}} \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right)e\left( {\left( {\prod\limits_{k = 1}^c {u_k^{r{l_i} + r\sum\limits_{{v_i} \in Q} {{f_{i,k}}{v_i}} }} } \right),{H_2}} \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right)e\left( {\prod\limits_{k = 1}^c {u_k^{{{l'}_i}}} ,{H_2}} \right).}\end{array}$
因此,CDDP方案是完备的。
3.2 抗伪造攻击假设某个存储服务提供商Pk(k∈{1, 2, …, c})伪造某个数据块fi, k(i∈{1, 2, …, n})为fi, k。在认证协议的第6步骤,根据式(14) Pk计算:
${{l''}_{i,k}} = {l_{i,k}} + \sum\limits_{{v_i} \in {Q_k}} {{v_i}{{f'}_{i,k}}} .$
根据式(18) 组织者聚合得:
${{l''}_i} = \sum\limits_{P - \left\{ {{P_k}} \right\}} {r{l_{i,k}} + r{{l''}_{i,k}}} .$
l″={li|i=1, 2, …, n},TTP接收到组织者聚合的(t′, l″, ?′),验证式(20) 得:
$\begin{array}{*{20}{c}}{左边 = \phi 'e\left( {t',h} \right) = e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right) \times }\\{e\left( {\left( {\prod\limits_{k = 1}^c {u_k^{r{l_i} + r\sum\limits_{{v_i} \in Q} {{f_{i,k}}{v_i}} }} } \right),{H_2}} \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right) \times }\\{e\left( {\left( {\prod\limits_{k = 1}^c {u_k^{r{l_i} + r\sum\limits_{{v_i} \in \left( {Q - {Q_k}} \right)} {{f_{i,k}}{v_i}} + r\sum\limits_{{v_i} \in {Q_k}} {{f_{i,k}}{v_i}} }} } \right),{H_2}} \right).}\end{array}$
$\begin{array}{*{20}{c}}{右边 = e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right)e\left( {\prod\limits_{k = 1}^c {u_k^{{{l''}_i}}} ,{H_2}} \right) = }\\{e\left( {\prod\limits_{{v_i} \in Q} {{{\left( {{H_{i,k}}} \right)}^{{v_i}}},{{H'}_1}} } \right) \times }\\{e\left( {\left( {\prod\limits_{k = 1}^c {u_k^{r{l_i} + r\sum\limits_{{v_i} \in \left( {Q - {Q_k}} \right)} {{f_{i,k}}{v_i}} + r\sum\limits_{{v_i} \in {Q_k}} {{{f'}_{i,k}}{v_i}} }} } \right),{H_2}} \right).}\end{array}$
如果左边=右边,只有
$\begin{array}{*{20}{c}}{r{l_i} + r\sum\limits_{{v_i} \in \left( {Q - {Q_k}} \right)} {{f_{i,k}}{v_i}} + r\sum\limits_{{v_i} \in {Q_k}} {{f_{i,k}}{v_i}} = }\\{r{l_i} + r\sum\limits_{{v_i} \in \left( {Q - {Q_k}} \right)} {{f_{i,k}}{v_i}} + r\sum\limits_{{v_i} \in {Q_k}} {{{f'}_{i,k}}{v_i}} .}\end{array}$
所以只有
$\sum\limits_{{v_i} \in {Q_k}} {{f_{i,k}}{v_i}} = \sum\limits_{{v_i} \in {Q_k}} {{{f'}_{i,k}}{v_i}} .$
fi, k=fi, k.
所以式(20) 不成立,数据不完整。
4 性能分析4.1 计算性能由于主要计算时间花费在指数和双线性对映射运算,设一次指数运算的时间为Texp,一次双线性对映射的计算时间为Te,则密钥产生阶段生成用户公钥H1H2及组织者的公钥D共需3Texp的计算时间。标签产生阶段共需(2n+c)Texp的计算时间。承诺阶段,组织者计算H1的时间为Texp。响应1阶段,c个云存储服务提供商计算tk?i, kηk各需2cTexpcTecTexp的计算时间,共需c(3Texp+Te)的计算时间。响应2阶段,组织者聚合t′和?′各需(c+1)Texp的计算时间,共需2(c+1)Texp的计算时间。在完整性认证阶段,可信第三方计算(Hi, k)viukli和双线性对映射各需nTexpcTexp和3Te的计算时间,共需(n+c)Texp+3Te的计算时间。表 4为文[3]、文[7]和CDDP方案的计算性能的比较,可以看出在承诺阶段,CDDP方案比文[3]和文[7]各少了2TexpTexp的计算时间。在响应1阶段, CDDP方案比文[3]少了cTexp的时间。在响应2阶段, CDDP方案比文[3]和文[7]各少了2TexpTexp的计算时间,该CDDP方案降低了计算时间。
表 4 计算性能对比
对比项 文[3] 文[7] CDDP方案
密钥产生阶段 3Texp 3Texp 3Texp
标签产生阶段 (2n+c)Texp (2n+c)Texp (2n+c)Texp
承诺阶段 3Texp 2Texp Texp
响应1阶段 c(4Texp+Te) c(3Texp+Te) c(3Texp+Te)
响应2阶段 2(c+1)Texp 2(c+1)Texp 2(c+1)Texp
认证阶段 (n+c+2)Texp+3Te (n+c+1)Texp+3Te (n+c)Texp+3Te


表选项






4.2 实验分析在CDDP方案中,通过使用2个Intel Core 2处理器和2个IBM服务器在2.16 GHz和容量为8 GB内存上运行Windows Server 2008模拟存储服务和完整性数据持有服务。使用GMP和PBC库,利用已经实现的加密库,使CDDP方案可以被构造。实验中嵌入degree 6和使用160位基域尺寸,选择80 bits作为安全参数。
量化时使用不同的参数,为了降低计算和通信成本,实验进行如下:选择从10 kB到20 MB大小的文件,存储文件大小从20 kB到250 kB进行从小到大变化,抽样比率变化从10%到50%,实验结果如图 5所示。这些结果表明计算及通信时间随着文件的大小和抽样比率的增大而增加。
图 5 不同文件大小、抽样比率下实验结果
图选项





为了验证认证协议的性能,在P={P1, P2, P3}环境中,为10 MB的文件进行10%到50%的采样比变化比较,其中3个云存储服务提供商的数据块所占比率分别为50%、30%、20%。在图 6中实验结果显示,“承诺”和“挑战”阶段的计算和通信时间是稍微随着采样率改变而改变的,但那些“响应”和“认证”阶段的计算和通信时间随着采样率的增加而增大。其中“挑战”和“响应”阶段又都被分为2个子过程:“挑战1”和“挑战2”,以及“响应1”和“响应2”。此外,每个云存储服务提供商的数据块的比例对“挑战”和“响应”过程的计算时间有较大的影响。
图 6 认证协议的实验结果
图选项





5 结论本文利用分层Hash索引和Hash索引表技术,提出了一种协同的动态数据持有CDDP方案,实现了跨云环境下用户数据的完整性认证和数据修改、数据插入和数据删除等用户数据的动态更新。该方案降低了计算时间,具有完备性和抵抗伪造攻击等属性。

参考文献
[1] 冯登国, 张敏, 张妍, 等. 云计算安全研究[J]. 软件学报, 2011, 22(1): 71–88.FENG Dengguo, ZHANG Min, ZHANG Yan, et al. Study on cloud computing security[J]. Journal of Software, 2011, 22(1): 71–88. (in Chinese)
[2] ZHU Yan, HU Hongxin, Ahn G J, et al. Collaborative integrity verification in hybrid clouds[C]//Proceedings of the 7th International Conference on Collaborative Computing:Networking, Applications and Worksharing. Orlando, FL, USA:IEEE, 2011:197-206. http://sefcom.asu.edu/publications/collaborative -integrity-verification-collaboratecom2011.pdf
[3] ZHU Yan, HU Hongxin, Ahn G J, et al. Cooperative provable data possession for integrity verification in multicloud storage[J]. IEEE Transactions on Parallel and Distributed Systems, 2012, 23(12): 2231–2244. DOI:10.1109/TPDS.2012.66
[4] Shacham H, Waters B. Compact proofs of retrievability[J]. Joural of Cryptology, 2013, 26(3): 442–483. DOI:10.1007/s00145-012-9129-2
[5] WANG Huaqun, ZHANG Yuqing. On the knowledge soundness of a cooperative provable data possession scheme in multicloud storage[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(1): 264–267. DOI:10.1109/TPDS.2013.16
[6] 周恩光, 李舟军, 郭华, 等. 一个改进的混合云环境下协同的可证明数据持有方案[J]. 清华大学学报(自然科学版), 2013, 53(12): 1731–1736.ZHOU Enguang, LI Zhoujun, GUO Hua, et al. Cooperative provable data possession scheme for multicloud storage[J]. Journal of Tsinghua University (Science and Technology), 2013, 53(12): 1731–1736. (in Chinese)
[7] WANG Huaqun. Identity-based distributed provable data possession in multicloud storage[J]. IEEE Transactions on Services Computing, 2015, 8(2): 328–340. DOI:10.1109/TSC.2014.1
[8] WANG Cong, WANG Qian, REN Kui, et al. Privacy-preserving public auditing for data storage security in cloud computing[J]. IEEE Transactions on Computers, 2013, 62(2): 362–375. DOI:10.1109/TC.2011.245
[9] Barsoum A F, Hasan M A. Integrity verification of multiple data copies over untrusted cloud servers[C]//Proceedings of the 12th IEEE/ACM International Symposium on Cluster. Piscataway, NJ, USA:IEEE, 2012:829-834.
[10] ZHU Yan, WANG Huaixi, HU Zexing, et al. Dynamic audit services for integrity verification of outsourced storages in clouds[C]//Proceedings of the 2011 ACM Symposium on Applied Computing (SAC'11). New York, NY, USA:ACM, 2011:1550-1557. https://ar.scribd.com/document/327654772/Cloud-Computing-Security-Foundations-and-Challenges-2016

相关话题/数据 计算

  • 领限时大额优惠券,享本站正版考研考试资料!
    大额优惠券
    优惠券领取后72小时内有效,10万种最新考研考试考证类电子打印资料任你选。涵盖全国500余所院校考研专业课、200多种职业资格考试、1100多种经典教材,产品类型包含电子书、题库、全套资料以及视频,无论您是考研复习、考证刷题,还是考前冲刺等,不同类型的产品可满足您学习上的不同需求。 ...
    本站小编 Free壹佰分学习网 2022-09-19
  • 基于联合模型的商品口碑数据情感挖掘
    王素格1,2,李大宇1,李旸11.山西大学计算机与信息技术学院,太原030006;2.山西大学计算智能与中文信息处理教育部重点实验室,太原030006收稿日期:2016-12-06基金项目:国家自然科学基金资助项目(61573231,61632011,61672331,61432011,U14352 ...
    本站小编 Free考研考试 2020-04-15
  • 简单管路中水击的类型偏误分析及解析计算
    张明1,郑双凌1,马吉明1,齐文彪21.清华大学水沙科学与水利水电工程国家重点实验室,北京100084;2.吉林省水利水电勘测设计研究院,长春130021收稿日期:2017-02-16基金项目:国家自然科学基金面上资助项目(51379099);清华大学水沙科学与水利水电工程国家重点实验室开放基金资助 ...
    本站小编 Free考研考试 2020-04-15
  • 利用自识别的供水管网监测数据质量控制
    刘书明,吴以朋,车晗清华大学环境学院,北京100084收稿日期:2014-11-14基金项目:国家水体污染与治理重大专项(2014ZX07406003)作者简介:刘书明(1976-),男,副教授。E-mail:shumingliu@tsinghua.edu.cn摘要:复杂庞大的供水管网系统拥有众多监 ...
    本站小编 Free考研考试 2020-04-15
  • 基于密度的不确定数据流聚类算法
    韩东红,宋明,张宏亮,王佳茜,王嘉兴,王国仁东北大学计算机科学与工程学院,沈阳110819收稿日期:2016-09-27基金项目:国家自然科学基金面上项目(61173029,61672144)作者简介:韩东红(1968-),女,副教授。E-mail:handonghong@cse.neu.edu.c ...
    本站小编 Free考研考试 2020-04-15
  • CFD-DEM耦合计算中的体积分数算法
    刘德天,傅旭东,王光谦清华大学水沙科学与水利水电工程国家重点实验室,北京100084收稿日期:2016-12-05基金项目:国家自然科学基金资助项目(51525901,51379100);清华大学自主科研计划课题(2014Z22066)作者简介:刘德天(1989-),男,博士研究生通信作者:傅旭东, ...
    本站小编 Free考研考试 2020-04-15
  • 分布式环境下业务模型的数据存储及访问框架
    蔡鸿明,姜祖海,姜丽红上海交通大学软件学院,上海200240收稿日期:2016-10-28基金项目:国家自然科学基金面上项目(61373030,71171132)作者简介:蔡鸿明(1975-),男,教授。E-mail:hmcai@sjtu.edu.cn摘要:构造业务模型以支持应用系统开发是基于模型驱 ...
    本站小编 Free考研考试 2020-04-15
  • 适用于海量数据应用的多维Hash表结构
    吴泉源,彭灿,郑毅,卜俊丽国防科技大学计算机学院,长沙410073收稿日期:2016-06-28作者简介:吴泉源(1942-),男,教授。E-mail:wuquanyuan@126.com摘要:传统的Hash表通过对目标数据进行Hash计算,可以实现数据的快速存取与检索。为了保持较好的存储性能,需要 ...
    本站小编 Free考研考试 2020-04-15
  • 基于局部-整体有限元法的薄壁筒焊接变形计算
    赵海燕1,吴骏巍1,陆向明2,简波2,李宏伟21.清华大学机械工程系,北京100084;2.北京特种机械研究所,北京100143收稿日期:2016-07-26基金项目:北京市自然科学基金项目(3142010);高等学校博士学科点专项科研基金项目(20130002110088);国家自然科学基金项目( ...
    本站小编 Free考研考试 2020-04-15
  • 枪弹穿甲过程仿真的有限元接触模型与分区并行计算误差特性
    吕振华,刘赛清华大学汽车工程系,北京100084收稿日期:2016-07-24作者简介:吕振华(1961—),男,教授。E-mail:lvzh@tsinghua.edu.cn摘要:为了提高小口径普通钢芯弹和穿甲燃烧弹侵彻均质钢靶板的仿真分析精度,分析了接触力罚函数算法的接触刚度参数和接触摩擦系数对弹 ...
    本站小编 Free考研考试 2020-04-15
  • 基于小波分析的云计算在线业务异常负载检测方法
    刘金钊,周悦芝,张尧学清华大学计算机科学与技术系,北京100084收稿日期:2016-01-08基金项目:国家国际科技合作专项项目(2013DFB10070)作者简介:刘金钊(1987—),男,博士研究生通信作者:周悦芝,副教授,E-mail:zhouyz@tsinghua.edu.cn摘要:随着越 ...
    本站小编 Free考研考试 2020-04-15