APP下载

基于RCE的云存储动态所有权管理数据去重方案

2020-03-11波,柳

计算机工程与应用 2020年5期
关键词:公钥密文解密

吴 波,柳 毅

广东工业大学 计算机学院,广州510006

1 引言

由于云计算提供灵活、经济的云存储服务,促使企业和个人选择将数据外包给云服务器,根据IDC的分析报道,2020年全球数据量将超过44 ZB。随着存储数据的快速增长,急需高效可行的技术有效利用存储空间和网络带宽。为了降低云存储中数据重复率很多云服务(例如Dropbox、Google Drive)提供商采用数据去重(Deduplication)技术[1],实现在云服务器中只存储冗余数据的一个副本,有效节约存储空间,降低网络带宽,然而,从安全性来讲,跨用户数据共享带来了新的挑战。

由于用户更关心他们数据的隐私,一般在上传数据至云服务器之前会对数据进行加密处理,由于加密算法的随机性,相同数据的多个用户利用不同加密密钥产生不同的密文,使得云服务器不能判断明文是否相同并去重,因此传统的加密方案不能同时实现去重和加密。为了使加密数据去重复成为可能,Douceur等人[2]提出了收敛加密(Convergent Encryption,CE),后续很多CE方案的变体被提出[3-6]。由于CE 方案存在标签一致性问题,LR[7](Leakage-Resilient)方案被提出,Bellare M等人提出消息锁加密(Message-Locked Encryption,MLE)[8],同时,他们构造了一种随机化收敛加密方案(Randomized Convergent Encryption,RCE)用于强化原有方案的安全性。一些方案[9-10]借助可信第三方进行数据管理,从而保证用户数据的机密性。但增加可信第三方使得开销过大,在实际的云服务系统中难以实现。

然而,以上方案都忽略了所有权撤销问题,即云用户删除、修改原数据。如果用户撤销文件所有权之后保留加密密钥,那他依旧可以正确解密密文。如何阻止未授权用户访问加密数据[11]实现动态所有权管理已经成为一个研究热点。为了实现动态数据去重,文献[12]提出了基于会话密钥的收敛密钥管理方案(SKC)和收敛密钥共享方案(CKS)。文献[13]第一次提出了基于PAKE协议的数据去重方案,该方案不需要可信第三方,支持客户端数据加密。文献[14]提出基于随机标签的安全去重方案,提出了一个新的原语R-MLE2。基于动态所有权管理和代理重加密,文献[15]提出了云存储中加密大数据去重方案。文献[16]提出了一种云存储中基于动态所有权管理的安全去重技术,利用二进制KEK(Key-Encrypting Key)树更新重加密密钥,该方案考虑了密钥更新问题和动态所有权问题,但是KEK数量与云用户数量正相关,当云中用户规模庞大时,存储开销过大,并且该方案不支持新用户加入,当有更多的用户加入到云中,超过有限数量时,该方案无法适应。文献[17]提出一种无须代理重加密的基于动态用户管理的安全可伸缩重复数据删除技术,该方案利用重加密实现动态所有权管理,添加访问控制技术减少通信开销,但该方案在重加密密钥更新太过频繁,计算开销大。

针对上述方案所存在的问题,本文提出一种无须代理重加密的高效加密数据去重技术,实现动态所有权管理,限制未授权或撤销所有权的用户访问数据;采用随机收敛加密实现标签一致性,确保数据完整,有效抵抗污染攻击;同时,构造了基于Bloom Filter 的所有权证明,结合延迟更新策略减少重加密密钥更新频率,降低计算开销,提升去重效率。

2 预备知识

2.1 随机收敛加密

随机收敛加密(Randomized Convergent Encryption,RCE)是收敛加密[1]的一个变体。它包括以下几个算法:

RCE.KeyGen(M)→K :密钥生成算法。K 是从数据M 中派生出来,通常由哈希函数生成,即K=H(M),作为加密密钥的密钥(Key-Encryption Key,KEK),即用于加密密钥L。

