属性盲化的模糊可搜索加密云存储方案
2019-08-27曹来成王玮婷康一帆郭显冯涛
曹来成, 王玮婷, 康一帆, 郭显, 冯涛
(兰州理工大学 计算机与通信学院,甘肃,兰州 730050)
随着云计算技术的日益普及[1-2],使越来越多地用户都愿意将数据交给云存储服务器(cloud storage server,CSS)来完成,但是云存储服务器并非完全可信,它对用户的数据存在一定的好奇心,这就使得云存储面临严峻的安全挑战. 其中对数据的加密存储是防止信息暴露在云存储服务器中的最好办法,但是对数据加密之后会增大数据使用者对访问数据的搜索难度,一些可搜索加密方案[3-4]的提出解决了上面的问题.
Sahai和Waters[5]提出的模糊IBE方案中首次给出了基于属性加密的概念. 该方案使用了门陷访问结构,接收者能够解密发送者的密文,当且仅当接收者的属性集与发送者的属性集相似度大于或等于某个门陷值. 文献[6-7]将基于属性加密(attribute-based encryption, ABE)机制分为两部分:密钥策略(key-policy)的ABE(KP-ABE)和密文策略(ciphertext-policy)的ABE(CP-ABE). 在KP-ABE协议[8]中,访问控制策略存在于密钥中,而属性集合包含在密文中. 在CP-ABE[9]协议中却恰恰相反,密钥中包含了属性集合,而密文中包含了访问控制策略. 文献[10]中提出了一种可验证的基于属性关键字搜索(verifiable attribute-based keyword search, VABKS)方案,通过构建一种访问树来制定访问控制策略,并且在这个访问树可以进行秘密共享. 但是在构建的访问树中,每个叶子节点表示和关键字相关的属性暴露在半可信的云存储服务器中.
文献[11]中介绍了一种通过离线/在线的方法有效增强属性关键字搜索(attribute-based keyword search efficiency enhancement via an online/offline approach, OO-ABKS)方案,主要是针对于离线或者在线的移动设备而构建. 数据拥有者分别对数据进行离线加密和在线加密,同时使用者也需要在线解密和离线解密. 虽然最后将大量的解密计算分配到了离线部分,但是相对的两次加解密大大增加了计算开销.
由于一般的CP-ABE可搜索加密方案中属性关键字都会以明文的形式暴露在云服务器中,这样云存储服务器就有可能依据这些与属性相关的关键字做一些恶意操作[12]. 故本文提出了一种属性盲化的模糊可搜索加密云存储(attribute blinding fuzzy searchable encryption cloud storage, ABFSECS)方案.
1 ABFSECS方案系统模型
ABFSECS方案系统模型如图1所示,它由4个实体组成:可信授权中心、云存储服务器、数据拥有者和数据使用者.
① 可信授权中心(trusted authorization center):它是一个完全可信的密钥生成中心. 它根据每一个数据拥有者的属性集生成加密外包数据的私钥;也为每一个数据使用者生成解密私钥.
② 云存储服务器(cloud storage server):用来执行数据的访问控制策略并对加密数据进行预解密操作. 云服务器检查是否使用者的属性集满足数据拥有者定义的访问控制策略,若不满足则终止,否则云服务器帮助数据使用者进行预解密计算,最后将预解密信息发送给数据使用者.
③ 数据拥有者(data owner):根据公私钥对加密上传数据,生成加密密文和关键字索引,自己根据属性集定义一个访问控制策略,将加密密文和索引一起上传至云存储服务器.
④ 数据使用者(data user):利用公私钥和身份生成与属性相关的门陷值,当门陷值满足访问控制策略时,进行最后简单的解密操作获得相关明文信息.
2 基础技术
2.1 双线性对
设G和GT是两个素数阶为q的循环群,g是G的一个生成元,如果映射e:G×G→GT满足下面3条性质[13]:
① 双线性:对∀α,β∈Zq,∀P,Q∈G,e(P,Q)αβ=e(Pα,Qβ).
② 可计算性:对∀P,Q∈G,存在有效的算法计算e(P,Q)∈GT.
③ 非退化性:e(P,Q)≠1.
那么称e是一个双线性映射,将G作为加法群,GT作为乘法群. 映射e是对称的:e(P,Q)αβ=e(Pα,Qβ)=e(Pβ,Qα).
2.2 双线性Diffie -Hellman(DH)假设
2.3 访问控制策略
定义1 数据使用者属性集.
设n个数据使用者u1,u2,…,un的属性集为A,则A={A1,A2,…,An},其中数据使用者ui(i=1,2,…,n)的属性Ai={ai1,ai2,…,aimi},令
(1)
(2)
3 ABFSECS方案
ABFSECS方案的设计思想为:①系统以双线性对体制为基础产生可信授权中心的公钥pk和主密钥msk,由可信授权中心产生数据拥有者的私钥skDO和数据使用者的私钥skDU;②为了保护数据使用者的属性隐私,可信授权中心对所有数据使用者的属性进行盲化运算;③数据拥有者为了保护自己的数据隐私,使用自己的私钥skDO对自己的数据明文m加密为密文C,产生供数据使用者搜索时进行属性权限认证的关键字索引Index,并上传它们到云服务器存储;④当数据使用者进行搜索时,利用公钥pk和自己的私钥skDU产生搜索关键字的门陷值Trapdoor,并提交给云服务器进行属性权限认证,若认证成功,云存储服务器发送预解密密文m′给数据使用者;⑤数据使用者利用预解密密文m′和自己的私钥skDU,解密密文C得要搜索的明文m. 具体步骤如下.
步骤1 Setup(1λ)→(pk,msk),系统建立步骤输入安全参数λ,输出公钥pk和主私钥msk.
可信授权中心通过运行Setup算法初始化系统. 它选择两个素数阶为p的循环群G和GT,其中g是G的生成元,并选择一个双线性映射e:G×G→GT. 令H:{0,1}*→G是随机预言机中一个哈希函数. 随机选择α,β,δ,r∈Zp和G→g. 令公钥pk=(G,GT,e(g,g)r,g,gα,gβ,gδ,H),主密钥msk=(α,β,δ).
步骤2 BlindAttrs(A)→b,属性盲化步骤输入n个数据使用者的属性集A,输出A的聚合盲化属性b.
为了防止数据使用者ui(i=1,2,…,n)的属性Ai在访问控制树中以明文形式分配在叶子节点中,需要首先对属性进行盲化处理以保护数据使用者ui的属性隐私,如图2所示.
图2 盲化数据使用者的属性Fig.2 Blinding attribute of the data users
① 数据拥有者选择随机数τ∈Zp,盲化数据使用者ui的属性aij:
(gaij)τ=bij(i=1,2,…,n;j=1,2,…,mi).
② 聚合盲化属性bij,根据式(1)得
gτai=bi(i=1,2,…,n)
③ 聚合盲化属性bi,根据式(2)得
步骤3KeyGen(pk,msk,SDO,SDU)→(skDO,skDU)
密钥生成步骤输入主私钥msk,公钥pk,使用者的属性集SDU. 最后分别输出数据拥有者和使用者的私钥skDO和skDU.
步骤4Encrypt(m,pk,skDO)→(C),加密步骤输入明文m、公钥pk和数据拥有者的私钥skDO,输出数据密文C.
数据拥有者使用其私钥加密数据m. 数据拥有者随机选择r1,r2∈Zp,计算C1=mE,C2=gα(r1+r2),C3=gβ r2,则生成密文C=(C1,C2,C3).
步骤5IndexGen(pk,skDO)→(Index),索引生成步骤输入明文m的l个关键字W={w1,w2,…,wl},公钥pk,数据拥有者私钥skDO,输出关键字W索引Index.
① 数据拥有者计算数据使用者搜索1个关键字的l个元素的索引集
i=1,2,…,l}.
i,j=1,2,…,l,i≠j}.
i,j,t=1,2,…,l,i≠j且i≠t且j≠t}.
C2gβr1H(w1‖w2‖…‖wl)}.
则数据使用者搜索1,2,…,l个关键字的索引集为
⑥ 数据拥有者计算KW2=gδ b,KW3=Db,KW4=gβ r2.
则关键字W的索引为
Index=(KW1,KW2,KW3,KW4).
步骤6TrapdGen(pk,skDU)→(Trapdoor),门陷生成步骤输入公钥pk、数据使用者私钥skDU,输出门陷值Trapdoor.
1)利用公钥pk,数据使用者计算TD1:
TD1=(gδ)r1=gδr1.
2)数据使用者利用自己的私钥skDU计算TD2.
① 若数据使用者以W={w1,w2,…,wl}中某1个关键字wi(i∈{1,2,…,l})进行搜索,则令w=wi.
② 若数据使用者以W={w1,w2,…,wl}中某2个关键字wi,wj(i,j∈{1,2,…,l}且i≠j)进行搜索,则令w=wi‖wj.
③ 若数据使用者以W={w1,w2,…,wl}中某3个关键字wi,wj,wt(i,j,t∈{1,2,…,l}且i≠j且i≠t且j≠t)进行搜索,则令w=wi‖wj‖wt.
④ 同理,若数据使用者以W={w1,w2,…,wl}中某4,5,…,l-1个关键字进行搜索,则令w为这4,5,…,l-1个关键字的级联.
⑤ 若数据使用者以W={w1,w2,…,wl}中某l个关键字w1,w2,…,wl进行搜索,则令w=w1‖w2‖…‖wl. 计算TD2=gQgRH(w),则Trapdoor=(TD1,TD2).
步骤7Search(Trapdoor,skDU)→(1/0),搜索步骤输入门陷值Trapdoor和使用者的私钥skDU,当搜索满足时输出1,否则输出0.
数据使用者使用其私钥skDU和r2计算EDU=e(g,g)Pr2.
云服务器根据数据使用者提供的门陷值Trapdoor和拥有者提供的关键字索引集运行下面的匹配算法:
e(kw1,KW2)/(EDUe(KW3,KW4))=
e(TD1,TD2).
(3)
步骤8PreDec(pk,d)→(m′),预解密步骤输入公钥pk和聚合后的盲化属性b,输出预解密密文m′.
若计算式(3),输出为1,云存储服务器计算
m′=(e(g,g)r)b=e(g,g)rb.
云存储服务器发送m′给数据使用者.
步骤9Decrypt(C,m′,skDU)→(m),解密步骤输入密文C、预解密密文m′和使用者的私钥skDU,输出数据明文m.
数据使用者根据本地接收到的密文、预解密密文和解密密钥skDU做简单的解密计算得到明文:
me(g,g)α b/e(g,g)α b=m.
4 正确性和安全性分析
4.1 正确性证明
证明等式式(3)的正确性.
设数据使用者进行模糊查询,输入关键字
w∈{w1,w2,…,wl}∪{w1‖w2,w1‖
w3,…,wl-1‖wl}∪{w1‖w2‖w3,w1‖
w2‖w4,…,wl-2‖wl-1‖wl}∪
{w1‖w2‖…‖wl-1‖wl}.
由式(3)得,存在由w计算出的kw1∈KW1,则
e(kw1,KW2)/(EDUe(KW3,KW4))=
e(C2gβ r1H2(W),gδ b)/
(e(g,g)r br2e(Db,gβ r2))=
e(g,g)α δbr1e(g,g)β δbr1H2(W)e(TD1,TD2)=
e(gδr1,gQgRH(W))=
e(g,g)α δbr1e(g,g)β δbr1H2(W).
故
e(kw1,KW2)/(EDUe(KW3,KW4))=
e(TD1,TD2).
由上面的证明可以得出等式式(3)成立. 说明只有当使用者的门陷值和拥有者的关键字索引相匹配时最后才返回1,表示使用者已经被授权访问加密数据. 否则返回0.
4.2 安全性证明
4.2.1 抗伪造攻击性
定义2:攻击模型.
挑战者C随机选择α,β,δ,r∈Zp,生成pk=(G,GT,e(g,g)r,g,gα,gβ,gδ,H)和msk=(α,β,δ),将pk发送给攻击者Λ,msk自己保留. 攻击者递交一组属性集Q作为数据使用者属性集.
以两个关键字为例,设攻击者Λ产生两个关键字w0和w1,这两个关键字必须在之前的搜索中没有出现过,将w0和w1提交挑战者C.
挑战者C产生模仿门陷Trapdoor,攻击者Λ输出一个β的猜测β′使β′=β.
定理1 如果BDH问题是计算困难的,则对于定义2,ABFSECS方案不存在攻击者能以不可忽略的优势在在多项式时间内赢得挑战者,即ABFSECS方案具有不可伪造性.
证明 假设存在一个多项式时间攻击者Λ具有不可忽略的优势Adv抵抗ABFSECS方案的构建.
Setup:挑战者C运行Setup(1λ)步骤生成pk=(G,GT,e(g,g)r,g,gα,gβ,gδ,H)和msk=(α,β,δ),将pk发送给攻击者Λ,msk自己保留.
Guess:攻击者Λ输出β的一个猜测β′.
由于gα,gβ为系统公钥,假设攻击者Λ可以计算出gβ2,攻击者Λ计算:
当攻击者Λ猜测到β′=β时,则攻击者Λ以一个不可忽略的优势计算出e(g,g)α βδ,即他有不可忽略的优势解决BDH问题,同理可证攻击者Λ猜测到α′=α和δ′=δ时,结论相同.
故ABFSECS方案不存在攻击者能以不可忽略的优势在在多项式时间内赢得挑战者.
4.2.2 抗共谋攻击性
定理2 数据密文抵抗数据使用者与云存储服务器间的共谋攻击.
证明 因为在数据加密过程中会生成随机参数r1,r2→Zp并嵌入到密文中,所以云存储服务器根本得不到任何与明文相关的信息. 当n个数据使用者利用他们的属性私钥skDUi(i=1,2,…,n)组合起来访问加密数据时,就必须得到数据的加密私钥skDO. 但是加密私钥skDO是由主密钥msk生成. 共谋者们必须通过恢复e(g,g)α βδ解决BDH问题来获得主私钥,这在实际计算中是不可行的. 所以数据使用者间或同云存储服务器间的共谋攻击是无法实现的.
4.2.3 抗属性隐私泄露性
定理3 访问控制树不会泄露数据使用者的属性隐私信息.
证明 首先根据步骤2的①,数据拥有者通过随机数τ∈Zp对数据使用者ui(i=1,2,…,n)的每个属性aij进行离散对数盲化操作,然后根据步骤2的②,数据拥有者对每个数据使用者的盲化属性聚合成一个盲化属性,最后根据步骤2的③,数据拥有者对所有数据使用者的盲化属性再次聚合为一个盲化属性b,由计算离散对数的困难性可知,云存储服务器要得到数据使用者的属性信息在计算上是不可行的.
4.2.4 抗数据隐私泄露性
定理4 ABFSECS方案不会泄露数据拥有者的数据隐私信息.
表1从抗属性隐私泄露性、抗伪造攻击性、抗共谋攻击性、抗数据隐私泄露性等方面对比了ABFSECS方案和文献[4]的MACSPP方案及文献[16]的AKPS. 可以发现,只有ABFSECS方案对数据使用者的属性进行了盲化,具有抗属性隐私泄露性.
表1 方案的安全性比较分析Tab.1 Comparison and analysis of schems security
5 性能分析
5.1 计算开销
文献[16]中使用了基于属性关键字的加密(attribute-keyword based data publish-subscribe, AKPS)方案,实现了数据发布和订阅的隐私保护. 并且也对密文数据进行了预解密操作,但是它使用的是线性的秘密共享方案(linear ecret sharing scheme, LSSS),算法复杂度高于访问树很多.
由于文献[4,16]不具有属性盲化步骤BlindAttrs,所以本文主要从数据拥有者的私钥skDO生成、数据使用者的私钥skDU生成、加密步骤Encrypt、索引生成步骤IndexGen、门陷生成步骤TrapdGen、搜索步骤Search、预解密步骤PreDec和解密步骤Decrypt等8方面比较分析ABFSECS方案和文献[4,16]的MACSPP方案和AKPS方案的计算开销,如表2所示. 其中E为求幂运算,M为乘法运算,e为双线性对的操所,H为哈希函数运算;相比较于上面的运算,将Zp中的计算开销忽略不计,S表示数据使用者的属性数.
表2 方案的计算开销比较分析Tab.2 Comparison and analysis of schems computing time
从表2可得,MACSPP方案总的计算开销为
T1=(25+3S)E+20M+(5+2S)e+(2+2M)H.
AKPS方案总的计算开销为
T2=(26+4S)E+16M+8e+(3+2S)H.
ABFSECS方案总的计算开销(舍去3个影响不大的常量时间)为
T=(11+S)E+8M+7e+2H+3≈
(11+S)E+8M+7e+2H.
T1-T=((25+3S)E+20M+(5+2S)e+
(2+2M)H)-((11+S)E+8M+7e+2H)=
(14+2S)+12M+(2S-2)e+2MH>0.
T2-T=((26+4S)E+16M+8e+
(3+2S)H)-((11+S)E+8M+7e+2H)=
(15+3S)E+8M+e+(1+2S)H>0.
即T 另外,在密钥生成步骤中ABFSECS方案生成数据拥有者的私钥skDO和数据使用者的私钥skDU比AKPS方案少1次哈希函数运算、(6+S)次求幂运算、2次乘法运算和S次哈希函数运算,索引生成步骤中ABFSECS方案生成索引比AKPS方案少5次求幂运算、2次乘法运算和2次哈希函数运算,门陷生成步骤中ABFSECS方案生成门陷比AKPS方案少3S次求幂运算、4次乘法运算和1次哈希函数运算,总体上ABFSECS方案的计算开销比AKPS方案少15+3S个求幂运算、8次乘法运算、1次双线性对运算和1+2S个哈希函数运算. 存储开销主要包括:①系统建立步骤中系统参数及公钥pk和主密钥msk及群Zp的存储开销;②密钥生成步骤中数据拥有者和使用者的私钥skDO和skDU的存储开销;③加密步骤中密文C的存储开销;④索引生成步骤中关键字W索引Index的存储开销. 用|GT|、|G|和|Zp|表示群GT、G和Zp中元素的长度大小,|e|表示双线性对的长度大小,|pk|、|msk|、|skDO|和|skDU|表示公钥pk、主密钥msk、数据拥有者的私钥skDO和数据使用者的私钥skDU的长度大小,|C|表示密文C的长度大小,|I|表示每个关键字对应的索引的平均长度大小. 表3比较了ABFSECS方案和文献[4]的MACSPP方案及文献[16]的AKPS方案的存储开销,其中,n表示数据使用者个数,l表示查询关键字集W的个数. 可以看出,系统建立步骤、密钥生成步骤和加密步骤中ABFSECS方案和文献[4]的MACSPP方案及文献[16]的AKPS方案的存储开销相同. 在索引生成步骤中文献[4]的MACSPP方案及文献[16]的AKPS方案的存储开销相同,而ABFSECS方案的存储开销高于这两种方案,原因在于ABFSECS方案实现了模糊可搜索加密,相对于云服务器强大的云存储服务而言,为获得模糊可搜索加密所付出的存储开销代价是值得的. 表3 方案的存储开销比较分析Tab.3 Comparison and analysis of schems storage time 通信开销主要包括:①密钥生成步骤中可信授权中心发送数据拥有者和使用者的私钥|skDO|和|skDU|的通信开销;②加密步骤中数据拥有者发送密文C到云存储服务器的通信开销;③索引生成步骤中数据拥有者发送关键字索引Index的通信开销;④搜索步骤中数据使用者发送搜索关键字门陷值Trapdoor的通信开销;⑤预解密步骤中云存储服务器发送预解密密文m′的通信开销. 用|skDO|和|skDU|表示数据拥有者的私钥skDO和数据使用者的私钥skDU的长度大小,|C|为密文C的长度大小,|I|为每个关键字对应的索引的平均长度大小,|T|为数据使用者某次搜索时搜索关键字门陷值Trapdoor的长度大小,|m′|为预解密密文m′的长度大小. 表4比较了ABFSECS方案和文献[4]的MACSPP方案及文献[16]的AKPS方案的通信开销,其中,n为数据使用者个数,l为查询关键字集W的个数. 可以看出,密钥生成步骤、加密步骤、索引生成步骤和预解密步骤中ABFSECS方案和文献[4]的MACSPP方案及文献[16]的AKPS方案的通信开销相同. 在索引生成步骤中文献[4]的MACSPP方案及文献[16]的AKPS方案的通信开销相同,而ABFSECS方案的通信开销高于这两种方案,原因在于ABFSECS方案实现了模糊可搜索加密,相对于云存储通信的较高带宽而言,为获得模糊可搜索加密所付出的通信开销代价是值得的. 表4 方案的通信开销比较分析 步骤MACSPP[4]AKPS[16]ABFSECSKeyGen|skDO|+n|skDU|同 MACSPP同 MACSPPEncrypt|C|同 MACSPP同 MACSPPIndexGenl|I|+3同 MACSPP2l|I|+2Search|T|同 MACSPP同 MACSPPPreDec|m'|同 MACSPP同 MACSPP 实验环境为Intel(R) Core(TM) i7-7700服务器处理器,3.60 GHz CPU主频,16 GB内存,运行Windows Server2008 R2 Enterprise操作系统. 对本文提出的ABFSECS方案、文献[4]的MACSPP方案及文献[14]的AKPS方案进行了仿真实验. 设置方案中数据使用者数目为40,搜索关键字数目为6,数据使用者的平均属性个数的取值|A|={4,8,12,16,20,24},图3(a)对比了ABFSECS方案、文献[4]的MACSPP方案及文献[16]的AKPS方案的计算开销,可以看出随着数据使用者的平均属性个数的增加而计算开销线性增加,ABFSECS方案的计算开销要小于文献[4]及文献[16]中方案的计算开销. 同样,设置方案中数据使用者为40,数据使用者的平均属性个数为8,搜索关键字数目的取值|W|={3,6,9,12,15,18},图3(b)对比了ABFSECS方案、文献[4]的MACSPP方案及文献[16]的AKPS方案的计算开销,可以看出随着搜索关键字数目的增加而计算开销线性增加,ABFSECS方案的计算开销要小于文献[4]及文献[16]中方案的计算开销. 图3 关键字数目变化时计算开销的对比Fig.3 Comparison of computing time when the number of keywords changes 针对保护基于属性的密文策略可搜索加密云存储机制中数据使用者的属性隐私和实现云存储模糊可搜索加密,提出了一种属性盲化的模糊可搜索加密云存储方案. 该方案可以减少数据使用者的计算时间开销,具有不可伪造性,可抵抗数据使用者与云存储服务器间的共谋攻击,不会泄露数据使用者的属性隐私信息,具有较高的执行效率. 下一步工作是在本方案的基础上针对关联关键字搜索等方面进行研究.5.2 存储开销
5.3 通信开销
6 实验验证
7 结束语