云存储是基于云计算建立起来的一种新型的网络存储技术,其可以为数据用户提供“无限”的存储空间[1].当用户将数据资源上传至云存储系统后,其将失去对数据的实际控制,尤其对于敏感的数据资源,数据拥有者应该能够控制数据的访问权限.因此,将数据加密处理并设计灵活细粒度的访问控制机制对于保护云存储系统中数据资源的安全至关重要.属性基加密(attribute based encryption, ABE)[2]作为一种公钥密码原语,可以为云存储系统提供灵活细粒度的访问控制,对于保护云中数据资源安全发挥重要作用.依据访问策略位置的不同,可以将ABE分为密钥策略属性基加密(key-policy ABE,KP-ABE)方案[3]和密文策略属性基加密(ciphertext-policy ABE, CP-ABE)方案[4].ABE概念提出后,相关学者提出大量研究工作[5-7].
随着移动互联网和移动智能终端的快速发展,使用移动终端访问云存储系统中的数据成为一种趋势,而移动智能终端受限的计算资源和电量资源致使其不能承载过大的计算负担和通信负担.传统的属性基加密在私钥生成、数据加密和解密阶段往往需要大量的计算,且计算量与属性集合或访问策略复杂度呈线性增长关系,这将给属性授权机构和移动终端带来严重的计算负担和电量损耗.为解决该问题,相关学者提出外包ABE方案[8-10].即,在保证数据机密性的情况下将部分计算外包给云服务商,而属性授权机构和移动终端只需要少量的计算即可.
Green等人[11]提出一种解密运算外包ABE方案,该方案在解密过程中首先将密文传送给解密外包服务器,解密外包服务器对密文进行一次密文转换获得中间密文再传送给用户,达到降低本地解密计算量的目的.王皓等人[12]在给出外包ABE方案的形式化定义后,构造了一个具体的外包CP-ABE方案.该方案在标准模型下基于双系统加密技术证明了方案是自适应安全,但该方案效率较低.Lai等人[13]所提方案在实现外包解密的同时,支持了外包计算的正确性验证.Li等人[14]通过MapReduce实现了ABE数据加密的外包计算,且该方案支持树形访问策略,具有丰富的表达能力,但该方案没有考虑外包解密计算.
Li等人[15]提出一种支持私钥生成和解密计算外包的ABE方案,但该方案不能验证外包计算结果的正确性.Zhou等人[16]提出一种同时支持加密和解密计算外包ABE方案.该方案将访问策略分成“AND”门连接的2部分子访问策略,然后将一部分访问策略的加密任务外包给加密服务提供商,用户只需完成一个属性的加密任务,通过该方法隐藏随机盲化因子s.但该方案只支持根节点为“AND”门的访问策略树;另外,该方案支持解密计算外包.Li等人[17]提出一个支持私钥生成和解密外包的ABE方案.该方案雇佣2个密钥生成服务提供商,共同帮助属性授权机构完成私钥生成工作.Fan等人[18]提出一种可验证外包的多授权访问控制方案.该方案将大部分加密和解密计算任务外包给雾节点,以减轻用户的计算负担.同时该方案能够验证外包计算结果的正确性.Li等人[19]提出一种新奇的可验证外包解密ABE方案.该方案的密文长度与访问策略复杂度无关,但该方案只支持解密计算外包,且访问策略的表达能力有限.
上述方案都没有实现完全外包,即将私钥生成、加密和解密计算同时外包给第三方.Zhang等人[20]提出一种完全外包CP-ABE方案,即将密钥产生、加密和解密都外包给云服务商,并且完成了方案的安全性证明.但该方案无法验证外包计算结果的正确性,而可验证性对于云存储系统应用至关重要.
针对上述问题,本文提出一种支持可验证的完全外包CP-ABE方案.该方案可以同时实现密钥生成、加密和解密的计算外包,并且其能够验证外包计算结果的正确性.具体来说,属性授权机构雇佣2个不能合谋的密钥生成云服务商生成中间私钥ISKx,其中x={1,2}.然后属性授权机构根据ISKx只需简单计算便可完成私钥生成工作;本文引入一个缺省属性ξ重新构造访问策略完成加密外包工作;通过私钥SK重新构造转换密钥TK和取回密钥RK,然后解密云服务商通过TK完成密文的部分解密工作;另外,通过2个杂凑函数完成外包计算结果的正确性验证.该方案可以有效减轻属性授权机构和用户的计算负担.本文基于决策性q-BDHE(q-bilinear Diffie-Hellman exponent)假设在随机预言机模型下证明了所提方案的选择明文攻击的不可区分安全性,提供了所提方案的可验证性证明.最后,理论分析与实验验证表明所提方案在功能性和效率方面具有优势,更加适合实际应用情况.
本节主要介绍文中所需的相关技术,包括双线性群、线性秘密共享方案和决策性q-BDHE假设.
双线性群是密码系统中重要的关键技术.令ψ是一个群生成算法,其以安全参数λ作为输入,输出(p,G,GT,e).其中p是由安全参数λ决定的素数,G和GT是阶为素数p的循环群.双线性映射e:G×G→GT满足下列性质:
1) 双线性.对于∀u,v∈G,a,b∈
p,有e(ua,vb)=e(u,v)ab.
2) 非退化性.存在g∈G,使得e(g,g)在GT中的阶是p.
3) 可计算性.对于∀u,v∈G,可以有效计算e(u,v).
线性秘密共享方案(linear secret sharing scheme, LSSS)的定义是参与者集合P上的一个密钥共享方案Π如果满足下列2个条件,则被称为
p上的线性秘密共享方案.
1) 每个实体的秘密份额构成
p 上的一个向量.
2) 对于每个秘密共享方案Π,存在一个生成矩阵M(l×n),对于矩阵M中的每一行i=1,2,…,l,映射ρ:{1,2,…,l}→P把M的每一行映射到参与者ρ(i),ρ为单射函数.考虑向量v=(s,y2,…,yn),s∈
p 是共享密钥,y2,…,yn∈
p 随机选择用来隐藏s,Mv是l个秘密份额形成的向量,其中λi=(Mv)i表示参与者ρ(i)所持有的秘密份额.
LSSS方案具有线性重构特性.假设Π是访问策略
的一个线性秘密共享,设S∈
是一个访问授权集合,定义为I={i:ρ(i)∈S}.如果{λi}是对秘密s的有效共享份额,那么可以在多项式时间内找到一组常数{wi∈
p}i∈I,使等式
λi=s成立.
令G表示阶为素数p的双线性群,g和h为群G的2个独立生成元,选取随机值α∈![]()
,然后定义yg,α,l=(g1,g2,…,gl,gl+2,…,g2l)∈G2l-1,其中gi=g(αi).算法通过输出值z∈{0,1}进行猜测,若|Pr[B(g,h,yg,α,l,e(gl+1,h))=0]-Pr[B(g,h,yg,α,l,Z)=0]|≥ε,则定义其拥有优势ε来解决群G和GT下的决策性q-BDHE问题.若无多项式时间算法以不可忽略的优势来解决决策性q-BDHE问题,那么我们就说决策性q-BDHE假设在群G和GT中是成立的.
本文基于Waters的CP-ABE方案[21]提出支持可验证的完全外包CP-ABE方案,方案中的用户私钥与属性集合S相关联,密文与访问策略(M,ρ)相关联.为了确保在外包加密过程中数据的机密性,本文建立了一个混合访问策略Str=(M,ρ)∧{ξ},其中∧代表“AND”门,(M,ρ)代表原访问策略,ξ代表缺省属性.也就是说,在任意一个指定的访问策略(M,ρ)中,本文通过“AND”门在原访问策略(M,ρ)中引入缺省属性ξ来构造混合访问策略Str=(M,ρ)∧{ξ}.本文通过这种巧妙的构造,使得原访问策略可以是任意形式.在加密过程中,数据拥有者完成ξ的加密,E-CSP完成(M,ρ)的加密,且不会泄露明文信息.
本文所用相关名词及其缩写如表1所示:
Table 1 Related Terms and Their Acronyms
表1 相关名词及其缩写
AcronymTermDOData OwnerDUData UserAAAttribute AuthorityKG-CSPKey Generation-Cloud Service ProviderE-CSPEncryption-Cloud Service ProviderD-CSPDecryption-Cloud Service ProviderS-CSPStorage-Cloud Service ProviderISKIntermediate Secret Keys
Fig. 1 System model of fully outsourced ABE
图1 完全外包属性基加密系统模型
本文所提方案的系统模型如图1所示.其中,密钥生成云服务商(KG-CSP)、加密云服务商(E-CSP)、解密云服务商(D-CSP)和存储云服务商(S-CSP)是该系统模型实现完全外包功能的核心组件.它们分别提供私钥生成服务、数据加密服务、数据解密服务和数据存储服务.但在服务过程中,它们不能知道用户私钥和数据明文.本文方案中,数据拥有者(DO)可以使用移动计算终端加密明文信息并存储到云端;数据用户(DU)可以使用移动计算终端从云端下载密文信息并解密,且移动计算终端可以承受这种计算负载.
本文假设属性授权机构(AA)是一个完全可信的密钥分发机构;云服务商是诚实但好奇的(honest but curious)[22],即云服务商会诚实地按照正确的步骤执行,但是由于好奇心,其会在工作过程中窥探数据中的隐私.2个KG-CSP不能互相合谋共享数据,因此最终获得的ISK对于2个KG-CSP是信息隐藏的.
本文所提VFO-CP-ABE方案(fully outsourced CP-ABE with verifiability)包含9个多项式时间算法.
Setup(1λ):该算法由AA运行,其以安全参数λ作为输入,输出系统公钥PK和主私钥MSK.
KeyGeninit(PK,N):该算法由KG-CSPx运行,其以系统公钥PK和系统属性集合N(系统属性总数量)作为输入,输出中间私钥ISKx,其中x={1,2}.
KeyGenpackage(MSK,S,ISK1,ISK2):该算法由AA运行,其以系统主私钥MSK、用户属性集合S和中间私钥ISKx(x={1,2})作为输入,输出用户私钥SK.
KeyBlind(SK):该算法由DU运行,其以用户私钥SK作为输入,输出转换密钥TK和取回密钥RK.
Encryptinit(m):该算法由DO运行,其以明文消息m∈M作为输入,输出加密密钥对(EKE-CSP,EKDO).
EncryptE-CSP(PK,(M,ρ),EKE-CSP):该算法由E-CSP运行,其以系统公钥PK、访问策略(M,ρ)和加密密钥EKE-CSP作为输入,输出中间密文CTE-CSP.
EncryptDO(PK,(M,ρ),EKDO,CTE-CSP,m):该算法由DO运行,其以系统公钥PK、访问策略(M,ρ)、加密密钥EKDO、中间密文CTE-CSP和明文消息m∈M作为输入,输出密文CT和验证标志VKm.最后,DO将CT和VKm发送给S-CSP.
DecryptD-CSP(TK,CT):该算法由D-CSP运行,其以转换密钥TK和密文CT作为输入,输出转换密文TC.
DecryptDU(TC,VKm,RK):该算法由DU运行,其以转换密钥TC、验证标志VKm和取回密钥RK作为输入,输出明文消息m或者中止符⊥.
本文考虑这样一个敌手:敌手A是一些恶意用户并且能够与KG-CSPx(x只能为1或者只能为2),E-CSP,D-CSP,S-CSP进行合谋,其能够获取恶意用户的私钥,KG-CSPx的ISKx(x只能为1或者只能为2),E-CSP的加密密钥EKE-CSP和中间密文CTE-CSP,D-CSP的转换密钥TK,S-CSP的密文CT.不失一般性,本文假设x=1,然后A试图去解密其他正常用户的密文.
选择明文攻击安全游戏.本文针对提出的VFO-CP-ABE方案描述了选择性选择明文攻击(chosen plaintext attack, CPA)安全游戏.具体描述如下.
系统初始化:敌手A将要挑战的访问策略(M*,ρ*)传送给仿真者B.
系统建立:B执行Setup算法,然后将PK发送给敌手A.
查询阶段1:仿真者B初始化空表T0,空集合E和整数j=0.敌手A可以对属性集合S重复进行以下任何查询.
1) Create(S):仿真者B设置j
j+1,运行2次KenGeninit算法获得中间私钥ISK1和ISK2,运行KenGenpackage获得关联属性集合S的私钥SK,运行KeyBlind算法获得转换密钥TK和取回密钥RK.最后将(j,S,SK,TK,RK,ISK1)存储于表T0中.
注意:敌手可以重复询问相同的属性集合S.其中,f((M*,ρ*),S)≠1.但A能够提交满足(M*,ρ*)的属性集合S′进行Corrupt ISK1询问.
2) Corrupt SK(i):B验证第i个实体(i,S,SK)是否存在于表T0中.如果存在,设置E
E∪{S}并且返回SK;否则返回终止符⊥.
3) Corrupt ISK1(i):仿真者B验证第i个实体(i,S,ISK1)是否存在于表T0中.如果存在,返回ISK1;否则返回终止符⊥.
4) Corrupt TK(i):B验证第i个实体(i,S,TK)是否存在于表T0中.如果存在,返回TK;否则返回终止符⊥.
挑战阶段:敌手A提交2个等长的消息m0和m1,然后仿真者B随机选择b∈{0,1},并基于挑战访问策略(M*,ρ*)和明文消息mb运行Encryptinit获得加密密钥对
,
,运行EncryptE-CSP获得中间密文
,运行EncryptDO获得明文消息mb的密文CT*和验证标志
.最后,B将
,CT*,
发送给敌手A.
查询阶段2:类似查询阶段1,敌手A继续向仿真者B提交一系列属性列表.
猜测阶段:敌手A输出一个值b′∈{0,1}作为对b的猜测.如果b′=b,我们称敌手A赢得了该游戏.敌手A在该游戏中的优势定义为:
(λ)
Pr[b=b′]-1
2.
定义1. 若无多项式时间敌手以不可忽略的优势来攻破上述安全模型,那么我们就说本文提出的VFO-CP-ABE方案是选择明文安全.
可验证性游戏.可验证性可以确保转换阶段是否被正确执行,通过仿真者B和敌手A之间的博弈游戏描述VFO-CP-ABE方案的可验证性,具体过程如下.
系统建立:仿真者B执行Setup算法,然后将PK发送给敌手A,自己保留主私钥MSK.
查询阶段1:B按照方案私钥生成方式响应敌手A的询问.因为B知道MSK,所以其能回答所有私钥询问.
挑战阶段:敌手A提交一个明文m*和一个访问策略(M*,ρ*).仿真者B运行Encryptinit获得加密密钥
,运行EncryptE-CSP获得中间密文
,运行EncryptDO获得(CT*,
.最后,B将它们发送给敌手A.
查询阶段2:B按照查询阶段1方式响应敌手A的询问,但是敌手A不能询问满足访问策略(M*,ρ*)的属性集合S.
猜测阶段:敌手A输出满足f((M*,ρ*),S*)=1的S*和TC*.若DecryptDU(TC*,RKS*,
∉{m*,⊥},则A赢得了上述游戏.A在该游戏中的优势定义为
(λ)
Pr[A Wins].
定义2. 若无多项式时间敌手以不可忽略的优势来攻破上述安全模型,那么我们就说本文提出的VFO-CP-ABE方案具有可验证性.
本节给出VFO-CP-ABE方案的详细构造过程,及方案的选择性CPA安全证明和可验证性证明.
VFO-CP-ABE方案包含9个多项式时间算法.每个算法详细叙述如下.
Setup(1λ):该算法选择一个阶为素数p的双线性群G,g为群G的生成元,hξ,h1,…,hU∈G为随机群元素.另外,随机选择指数α,β∈
p并计算g1=gβ.选择杂凑函数H0:{0,1}2λ→{0,1}*,H1:{0,1}*→
p,H2:{0,1}*→{0,1}λ.最后,输出系统主私钥MSK=
gα
和系统公钥PK=
G,g,g1,e(g,g)α,hξ,h1,…,hU,H0,H1,H2
.
KeyGeninit(PK,N):该算法随机选择指数r′并计算D′=gβ r′和L′=gr′.对于j=1到N,计算![]()
对于j=ξ,计算
.最后,输出中间密钥为ISKx=(D′,L′,
,其中x={1,2}.
KeyGenpackage(MSK,S,ISK1,ISK2):该算法以主私钥MSK、属性集合S={att1,att2,…,attk}和2个独立的ISK1=(D′,L′,
,ISK2=(D″,L″,
作为输入,然后该算法计算L=L′·L″=g(r′+r″)=gr,
′·D″=gβ(r′+r″)=gβ r,
·
,这隐含设置r=r′+r″.获得
,L,{Dj}j∈[1,k]∪{ξ}).最后,计算
·gα=gαgβ r并输出属性集合S关联的私钥SK=
D,L,{Dj}j∈S∪{ξ}
.
KeyBlind(SK):该算法选择一个随机值δ∈
p,然后计算
,
.对于j∈S∪{ξ},计算
.最后,输出取回密钥RK=δ和转换密钥TK=
,
,![]()
.
Encryptinit(m):该算法随机选择R∈GT,并计算s=H1(R,m).然后,其随机指定一个一次多项式q(·),其中q(0)=s.进一步设置s1=q(1),s2=q(2).最后,输出加密密钥EKE-CSP={s1}和EKDO={s,s2,R}.
EncryptE-CSP(PK,(M,ρ),EKE-CSP):该算法输入PK,(M,ρ),EKE-CSP.其中,M是一个l×n矩阵;函数ρ是一个单射函数,其将M的每一行映射到一个属性.该算法随机选择向量v=(s1,y2,…,yn)∈
p,其用于共享加密指数s1.对于i=1到l,计算λi=(vM)i,其中Mi是矩阵M的第i行.最后,输出中间密文为CTE-CSP=
C′=gs1,{Ci=gβ λi
}1≤i≤l
.
EncryptDO(PK,(M,ρ),EKDO,CTE-CSP,m):该算法通过计算t=H2(R),C=R·e(g,g)α s,C″=m⊕t,VKm=H0(t‖C″),
,Cξ![]()
C,C″,
,Cξ
和验证标志VKm=H0(t‖C″).
最后,DO输出密文CT=
CTDO,CTE-CSP
,然后将VKm和CT发送给S-CSP.
DecryptD-CSP(TK,CT):假设用户私钥关联的属性集合S∪{ξ}满足密文CT关联的混合访问策略Str=(M,ρ)∧{ξ}.参与者下标集合I⊆{1,2,…,l}被定义为I={i:ρ(i)∈S},如果{λi}是对秘密s1的有效共享份额,那么可以在多项式时间内找到一组常数{wi∈
p}i∈I使得
λi=s1.我们注意到,可能有几种不同的方法来选择wi来满足上述公式.另外,解密算法只需要知道M和I就能确定这些常数.DU将TK发送到D-CSP,D-CSP按下列公式计算:
T′

(g,g)αs1δ,
(1)
T″![]()
(g,g)αs2δ.
(2)
然后我们能够计算获得T=e(g,g)αsδ.输出转换密文TC=
C,C″,T
.最后,D-CSP将转换密文TC发送给DU.
DecryptDU(TC,VKm,RK):DU接收到TC后,计算R=C
(T)1
δ,t=H2(R).若H0(t‖C″)≠VKm,则输出终止符⊥;否则计算m=C″⊕t和s=H1(R,m).若C=R·e(g,g)α s,T=e(g,g)α s δ,输出m;否则输出终止符⊥.
定理1. 假设决策性q-BDHE假设在群G和GT中成立,那么本文所提VFO-CP-ABE方案是随机预言机模型下选择性CPA安全.
证明. 假设存在一个多项式时间敌手A能够以不可忽略的优势ε在选择性CPA安全模型下攻破本文方案,那么我们能够构建一个仿真者B以不可忽略的优势解决决策性q-BDHE困难问题.敌手A是一些恶意用户并且能够与KG-CSPx(x只能为1或者只能为2)、E-CSP、D-CSP、S-CSP进行合谋.本文假设2个KG-CSP不能互相合谋共享数据,而ISK是由ISK1和ISK2计算获得,所以在敌手A的视角里ISK是信息隐藏的.不失一般性,本文假设x=1,然后敌手A试图去解密其他正常用户的密文.因此,敌手A能够提交满足(M*,ρ*)的属性集合S′进行ISK1询问,而其不能获取任何关于ISK的有用的信息.
B输入决策性q-BDHE挑战元组(g,h,yg,α,l,Z),其中,Z是群GT中的随机元素或者是e(gl+1,h),yg,α,l=(g1,g2,…,gl,gl+2,…,g2l)∈G2l-1.
系统初始化:敌手A选择一个需要挑战的访问策略T*=(M*,ρ*)并发送给仿真者B.
系统建立:B按照Waters方案[21]中挑战者C的方式计算PK=
G,g,g1=ga,e(g,g)α,h1,…,hU,hξ
,然后仿真者B将公钥PK发送给敌手A.
查询阶段1:B初始化空表T0,T1,T2,空集合E和整数j=0.敌手A可以对属性集合重复进行以下任何查询.
1) Random Oracle Hash H1(R,m):若表T1中存在实体(R,m,s),则返回s;否则,选择一个随机值s∈
p,并在表T1中记录(R,m,s),返回s.
2) Random Oracle Hash H2(R):若表T2中存在实体(R,t),则返回t;否则,选择一个随机值t∈{0,1}λ,在表T2中记录(R,t),返回t.
3) Creat(S):B从敌手A处接收到属性集合S的私钥询问后,在属性集合中增加缺省属性ξ,即私钥询问集合为S∪{ξ}.然后,B设置j
j+1,并按照Waters方案[21]中挑战者C的方式计算获得SK=
D,L,{Dj}j∈S∪{ξ}
.B运行KenGeninit获得ISK1,运行KeyBlind获得转换密钥TK和取回密钥RK.最后将(j,S,SK,TK,RK,ISK1)存储于表T0中.
注意:A可以重复询问相同的属性集合S,其中S满足f((M*,ρ*),S)≠1.但A能够提交满足(M*,ρ*)的属性集合S′进行ISK1询问.
4) Corrupt SK(i):B验证第i个实体(i,S,SK)是否存在于表T0中.如果存在,设置E
E∪{S}并且返回SK;否则返回终止符⊥.
5) Corrupt ISK1(i):仿真者B验证第i个实体(i,S,ISK1)是否存在于表T0中.如果存在,返回ISK1;否则返回终止符⊥.
6) Corrupt TK(i):B验证第i个实体(i,S,TK)是否存在于表T0中.如果存在,返回TK;否则返回终止符⊥.
挑战阶段:敌手A提交2个等长的明文消息m0和m1.B随机选择“消息”(R0,R1)∈GT,随机选择b∈{0,1},然后按照Waters方案[21]中C的方式获得明文Rb关联(M*,ρ*)的密文
,C′,{Ci}i∈[1,l]〉(将Waters方案中s改变为s1,
等同于Waters方案中C);然后B计算s=H1(Rb,mb)和t=H2(Rb),并设置s2=s-s1,然后计算
,
,e(gs2,gα′);接下来,仿真者B计算C″=mb⊕t,
(t‖C″),
·e(gs2,gα′);最后,仿真者B将CT*=
C,C″,
,Cξ,C′,{Ci}i∈[1,l]
,
,
(t‖C″)发送给敌手A.
查询阶段2:类似查询阶段1,敌手A继续向B提交一系列属性列表.
猜测阶段:敌手A输出一个值b′∈{0,1}作为对b的猜测.如果b′=b,B输出0表示猜测Z=e(gn+1,h);否则输出1表示猜测Z为群GT中的随机元素.当Z=e(gn+1,h)时,仿真者B能够提供一个有效的仿真.因此得出:Pr[B(g,h,yg,α,l,e(gl+1,h))=0]=1
2+AdvA;当Z为GT中的随机元素时,mb对于A来说是完全随机的,因此得出:Pr[B(g,h,yg,α,l,Z)=0]=1
2.因此,B能以不可忽略的优势攻破决策性q-BDHE假设.
证毕.
定理2. 假设H0和H2是抵抗合谋攻击的杂凑函数,那么VFO-CP-ABE方案具有可验证性.
证明. 假设敌手A可以攻破可验证性,那么可以构建一个仿真者B打破底层杂凑函数H0和H2的抗合谋攻击能力.敌手A提交2个挑战杂凑函数
,
,然后B仿真实验过程如下.
系统建立:B执行Setup算法获得公钥PK和主私钥MSK,并用
和
替换公钥PK中的杂凑函数.注意:B知道主私钥MSK.
查询阶段1:B按照方案算法适应性回答敌手A的询问.
挑战阶段:敌手A提交一个挑战明文m*和一个访问策略(M*,ρ*).仿真者B首先计算获得随机值R*∈M的密文CTR*=〈C,C′,Ci,
,Cξ〉,然后计算t*
,C″*=m*⊕t*,
C″*).最后,B将CT*=〈CTR*,C″*〉和
发送给敌手A,自己保留
和(R*,C″*).
查询阶段2:B按照查询阶段1方式响应敌手A的询问,但是敌手A不能询问满足访问策略(M*,ρ*)的属性集合S.
猜测阶段:A输出属性集合S*(f((M*,ρ*),S)=1)和转换密文TC=〈C,C″,T〉.
若敌手A攻破可验证性,那么仿真者B将通过DecryptDU(TC*,RKS*,
恢复出明文m∉{m*,⊥}.现在分析敌手A成功的可能性.若
,则解密算法输出终止符⊥,其中,
和R=C
T1
RKS*.因此,我们只需考虑以下2种情况.
情况1:(t,C″)≠(t*,C″*).因为仿真者B知道(t*,C″*),若这种情况发生,则B立即得到杂凑函数
的碰撞.
情况2:(t,C″)=(t*,C″*),但R≠R*.因为
,所以这将打破
的抗合谋攻击能力.
通过上述分析完成定理2的安全证明.
证毕.
为评估本文所提VFO-CP-ABE方案的计算效率,本节从理论层面分析了私钥生成、加密和解密阶段的计算开销,将本文方案与文献[12,18-21]中相关ABE方案在计算效率方面进行对比分析.对比过程中,|U|表示系统所有属性数量;|S|表示DU所拥有的属性数量;s和l分别表示满足解密需求的属性集合和LSSS中矩阵M的行数.另外,EG和EGT分别表示G和GT中的模指数运算;P表示双线性对运算.为对比公平,假设文献[18]只有一个AA.表2给出了原理方面的效率对比.文献[12]加密阶段采用离线
在线技术,为便于比较,将其与其他方案外包技术等同对比.
Table 2 Comparison of Efficiency and Outsourcing Capability
表2 效率及外包能力对比分析
SchemesKey GenerationEncryptionDecryptionKG-CSPAAE-CSPDOD-CSPDUVerifiabilityRef [21](2+|S|)EG(2l+1)EG+1EGTsEGT+(2s+1)PNoRef [12](4+|S|)EG3|U|EG2EG+EGTsEG+sEGT+(3s+2)P1EGTNoRef [18](5+2|S|)EG(3l+1)EG1EGT(3s+1)EG+sEGT+(2s+1)P1EGTYesRef [19]3EG6EG+2EGT4P2EG+2EGTYesRef [20](4|S|+3)EG0(5l+1)EG1EGT(2s+2)EG+sEGT+(3s+2)P1EGTNoOurs(2|S|+6)EG0(2l+1)EG3EG+1EGTsEGT+(2s+4)P3EGTYes
各方案效率及外包能力对比如表2所示.其中文献[21]是一个基本CP-ABE方案,本文基于文献[21]提出VFO-CP-ABE方案.本文方案实现了可验证的完全外包功能.这种方法能够减少AA,DO,DU的计算量,极大缓解计算资源受限终端的计算负担.在原始文献[21]中,属性授权机构、数据用户和数据拥有者都需要计算大量的对运算和指数运算.文献[19]仅支持外包解密计算,可以验证计算结果的正确性.文献[19]虽然不支持密钥生成和加密的外包计算功能,但是其实现了密文长度恒定,在密钥生成和加密阶段只需较少的计算,其不足之处是仅支持“AND”门访问策略,表达能力有限.文献[12]支持离线
在线加密和解密计算外包功能,但该方案不支持外包解密正确性验证,且AA需要计算大量的指数运算.文献[18]支持加密和解密计算外包功能,并且可以验证计算结果的正确性,但是其AA需要计算大量的指数运算.文献[20]和本文方案同时实现了密钥生成、加密和解密计算外包功能.但文献[20]不支持可验证性,不能保证计算结果的正确性.
综合分析,只有本文方案实现了密钥生成、加密和解密的外包计算功能,减少了终端的计算量,支持可验证性.外包计算对于电量和计算资源有限的移动设备具有重要意义.本文所提方案是有效且实际的.
通过理论分析,本文方案在功能和效率方面具有优势.为了进一步评估本文方案的实际性能,本节通过以下实验环境测试了文献[20]和本文方案在私钥生成、数据加密和数据解密方面的计算时间.
实验环境:64 b Ubuntu 14.04操作系统、Intel® CoreTM i5-6200U(2.3 GHz)、内存4 GB,实验代码基于PBC-0.5.14 (pairing-based cryptography library)与CPABE-0.11进行修改与编写,并且使用224 b MNT的椭圆曲线.
实验设置:在CP-ABE方案中,访问策略的复杂度影响加密和解密时间.为了说明这一点,本文用(S1 AND S2 AND…AND Sn)形式的访问策略模拟最复杂的情况,其中每个Si都是一个属性.这种方法保证了所有密文组件都参与解密计算.本文以这种形式每次递增10,从10增加到100产生10种不同的访问策略.对于每个访问策略,重复20次实验且每次实验完全独立,然后取平均值作为实验结果.
属性基加密一般与对称加密相互配合实现明文数据的加密,即首先用对称密钥加密明文,然后用属性基加密封装对称密钥.因此,本文为获得基准结果,基于上述访问策略封装了一个128 b对称密钥.测试实验结果如图2所示.
Fig. 2 Comparison of simulation time
图2 仿真时间对比
图2有6个子图.每个子图给出本文方案与文献[20]方案的执行时间对比情况.
图2(a)和图2(d)说明KG-CSP承担大部分密钥生成工作,且密钥生成时间与属性数量呈线性增长关系.属性授权机构只需承担少量计算即可完成密钥生成工作.在4.1节中,本文分析AA的计算量为0,这是因为本文忽略了乘法运算、杂凑运算等计算量小的运算,它们是次要的因素.图2(b)和图2(e)说明E-CSP承担大部分的加密工作,且加密时间与访问策略的复杂度呈线性增长关系.数据拥有者只需恒定的计算量即可完成加密工作.图2(c)和图2(f)说明D-CSP承担大部分的解密工作,密文转换时间与访问策略的复杂度呈线性增长关系.用户解密只需要常量计算即可完成解密工作,与访问策略的复杂性无关.
图2(a)、图2(b)和图2(c)说明密钥生成时间、加密时间和解密时间随属性集合或访问策略复杂度的增加而增加.同时,通过2种方案对比发现,本文方案在云端的计算花费小于文献[20],这种优势随着属性数量或访问策略复杂度的增加而变得更加明显.图2(d)说明文献[20]和本文方案的AA都只需较少计算量即可完成密钥生成工作,且效率相当.图2(e)和图2(f)说明文献[20]的DO和DU较本文方案需要更少的计算,但是这种差距是非常小的,且不会随着属性数量或访问策略复杂度的增加而变化.
综上所述,本文方案在云端的计算小于文献[20]方案,且随着属性数量或访问策略复杂度的增加而变得更加明显,这有助于AA和用户租用较少的云计算资源,节约成本.本文方案在本地计算量略高于文献[20]方案,但这种差距非常小且不随着属性数量或访问策略复杂度的增加而变化.另外,本文方案支持解密外包可验证性,文献[20]不具备该能力.
为提高CP-ABE方案效率,本文提出一种支持可验证的完全外包CP-ABE方案VFO-CP-ABE.该方案可以同时实现密钥生成、加密和解密计算外包功能,并且能够验证外包计算结果的正确性.该方案可以有效缓解属性授权机构、数据拥有者和数据用户的计算负担,尤其面向具有大量用户的云存储系统和资源有限的用户,优势更加明显.然后,在随机预言机模型下证明了所提方案的选择明文攻击的不可区分安全性,提供了所提方案的可验证性证明.最后,理论分析与实验验证结果表明所提方案在功能性和效率方面具有优势,更加适合实际应用情况.
[1]Zhou Jun, Cao Zhenfu, Dong Xiaolei, et al. Security and privacy for cloud-based IoT: Challenges[J]. IEEE Communications Magazine, 2017, 55(1): 26-33
[2]Sahai A, Waters B. Fuzzy identity-based encryption[G] 
LNCS 3494: Proc of Int Conf on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2005: 457-473
[3]Goyal V, Pandey O, Sahai A, et al. Attribute-based encryption for fine-grained access control of encrypted data[C] 
Proc of the 13th ACM Conf on Computer and Communications Security. New York: ACM, 2006: 89-98
[4]Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[C] 
Proc of the 28th IEEE Symp on Security and Privacy. Washington: IEEE Computer Society, 2007: 321-334
[5]Rouselakis Y, Waters B. Practical constructions and new proof methods for large universe attribute-based encryption[C] 
Proc of the 20th ACM SIGSAC Conf on Computer & Communications Security. New York: ACM, 2013: 463-474
[6]Emura K, Miyaji A, Nomura A, et al. A ciphertext-policy attribute-based encryption scheme with constant ciphertext length[G] 
LNCS 5451: Proc of Int Conf on Information Security Practice and Experience. Berlin: Springer, 2009: 13-23
[7]Lewko A, Okamoto T, Sahai A, et al. Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption[G] 
LNCS 6110: Proc of Int Conf on the Theory and Applications of Cryptographic Techniques. Berlin: Springer, 2010: 62-91
[8]Fang Yuejian, Wen Zilong, Shen Qingni, et al. POSTER: Ciphertext-policy attribute-based encryption method with secure decryption key generation and outsourcing decryption of ABE ciphertexts[C] 
Proc of the 11th Int Conf on Security and Privacy in Communication Systems. Berlin: Springer, 2015: 585-589
[9]Zhang Kai, Ma Jianfeng, Liu Jiajia, et al. Adaptively secure multi-authority attribute-based encryption with verifiable outsourced decryption[J]. Science China Information Sciences, 2016, 59(9): 99-105
[10]Wang Hao, He Debiao, Shen Jian, et al. Verifiable outsourced ciphertext-policy attribute-based encryption in cloud computing[J]. Soft Computing, 2017, 21(24): 7325-7335
[11]Green M, Hohenberger S, Waters B. Outsourcing the decryption of ABE ciphertexts[C] 
Proc of the 20th USENIX Conf on Security. Berkeley, CA: USENIX Association, 2011:34-34
[12]Wang Hao, Zheng Zhihua, Wu Lei, et al. Adaptively secure outsourcing ciphertext-policy attribute-based encryption[J]. Journal of Computer Research and Development, 2015, 52(10): 2270-2280 (in Chinese)(王皓, 郑志华, 吴磊, 等. 自适应安全的外包CP-ABE方案研究[J]. 计算机研究与发展, 2015, 52(10): 2270-2280)
[13]Lai Junzuo, Deng R H, Guan Chaowen, et al. Attribute-based encryption with verifiable outsourced decryption[J]. IEEE Transactions on Information Forensics and Security, 2013, 8(8): 1343-1354
[14]Li Jingwei, Jia Chunfu, Li Jin, et al. Outsourcing encryption of attribute-based encryption with mapreduce[G] 
LNCS 7618: Proc of Int Conf on Information and Communications Security. Berlin: Springer, 2012: 191-201
[15]Li Jin, Chen Xiaofeng, Li Jingwei, et al. Fine-grained access control system based on outsourced attribute-based encryption[G] 
LNCS 8134: Proc of European Symp on Research in Computer Security. Berlin: Springer, 2013: 592-609
[16]Zhou Zhibin, Huang Dijiang. Efficient and secure data storage operations for mobile cloud computing[C] 
Proc of the 8th Int Conf on Network and Service Management. Laxenburg: Int Federation for Information Processing, 2012: 37-45
[17]Li Jin, Huang Xinyi, Li Jingwei, et al. Securely outsourcing attribute-based encryption with checkability[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(8): 2201-2210
[18]Fan Kai, Wang Junxiong, Wang Xin, et al. A secure and verifiable outsourced access control scheme in fog-cloud computing[J]. Sensors, 2017, 17(7): 1695-1710
[19]Li Jiguo, Sha Fengjie, Zhang Yichen, et al. Verifiable outsourced decryption of attribute-based encryption with constant ciphertext length[J]. Security and Communication Networks, 2017: No.3596205
[20]Zhang Rui, Ma Hui, Lu Yao. Fine-grained access control system based on fully outsourced attribute-based encryption[J]. Journal of Systems and Software, 2017, 125(C): 344-353
[21]Waters B. Ciphertext-policy attribute-based encryption: An expressive, efficient, and provably secure realization[G] 
LNCS 6571: Proc of Int Workshop on Public Key Cryptography. Berlin: Springer, 2011: 53-70
[22]Chai Qi, Gong Guang. Verifiable symmetric searchable encryption for semi-honest-but-curious cloud servers[C] 
Proc of the 2012 IEEE Int Conf on Communications. Piscataway, NJ: IEEE, 2012: 917-922