RCE.Enc(M,K)→(C,T):随机收敛加密算法。输入随机密钥L 和明文M ,输出密文C=C1||C2 和数据标签T 。具体过程如下:

(1)Encrypt(L,M)→C1:加密算法。其中L 是选择的随机密钥,输入数据M 、加密密钥L,输出文件密文C1。

(2)KeyEncrypt(K,L)→C2:密钥加密算法。输入加密密钥的密钥K 、密钥L,输出经过加密算法的密钥密文C2(C2=K ⊕L)。

(3)TagGen(K)→T :标签生成算法。输入K ,输出文件标签T 。

RCE.Dec(C,K)→M :随机收敛解密算法。它包含两个部分,首先从C2 中获得随机密钥L,L=C2 ⊕K,然后用L 解密密文得到明文M ,M=Decrypt(L,C1)。

2.2 Elgamal公钥密码体制

一个Elgamal[18]公钥加密方案包括以下3个算法:

定义G 是一个p 阶乘法循环群,g ∈Zp是G 的生成元。

KeyGeneration(p,G,g)→(e,d) :密钥生成算法。输入p、G、g ,输出公钥e 和私钥d 。用户随机选择一个元素x ∈Zp,计算X=gxmod p,公钥e=(p,G,g,X),私钥d=(p,G,g,x)。

Enc(e,M)→C:加密算法。输入私钥e 和数据M,输出密文C。用户随机选择元素k ∈ℤp,首先计算C1=gkmod p,C2=mXkmod p,然后输出密文C=C1||C2。

Dec(d,C)→M :解密算法。输入私钥d 和密文C,输出明文M=C2/C1xmod p。

2.3 布隆过滤器(Bloom Filter)

Bloom Filter[19]是一种概率数据结构,通常由一个m 比特的二进制向量和k 个哈希函数组成,用于验证一个元素是否在一个集合中,空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率。首先,Bloom Filter初始化把所有比特位置为0,假设集合中有n 个元素,通过k 个哈希函数{H1,H2,…,Hk}计算每个元素的哈希值,把这k 个哈希值映射到向量{1,2,…,m} 中,把对应的比特位置为1。如图1 所示,n=3 ,k=3,箭头指向的位置即是该元素经过哈希计算后的哈希值所对应的比特位(置为1)。

图1 Bloom Filter映射关系图

当插入元素x 时,把对应Hi(x)(1 ≤i ≤k)的比特位置为1;当查询一个元素e 时,计算{H1(e),H2(e),…,Hk(e)},查看对应比特位是否全都为1,若不全都为1,则该集合一定不包含该元素,相反,该元素可能在集合中,这是因为Bloom Filter 有一定的误识别率pf 。Bloom Filter报告某元素在集合中,但实际上该元素并不存在,这种现象称为假阳性(false positives)。随着存入的元素数量增加,误识别率随之增加。元素存在的误识别率pf 计算公式如下,其中,k 表示哈希函数的个数,m 表示布隆过滤器的长度,n 表示插入的元素个数:

3 问题描述

3.1 系统模型

如图2所示,本文系统模型包括云用户和云服务器。

图2 系统模型

云用户(Users):希望将数据上传到云中节省存储空间的客户端。用户将数据加密,把密文和索引信息(标签)上传到云存储,如果云存储中不存在该数据,则该上传者称为初始上传者(First Uploader,FU),否则称为后续上传者(Subsequent Uploader,SU)。另外,云存储中共享相同数据的一组所有者称为该数据的所有权组。

云服务提供商(Cloud Server Provider,CSP):提供云存储服务的服务端,由云存储和云服务器组成。云服务器负责维护存储数据的所有权列表(由数据标签、所有者身份和相应的公钥组成),根据所有权组列表控制对存储数据的访问。另外,对密钥密文重加密实现动态所有权管理,确保撤销权限的用户不能正确解密密文。

3.2 威胁模型

在本文方案的威胁模型中,将攻击者来源分两大类:

(1)内部攻击者。云服务器被认为是诚实但好奇的,即诚实地执行系统中分配的任务,但是,它希望尽可能多地了解有关加密内容的信息。因此,应该防止云服务器访问加密数据的明文。

(2)外部攻击者。通常指的是来自CSP外部的攻击者,他们通过一些渠道获得感兴趣的文件的一些信息,比如文件的摘要,扮演数据所有者的角色与云服务器进行交互,并希望通过该信息来获得全部的数据。另外,外部攻击者可能与合法的用户进行合作,或与内部攻击者进行串谋。

3.3 安全要求

(1)数据保密性和完整性:未经授权的用户(包括撤销权限的用户)不能正确解密云存储中的数据密文。另外,云服务器是不完全可信的,因此要阻止云服务器非法访问云存储中的加密数据,也就是说去重算法应该允许数据的合法拥有者验证从从云存储中下载的数据没有被更改。

(2)抗污染攻击:阻止恶意用户上传与数据摘要不符的数据,防止数据污染。

(3)向前和向后保密:向前保密是指任意用户在删除或修改数据后应被阻止访问该外包数据;向后保密是指未获得访问所有权之前,应该阻止所有用户访问外包数据,包括数据的拥有者,在他获得所有权之前同样无法访问数据。

(4)抗合谋攻击:保证云存储中没有合法所有权的未授权用户即使与服务器合谋也无法正确解密密文。

3.4 算法定义

本文方案主要包括以下计算算法:

PP ←Setup(1λ):由CSP运行。输入安全参数1λ,输出为公共参数PP=(p,g,G,H),其中,G 是一个p 阶乘法循环群,g 是它的生成元(g ∈ℤp);H 代表哈希函数:{0,1}*→{0,1}n。

(C,T,token,X)←Encrypt(M):加密算法。输入明文数据M ,云用户运行得到K ←RCE.KeyGen(M),运行RCE.Enc(M,K)得到(C,T)=C1||C2 ←RCE.Enc(M,K),另外,云用户计算数据摘要token ←TokenGen(C) ,最后,云用户选取随机数x ∈Zp作为私钥,对应的公钥Xi=gximod p。

C′←Re-encrypt(C):对于密文C=C1||C2,云服务器首先生成组密钥G ,然后重加密密钥密文C2,得到C2'=EH(G)(C2),相应的C'=C1||C2'。

C ←Re-decrypt(C') :对于密文C'=C1||C2' ,云用户利用组密钥G 解密C2'得到C2=DH(G)(C2'),获得相应的C=C1||C2。

M ←Decrypt(K,C,token):云用户重新计算token'←TokenGen(C),判断token'=token?如果两者相等,运行M ←RCE.Dec(C,K),反之表明服务器恶意篡改用户存储的数据,用户拒绝接收数据。

4 方案设计

4.1 延迟更新

如图3 所示,延迟更新是当用户上传、下载文件时所有权组密钥不需要立即更新,而是延迟更新,即在用户删除或修改文件时更新密钥,实现高效动态管理所有权。组密钥更新步骤如下:

服务器设置ni=ni+1,选择一个随机数yni∈ℤp,Yni=gynimod p,计算得到新的所有权组密钥在本文模型中,组密钥由所有撤销权限的用户公钥Xt和最近一次撤销权限的用户Y= gymod p 组成(Gi=X1…XiYi)。

4.2 访问控制

本文中用户下载、删除或修改文件都需经过身份认证,只有通过身份认证的用户才能执行以上所列操作。用户下载、删除或修改文件向服务器发送身份标识IDi和文件标签Ti,服务器在接收到请求后对用户进行身份认证,身份认证机制细节如下(加解密算法采用Elgamal的加密和解密算法):

(1)首先服务器在所有权表Vi中查找对应用户身份标识IDi的公钥Xi,随机选择r ∈ℤp,计算R=Enc(r,Xi)并发送给用户。

(2)用户利用私钥Xi解密R 得到r'=Dec(R,xi),并返回H(r′)至服务器。

(3)服务器计算H(r),并检查H(r')=H(r)?如果相等,则身份认证成功,否则认证失败,返回认证结果。

4.3 符号说明

4.4 系统初始化

设G是一个p 阶乘法循环群,g 是G 的生成元(g ∈ℤp),初始化加密算法EK(M)→C,输入密钥K 和明文M ,输出密文C 。初始化解密算法DK(C)→M ,输入密文C 和密钥K ,输出明文M 。初始化ElGamal公钥加密算法E(M,pk)→C,输入公钥pk 和明文M ,输出密文C。初始化解密算法D(C,sk)→M ,输入密文C 和私钥sk ,输出明文M 。初始化哈希函数H:{0,1}*→{0,1}n,设公参集合pp=(p,g,G,H)。另外,在上传数据至云之前选择一个随机数IDt作为身份标识(用户ID)。

图4 上传流程图

4.5 文件上传

用户请求上传文件步骤如下:

数据上传流程图如图4所示,详细步骤如下:

(1)用户ui请求上传文件F,运行随机收敛加密算法的密钥生成算法K ←RCE.Enc(F)得到收敛密钥K ,运行随机收敛加密算法得到密文和文件标签(C,Ti)←RCE.Enc(F,K),其中C=C1||C2,上传Ti至服务器。

(2)服务器检查Ti是否已存在于云存储中,若存在,转到(3)进行所有权证明(以下简称为PoW 验证);若不存在,则转到(4)继续执行。

(3)Ti已存在(即云存储中已经有了文件F 的备份),服务器发起挑战,随机选择r 个数据块索引发送给用户;用户响应挑战,将对应的r 个数据块的标签{tokenr}返回服务器;服务器重新计算{tokeni}的哈希值,检查Bloom Filter 对应比特位是否全为1,若全为1,则该用户通过PoW验证,是该数据的合法拥有者,用户上传身份标识IDt、公钥Xi,把(IDt,Xi)插入到关于Ti的所有权表中。相反,若不全为1,则表示该用户PoW 验证失败。

(4)Ti不存在,该文件为初始上传,用户选择一个随机数xi∈ℤp作为私钥,对应的公钥Xi=gximod p,把密文C、身份标识IDt、摘要token 以及公钥Xi上传至服务器,同时用户保存收敛密钥K 和私钥xi,并删除本地文件F 以节省存储空间。

图3 延迟更新策略

(5)服务器对接收到的密文C 重新计算摘要token'←TokenGen(C),判断token'=token?如果相等,则转到(5)继续执行;如果不等,则说明密文数据块与摘要不符,返回警告,数据上传失败。

(6)服务器为文件F 创建一个所有权表Vi={Ti},并把二元组(IDt,Xi)插入其中。

(7)对于密文C ,服务器运行重加密算法C'←Re-encrypt(C),设置ni=1,选择随机数yni∈ℤp,计算得到Yni=gynimod p,所有权组密钥Gi=YniXnimod p,接着重新加密密钥密文C2'=EH(Gi)(C2) ,得到C'=C1||C2' ,并为文件F 创建一个更新表U={Ti},把(Y1,G1)加入到该表中。

(8)用户把文件划分为n 个数据块{Bi}(0 ≤i ≤n),为每个块计算数据摘要tokeni=H(Bi) 并返回给服务器,服务器根据{tokeni}值进行哈希,把产生的k 个哈希值插入到Bloom Filter中,对应比特位置为1。

住院医师培训的重点是各种临床技能,但是CP教学法有其自身的局限性,特别是对于心血管外科,临床上只有3种疾病可以实施CP,很多复杂的疾病尚无法建立CP,执行CP的疾病个体之间也存在一定的变异性。对于这些还未建立起标准路径的心血管外科疾病,只能采取其他教学模式。因此,CP教学法不能作为单独的住院医师培养手段,必须和其他教学方法相结合,才能收到更好的教学效果。

4.6 文件下载

用户请求下载文件步骤如下:

(1)用户Uj请求下载文件,运行随机收敛加密的标签生成算法得到文件标签T ←TagGen(K),连同身份标识IDj一起发送至服务器。

(2)服务器对用户进行身份认证,执行认证协议。如果认证结果是成功,则跳转至(3)。相反,如果认证结果是失败,则终止操作。

(3)服务器发送A=C||token||G 至用户,其中C=C1||C2'。

(4)用户接收到A,运行M ←Decrypt(K,C,token)算法,首先利用组密钥Gi解密得到密钥密文C2 ←DH(Gi)(C2'),用户重新计算token'←TokenGen(C),此时C=C1||C2,判断token=token'?如果两者相等,则表明用户存储数据完整,未曾遭到污染,也未遭诚实但好奇服务器篡改,用户接收文件并运行随机收敛加密解密算法得到文件明文F ←RCE.Dec(C,K)。如果两者不相等,则存储数据的完整性遭到破坏,用户放弃下载文件。

4.7 文件删除

用户请求删除文件F 步骤如下:

(1)用户Ud请求删除文件F ,并发送用户IDd和文件标签Ti至服务器。

(3)服务器运行重加密操作C'←Re-encrypt(C) 。首先用组密钥Gi解密得到密钥密文C2=DH(Gi)(C2'),然后执行组密钥更新操作得到新的组密钥Gi,从Vi中删除(IDd,Xd),用新的组密钥Gi重新加密密钥密文得到新的C2''=EH(Gi)(C2),得到C=C1||C2''。

(4)把当前用户的相关信息从所有权表中删除,同时修改更新表U{T},用当前的(Yni,Gi)替换掉原有的(Yni-1,Gi-1)。

4.8 文件更新

用户请求更新文件F 步骤如下:

(1)用户us请求把文件F 修改为F′,运行随机收敛加密算法的密钥生成算法K ←RCE.Enc(F)得到收敛密钥K' ,运行随机收敛加密算法得到密文和文件标签(C',Ti')←RCE.Enc(F',K),其中C'=C1'||C2' ,选择一个随机数xs∈ℤp作为私钥,对应的公钥Xs=gxsmod p,上传Ti、Ti'、C'、IDs、Xs至服务器。

(2)服务器对用户进行身份认证,执行认证协议。如果认证结果是成功,则跳转至(3)。相反,如果认证结果是失败,则终止操作。

(3)与文件删除的步骤(3)、(4)一样,服务器执行重加密操作并删除和更新相关信息。

(4)服务器进一步检查Ti' 是否存在,如果Ti' 已存在,则执行文件上传的步骤(3);如果Ti'不存在,执行文件上传的步骤(4)~(8)。

5 安全性分析

5.1 数据隐私

云服务器假设是诚实但好奇的,也就是说,它会诚实地执行系统中分配的任务,但是,它可能会非法访问云存储中的数据。在本文模型中,密文C=C1||C2'存储在服务器中,即使服务器拥有组密钥Gi,由于加密哈希函数的特性,获得密钥K 在计算上是不可行的。另外,尽管服务器可以用Gi解密C2'得到密钥密文C2,但是没有收敛密钥,它就不能从C2 中获取到随机密钥L,因此服务器并不能解密密文C1 得到明文F。

另一种攻击是来自未经授权的用户。在本文模型中,利用ElGamal 加密机制实现访问控制,任何未经授权的用户将被阻止接收关于数据的任何信息。因此即使这些恶意用户以某种途径获得了密文C 和随机密钥L,由于不能获得组密钥Gi(只有通过身份认证的用户才能获得),它依然不能解密密文得到明文。

因此,本文模型能阻止诚实但好奇服务器和外部未授权用户解密密文,保证了数据的隐私。

5.2 抗污染攻击

在很多去重方案中,一些恶意用户上传与文件标签不符的密文至服务器,造成数据污染。设恶意用户u 是文件F1 的初始上传者,该文件对应的标签是T1,然而该用户并未上传与T1对应文件F1 的密文C1,而是上传F2(F2 ≠F1)的密文C2,此后其他用户请求下载T1对应的文件时,解密得到的文件是F2 而不是F1,这就造成了数据污染。另外,诚实但好奇服务器可能会恶意篡改用户存储数据,数据完整性遭到破坏。

在本文模型中,文件初始上传者需要上传密文C,摘要token 等信息至服务器,服务器通过重新计算密文C 的摘要token' ,判断token'=token?如果相等,则说明数据没有污染,否则说明存在污染。同时,在本文方案中数据完整性很容易检测出来。设合法用户u 请求下载文件F ,服务器返回C'=C||token||G 给用户u,用户用G 解密C2' 得到密钥密文C2,重新计算数据摘要token'=H(C),其中,C=C1||C2||T1,检查token'=token?如果两个摘要不一致,则用户拒绝接收数据,如果摘要一致,则用户用本地保存的收敛密钥解密C2 得到随机密钥L,最后用L 解密密文C1 得到明文F。因此,在本文模型中,标签一致性很容易检测出来,保证数据完整性。

5.3 向前和向后加密

在云用户删除或是更新文件(用户删除或更新文件可视为撤销所有权)之后,服务器会立即更新对应的组密钥和所有权列表,也就是说,当用户撤销所有权后,服务器会生成新的组密钥并重加密密文,而用户ID 和对应文件公钥也将从所有权表中移除。因此撤销所有权的用户不能通过身份认证机制获得组密钥,因而不能正确解密密文,保证向前加密。

在一个云用户请求下载文件F 之前,云存储中已有该文件,用户并不在该文件的所有权表中,因此不能通过身份认证机制,服务器将会忽略这次请求,保证向后保密,也就是说向后保密阻止任何未获得所有权的用户访问外包数据。

5.4 抗合谋攻击

在本文方案中,云用户只有同时知道加密密钥L 和组密钥G 才能正确解密密文获得明文。组密钥G 是由初始上传用户和撤销所有权的用户的公钥生成的,用户通过所有权验证之后,服务器会返回给用户组密钥,另外,满足延迟更新策略的条件下,组密钥会立即更新并重加密密钥密文,以阻止撤销所有权的用户继续访问文件。在这种情况下,即使未授权用户拥有收敛密钥K ,他仍然不能解密密文得到明文,原因在于它不能通过身份认证,也就不能获得组密钥G 。因此,在本文模型中,可以抵抗合谋攻击。同时,访问控制(身份认证机制)阻止不能正确解密密文的恶意用户访问外包数据,大大减少通信开销。

6 性能和实验分析

如表1 所示,文献[16-17]和本文都做了所有权管理方面的工作,文献[17]和本文都通过访问控制技术验证用户是否在文件的所有权表中,阻止未授权用户继续访问系统,降低通信开销。与文献[17]相比,本文考虑了所有权证明并采用延迟更新策略大幅降低了计算开销。

6.1 所有权证明

本文方案中,后继上传用户需要通过一个基于布隆过滤器的所有权证明(PoW)验证来获得所有权,而不是仅仅通过文件标签来判断该用户是否是文件的拥有者。

攻击者可能从别的地方获得文件摘要或者部分文件内容,而企图从服务器中下载整个文件。在PoW 阶段,攻击者需要提供对应服务器返回的r 个随机数据块的token 值证明自己是合法拥有者,仅拥有文件标签是不可能通过PoW 验证的;攻击者通过PoW 验证(记为事件A)的情况分两种:其一攻击者凭借拥有的部分文件成功通过PoW 验证,记为事件W ;其二Bloom Filter 发生误判,误判率为pf 。那么事件A 发生的概率为:

假设整个文件为n 个数据块,攻击者拥有部分文件m 个数据块,占整个文件的百分比为p=m/n,服务器返回r 个随机索引,r 个数据块中有攻击者没有的数据块时,攻击者只能猜测数据块内容或者其摘要值,猜测成功的概率记为P1,显然P1 趋近于0;攻击者恰好拥有这r 个数据块的概率为:

得到:

把公式(3)代入公式(1)得到:

表1 去重方案性能对比

例如一个划分为n=100 个数据块的文件,已知攻击者拥有其中m=50 个,根据文件划分块数得到挑战数组r的长度为5,pf 为0.05,由公式(4)计算可得P(A)=0.076。由此可见,攻击者拥有该文件一半的数据,单次响应通过PoW协议验证的概率仍然很小。若攻击者不拥有任何该文件数据,则通过验证的概率P(A)=pf ,一般情况下pf 可忽略不计。

6.2 计算开销

主要分析后继上传时的计算开销:

客户端:文献[16]中RCE 算法的开销为Trce,计算标签的开销为Tf,随机生成ID的开销为TID,则文献[16]的计算开销是Trce+Tf+TID。文献[17]由于实现了访问控制,所以在文献[16]的基础上还需要选择随机数x作为私钥,生成公钥X ,计算开销为TX,则文献[17]的计算开销是Trce+Tf+TID+TX。本文的计算开销是TT+TID+Ts+TX+Ttokeni,其中,TT是计算数据标签的开销,TX是生成公钥X 的计算开销,Ts和Ttokeni是用于PoW 所产生的开销,分别表示数据分块计算开销和数据块摘要计算开销。

服务器端:文献[16]、[17]生成组密钥的计算开销为TG,对数据密文重加密计算开销为TC1,则文献[16]、[17]的计算开销是TG+TC1。本文由于采用延迟更新策略,在后继上传中不需更新组密钥,但要求用户进行PoW 验证,服务器随机生成数据块总数5%的挑战数组的计算开销为Tc ,根据客户生成的响应,服务端Bloom Filter利用k 个哈希函数验证用户响应的计算开销为Tr,因此本文后继上传计算开销是Tc+Tr。

本方案是在英特尔酷睿处理器、i7-4790的CPU、主频3.6 GHz、内存8 GB、系统为Windows 10 的PC 机上实现的。在eclipse软件上,使用Java语言仿真实验。实验中,哈希算法均采用SHA1,加密算法采用AES128,利用Elgamal公钥密码体制实现访问控制。图5、图6分别比较了三个方案在后继上传中客户端和服务器端的计算开销。

由图5可知,后继上传客户端计算开销本文方案少于文献[16]、[17],原因在于即使上传文件已经是重复数据,文献[16]、[17]仍然执行RCE算法对明文进行加密操作,即先加密后去重,而本文方案是先去重后加密,对于后继上传重复文件不再执行加密操作,因此计算开销减少,另外,本文在后继上传过程中要求用户进行PoW验证,因此,需要对文件进行分块并计算块摘要{tokeni},综合以上开销,本文方案后继上传客户端计算开销少于文献[16]、[17]。

由图6 可知,随着数据大小的增长,本文方案后继上传服务端计算开销少于文献[16]、[17]。为达到动态管理所有权,文献[16]、[17]在后继上传中更新组密钥,计算开销与数据大小呈正相关,而本文采用延迟更新策略避免组密钥频繁更新,在确保实现动态所有权管理的前提下大量减少计算开销,因而更加高效,另外,本文后继上传主要是PoW验证产生的计算开销,分别对1 MB、10 MB、20 MB、40 MB、60 MB、80 MB 和100 MB 的文件进行分块,每个数据块16 KB,服务器生成挑战数组发送给用户(每次运行PoW 协议时挑战数据块r 的取值是数据块总数的5%,Bloom Filter中哈希函数的个数k 取为4),用户根据挑战数组生成响应,服务器验证用户返回的响应是否正确。

图5 后继上传中客户端计算开销

图6 后继上传中服务器端计算开销

7 结束语

针对当前云存储中数据安全去重方案存在的缺陷,提出一种改进的动态所有权管理加密数据安全去重技术。在动态所有权管理过程中,由于用户频繁对数据执行重复上传、修改、删除等操作,提出延迟更新策略大幅减少重加密密钥更新频率,节省计算时间,提高效率,并构建了基于布隆过滤器的所有权证明方案。分析和实验结果表明,本文方案在保证安全性的同时降低计算开销。

猜你喜欢

公钥密文解密
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
炫词解密
解密“一包三改”
炫词解密
一种基于混沌的公钥加密方案
神奇的公钥密码
P2X7 receptor antagonism in amyotrophic lateral sclerosis
一种基于密文分析的密码识别技术*
一种基于密文分析的密码识别技术*