云计算技术的大规模应用使得存储数据的隐私保护问题日益凸显.随着用户对数据的安全性和访问控制灵活性提出了更高要求,属性加密技术在解决此类问题上发挥着越来越重要的作用.
在实际应用中,由于用户权限具有动态变化的特性,用户属性发生变更或用户退出系统时,进行用户属性撤销或私钥撤销对于系统安全至关重要,这是属性加密所必须解决的问题,也是研究的一个难点.通常的解决方法是将访问策略中包含被撤销属性的所有密文进行更新,但存在计算及通信开销较大的问题.比如,在系统运行过程中当出现大量用户权限变更频繁(如系统属性撤销、用户属性撤销以及用户退出、用户私钥泄露)时,密文更新带来的巨大计算量易造成系统瓶颈.因此需要考虑一种高效的更新方法,在保证密文安全性的同时能够以较低计算开销来应对属性撤销或用户私钥撤销.
近年来,许多学者已经关注属性基加密安全数据共享中属性撤销及用户私钥撤销的需求,并在应对高效属性撤销及密文更新的问题上做了大量研究工作.
密文策略属性加密中的属性撤销问题首次在文献[1]中提出,需要用户与属性授权中心多次交互;文献[2]在文献[1]的基础上为每个用户和属性添加截止日期,解决了密钥多次协商问题.但要求保持用户和授权中心实时在线;文献[3]提出的方案限制了用户剩余属性的解密权限,不符合数据属主设置访问策略的初衷;文献[4]通过实现用户私钥及密文同步更新来达到用户属性撤销的目的,但访问结构单一;文献[5]未考虑系统属性撤销;文献[6]在用户属性及用户私钥撤销时均需要更新部分密文,计算开销较大.
文献[7]提出的属性撤销方案中公钥参数与用户数量线性相关,易造成公钥参数过长;文献[8]在实现属性撤销时只需进行密文密钥部分更新,但用户属性撤销实质上是移除被撤销属性对应的权限,剩余属性权限应保留,此时可以通过直接更新用户私钥的方式实现;文献[9]基于shamir秘密共享及访问树结构提出了属性撤销方案,但在秘密共享的效率上低于线性秘密分享方案(linear secret sharing scheme, LSSS)[10];文献[11]基于文献[12]构造免密钥托管的密钥产生协议,但要求用户属性撤销后不具备任何访问权限,这和实际情况不相符,且方案不能支持高效的系统属性撤销.
文献[13]在撤销属性过程中采用懒惰重加密技术更新密文,计算及通信开销较大;文献[14]利用代理重加密技术将属性撤销实现系统属性撤销,但未给出用户属性撤销及用户私钥撤销算法;文献[15]提出的方案在密钥维护代价方面有待改进,需要考虑如何降低密钥更新的工作量以及实现属性直接撤销;文献[16]利用属性组的概念有效地解决了属性撤销的问题,但组管理器需要更新其他用户的密钥;文献[17]提出一种支持关键字搜索与属性撤销的属性加密方案,可以在分布式多属性授权中心下实现细粒度的搜索授权;文献[18]通过设置代理解密密钥列表实现用户私钥撤销,但未给出属性撤销的实现方法;文献[19]能够实现属性级用户撤销,但需要将被撤销属性对应的密文进行更新,若访问策略涉及被撤销属性的密文数量较多时,云端密文更新计算开销过大.
文献[20]中,中央控制在解密过程中通过直接拒绝为撤销列表中的用户返回中间密文达到撤销用户的目的.虽然所构造方案利用安全两方计算技术解决了密钥托管问题,但此时密文的安全性过度依赖于中央控制的可靠性,被撤销用户若通过某种手段获取密文后仍然具备密文解密能力,因此降低了存储密文的安全性;文献[21]通过对被撤销属性对应的密文进行更新实现用户属性撤销;文献[22]利用属性撤销加密原语和Merkle散列树来实现细粒度的访问控制和可验证的数据删除;文献[23]提出了LU-MA-ABE(large universe and multi-authority attribute-based encryption)方案,同时支持解密外包,属性撤销以及策略更新;文献[24]在雾计算系统中提出基于多授权中心属性签密的数据访问控制方案(data access control scheme based on multi-auth-ority attribute-based signcryption with computation outsourcing and attribute revocation, OMDAC-ABSC),支持匿名身份认证,属性撤销以及公开验证.但上述文献并未就系统属性撤销及用户私钥撤销展开研究.
通过上述国内外相关研究进展分析,现阶段实现支持间接属性撤销的用户权限变更主要依赖于密文密钥的更新.虽然基于属性版本密钥更新可以实现相关密文密钥的同步演化,避免数据重加密的带来的计算开销,但对于用户属性撤销而言,若数据中心包含大量涉及被撤销属性的密文,则计算代价过高.本文基于密文策略属性加密展开研究,通过为用户及属性设置版本密钥,设计支持高效用户属性撤销、用户私钥撤销及系统属性撤销的数据外包密文策略属性加密方案,即SDCUR-UABE(updatable attribute-based encryption scheme supporting dynamic change of user rights),由此实现高效的用户权限动态变更,并利用密钥分割技术将数据解密外包来降低用户解密开销.
假设G0,G1是2个阶为大素数p的乘法循环群,双线性映射e:G0×G0→G1具有3个性质:
1) 双线性性.对任意g1,g2∈G0以及a,b∈
p,都有![]()
2) 非退化性.存在g0∈G0,使得e(g0,g0)≠1.
3) 可计算性.对任意g1,g2∈G0,存在多项式时间算法计算e(g1,g2).
每一个单调的布尔表达式都可以转化为一个等价的LSSS秘密共享方案[21],一个参与方集合Q上的LSSS秘密共享矩阵是
p域上线性的,如果它具有2个性质:
1) 各方共享的秘密形成一个
p域上的矩阵;
2) 秘密共享方案存在一个共享生成矩阵Ml×m,对所有i=1,2,…,l,M的第i行Mi被标识为参与方ρ(i)(ρ:{1,2,…,l}→Q),同时有列向量v=(s,r2,r3,…,rm)T,其中s∈
p是将要共享的秘密值,而r2,r3,…,rm∈
p是随机数.则向量M·v为秘密s的l个共享子秘密,且(M·v)i属于ρ(i).
假定一个LSSS秘密共享方案的访问结构为Λ.令S∈Λ为一个授权属性集合,定义I⊂{1,2,…,l}且I={i:ρ(i)∈S}.存在常量{ωi∈
p}i∈I对任意合法共享秘密{λi},有
其中ε=(1,0,…,0).这些常量值{ωi}可以在与共享生成矩阵M的大小相关的多项式时间内计算出来,而对于未授权的集合,这些常量值不存在.
选择一个阶为大素数p的群G0,其生成元为g.随机选取a,s,b1,b2,…,bq∈
p,给定敌手参数:
y=(g,gs,ga,…,g(aq),g(aq+2),…,g(a2q),
∀1≤j≤q: gs bj,ga
bj,…,g(aq
bj),g(aq+2
bj),…,
g(a2q
bj),
∀1≤j,k≤q,k≠j: ga s bk
bj,ga2s bk
bj,…,
g(aq s bk
bj)),
对于敌手而言,区分e(g,g)aq+1s∈G1和G1中的某个随机元素R是困难的.
定义算法
的输出为d∈{0,1},若输出概率满足
则称
解决群G0中判定性q-Parallel BDHE假设的优势为ε.如果不存在多项式时间算法
能够以不可忽略的优势攻破判定q-Parallel BDHE困难问题,我们称判定q-Parallel BDHE假设成立.
本文提出的SDCUR-UABE方案系统模型如图1所示.系统主要由属性授权中心(attribute auth-ority, AA)、云存储服务器(cloud storage server, CSS)、代理解密服务器(proxy decryption server, PDS)、数据属主(data owner, DO)和数据用户(data user, DU)5个部分组成,分别提供密钥生成、密文存储、代理解密、数据加密和数据解密服务.DO可通过终端进行数据加密并上传至CSS,而DU可通过云端下载数据并解密.在数据解密时,系统将计算开销较大的部分运算外包给代理解密服务器来降低DU计算开销.由于代理解密服务器和云服务商是诚实并好奇的,它们既会诚实地按照指示正确地执行步骤,也会出于好奇在工作过程中窥探用户数据隐私.因此在方案设计中,代理服务器所持有的代理解密密钥并不能将密文还原成明文,而用户上传的数据在云存储服务器中也始终以密文形式存储.各参与方的职责在3.2节方案构建中进行具体描述.
Fig. 1 System model of SDCUR-UABE
图1 SDCUR-UABE方案系统模型
定义双线性映射e:G0×G0→G1以及散列函数H1:{0,1}*→G0.其中,{0,1}*代表任意长度的二进制串.本文方案包含5个阶段:
1) Setup(λ,U)→(PK,MK,PKx).
初始化过程,由属性授权中心执行.输入为安全参数及全局描述.为覆盖最一般的情形,令U={0,1}*,随机选择α,a,β∈
p,设置主私钥MK=(β,gα),公开参数PK=(g,e(g,g)α,ga,H1).属性授权中心为系统属性集中的每个属性x设置属性版本Vx∈
p(可以与时间相关)以及公开属性密钥PKx=gVx.
2) KeyGen(MSK,S)→(SK,TK).
密钥产生过程,由属性授权中心执行.选择随机的变量t,z∈![]()
首先设置转换密钥
TK=(PK,L=gβ t
z,
{Kx}x∈S={(H1(x)×gVx)β t
z}x∈S).
然后设置用户版本密钥VKu=gα
βgat以及用户私钥SK=(z,TK).
3) Encrypt(PK,m∈{0,1}k,(M*,ρ))→CT.
数据加密阶段,由数据属主执行.输入为公开参数PK以及消息m.此外,输入LSSS类型的访问策略(M,ρ),函数ρ将矩阵M的每一行映射到一个属性,其中M是一个l×n的矩阵.算法随机选择列向量v=(s,r2,r3,…,rn)∈![]()
用于共享秘密s.对于所有的i=1,2,…,l,有λi=(M·v)i,其中Mi是矩阵M的第i行.另外,算法随机选择变量r1,r2,…,rl∈
p,产生密文CT=(C,C′,(Ci,Di)),其中:
C=m×e(g,g)αs,
(1)
C′=gβ s
z,
(2)
(Ci,Di)=((C1=ga λ1×(H1(ρ(1))×gVρ(1))-r1,
D1=gr1),…,(Cl=ga λl×(H1(ρ(l))×gVρ(l))-rl,
Dl=grl))
(3)
以及对访问矩阵的描述(M,ρ).
4) Transform(TK,CT)→parCT.
代理解密阶段,由代理解密服务器运行.算法输入为某个属性集合S对应的TK=(PK,L,{Kx}x∈S),以及对应于(M,ρ)的密文CT=(C,C′,(Ci,Di)).若属性集合S不满足设定的访问结构,则输出⊥.若满足,则定义集合I={i:ρ(i)∈S},且满足I⊂{1,2,…,l}.存在常量{ωi∈
p}i∈I,对任意合法共享秘密份额{λi},都有
成立.计算半解密密文为
![]()
![]()
![]()
![]()
![]()
![]()
![]()
(4)
5) UserVerandDec(C′,VKu,parCT)→CT′.
用户验证阶段,由属性授权中心执行,输入为密文构件C′,用户版本密钥VKu及半解密密文parCT并计算:
CT′=e(C′,VKu)
parCT=
e(gβ s
z,gα
βga t)
e(g,g)a t β s
z=e(g,g)α s
z.
(5)
6) Decrypt(SK,CT′)→m.
数据解密阶段,客户端执行,输入为用户私钥及半解密密文并计算:
m′=C
CT′SKu=m×e(g,g)αs
(e(g,g)αs
z)z=m.
(6)
用户权限变更包括用户属性撤销、系统属性撤销以及用户私钥撤销3种情况,相对应的用户权限的变化情况分析为:用户某属性因为到期或者其他原因被撤销时,不能影响该用户剩余属性集的解密能力以及拥有该属性的其他用户的解密权限;撤销系统某属性影响拥有该属性的所有用户的解密能力,同时需要对访问策略涉及该属性的所有密文进行更新;用户私钥撤销即撤销该用户的所有访问权限(可以看做是用户属性撤销的特殊情形,等价于撤销该用户所有属性).
3.3.1 用户属性撤销
撤销用户A某属性att时(对应属性版本为Vatt),AA为用户A产生一个升级密钥
并发送给相应的代理解密服务器.代理解密服务器将用户A私钥对应的TK中关联被撤销属性的密钥构件Kx升级为
其他部分不变,即:
TK′=(PK,L=gβ t
z,{Kx}x∈S).
(7)
对于∀x∈S,x≠att,有:
{Kx}x∈S={(H1(x)×gVx)β t
z}x∈S;
(8)
对于x=att,有:
![]()
(9)
由于用户属性撤销而非私钥撤销,因此用户A剩余属性集的解密能力以及拥有该属性的其他用户的解密权限不变,此时无需更新用户版本密钥.为保证密文的前向安全性,可以从3个方面讨论方案正确性.
1) 撤销att前可解密,撤销之后亦可解密.
由代理解密过程知,在半解密密文parCT以及CT′=e(C′,VKu)
parCT计算过程中,私钥分量TK的更新只影响
中
的计算,即
由LSSS秘密共享方案知,若剩余属性集合仍满足访问结构(即(M,ρ)),则存在常量{ωi∈
p}i∈I使得
即不影响后续解密.
2) 撤销att前可解密,撤销之后不可解密.
同理,若撤销att前可解密,说明在上述过程中最后环节存在常量{ωi∈
p}i∈I使得
而撤销属性att后(可能是关键属性),使得剩余属性集合不满足访问矩阵,因此不存在常量{ωi∈
p}i∈I来恢复共享秘密s.上述情形成立.
3) 撤销att前不可解密,撤销之后不可解密.
同理,若撤销att前不可解密,说明在上述过程中最后环节不存在常量{ωi∈
p}i∈I来恢复共享秘密s.由于访问结构的单调性,显然撤销属性att后剩余属性集合仍不满足访问矩阵,即无法完成解密.上述情形成立.
用户属性撤销过程可由属性授权中心独立完成,只需对用户私钥的部分构件进行更新即可,无需对其他用户私钥对应的转换密钥以及访问策略涉及被撤销属性的密文进行更新,能够极大降低因用户属性撤销引起的权限变更的相关计算开销.
3.3.2 系统属性撤销
系统属性撤销和用户属性撤销类似.由于系统属性撤销涉及包含该属性的所有用户,因此对相应的用户需要分发新的私钥分量TK,同时对访问矩阵中涉及被撤销属性的密文进行更新.
需要说明的是系统属性撤销后,在访问策略不变的情形下,包含被撤销属性的用户解密权限降低,可能会背离数据属主定义策略的初衷,但通过本节提出的属性撤销算法,能够在保证已有密文的前向安全性基础上保留数据属主原有访问策略的可解密用户范围,而非简单地将撤销属性的部分构件去掉.应满足:之前有属性att且可
不可访问的,撤销att后还能
不可访问;对于之前没有att且可访问
不可访问的用户,在系统属性att撤销后仍能保持原有权限.此时用户版本密钥无需更新.
这里,通过对转换密钥和涉及被撤销属性的密文中属性版本的更新,实现系统属性撤销,保证撤销前密文的前向安全性.具体过程为:
撤销系统某属性att时(对应属性版本为Vatt),
AA首先为该属性随机产生一个新的版本
然后
通知所有DO将当前属性密钥PKatt更新为![]()
AA为所有拥有属性att的用户产生一个升级密钥
并发送给相应的代理解密服务器.由于每个用户的解密私钥z不同,因此对应的UUK也不相同,任何用户都不能用别人的UUK来为自己的代理解密密钥TK升级.代理解密服务器将属性集包含att的各个用户私钥对应的TK中关联被撤销属性的密钥构件Kx升级为
其他部分不变.我们有:
TK′=(PK,L=gβ t
z,{Kx}x∈S).
(10)
对于∀x∈S,x≠att,有:
{Kx}x∈S={(H1(x)×gVx)β t
z}x∈S;
(11)
对于x=att,有:
![]()
![]()
(12)
然后AA为所有访问策略中包含属性att的密文产生升级密钥
并发送给云存储服务器,用于将密文中对应属性att的密文构件Ci升级为
升级后的密文为CT=(C,C′,(Ci,Di)),其中:
C=m×e(g,g)αs,C′=gβ s
z.
(13)
∀ρ(i)≠att,
(Ci,Di)=(Ci=ga λi×(H1(ρ(i))×
gVρ(i))-ri,Di=gri);
(14)
∀ρ(i)=att,
![]()
(15)
系统属性撤销过程需要为拥有待撤销属性的用户进行代理解密密钥部分更新,并为访问策略中包含待撤销属性的密文进行相应更新.但通过本节提出的属性撤销算法,能够在保证已有密文的前向安全性基础上保留数据属主原有访问策略的可解密用户范围.为实现上述目标,可从4个方面讨论方案正确性.
1) 用户持有属性att,撤销前可解密,撤销之后亦可解密.
撤销系统属性att之前,转换密钥TK为
TK=(PK,L=gβ t
z,
{Kx}x∈S={(H1(x)×gVx)β t
z)x∈S.
(16)
用户符合解密条件可正常解密;撤销系统属性att之后,通过将属性密钥PKatt更新为
对于x=att,将转换密钥的构件进行升级为
![]()
{(H1(x)×gVx′)β t
z}x∈S.
(17)
同时升级密文构件,即∀ρ(i)=att,
![]()
(18)
由于转换密钥和密文中涉及att的构件是同步更新,因此保证了系统属性att撤销之后拥有属性att且撤销前可解密的用户仍然能够解密密文.
2) 用户持有属性att,撤销前不可解密,撤销之后亦不可解密.
同理,撤销系统属性att之后,上述情形用户私钥对应的转换密钥中涉及att的构件以及密文中包含att的构件为同步更新,在系统属性撤销前该类型用户不具备解密条件,撤销之后仍然不具备解密条件.
3) 用户属性集不包含att,撤销前可解密,撤销之后亦可解密.
由于用户属性集不包含att,则系统属性att撤销之后属性密钥PKatt更新为
关于att的用户转换密钥对应的构件以及密文中访问策略涉及att的构件同步更新,对用户解密权限不影响,即撤销前可解密,撤销之后亦可解密.
4) 用户属性集不包含att,撤销前不可解密,撤销之后亦不可解密.
同理可以说明,系统属性att撤销前后上述用户解密权限不变.
3.3.3 用户私钥撤销
当系统中某些用户被判定为“恶意用户”或者某些用户因其他原因退出系统时,需要通过撤销该用户私钥以保证该用户可解密密文的安全性.
此时属性授权中心AA只需对被撤销用户版本密钥进行更新,当前私钥无需变动.即更新用户版本密钥为
在用户解密验证阶段,需要计算e(C′,VKu)
parCT,即e(gβ s
z,gα
βgat)
e(g,g)at β s
z.用户版本密钥更新之前,和密文处于同一个时间周期,e(g,g)at β s
z可以消去.而版本密钥更新后即需要计算e(gβ s
z,gα
β)e(gβ s
z,gat′)
e(g,g)at β s
z,由于时间周期t值不同,在执行Decrypt(SK,CT′)过程时,显然无法恢复消息m.
现在我们定义SDCUR-UABE方案的敌手
和挑战者C之间的CPA安全游戏.
初始化:挑战者C运行3.2节Setup算法并将公开参数PK传给敌手
主私钥MK自己保留.
阶段1. 敌手
向挑战者C进行多项式有限次的属性集合S1,S2,…,Sq1对应的私钥问询.挑战者C将这些私钥发送给敌手![]()
挑战. 在这个阶段,敌手
从希望被挑战的消息空间中选择2个等长的明文消息m0,m1并提交.此外敌手提交一个要挑战的访问结构M*且阶段1中的属性集合S1,S2,…,Sq1均不满足该访问结构.挑战者随机掷硬币b∈{0,1}并返回给敌手
在访问结构M*下加密mb形成的密文CT*.
阶段2. 重复阶段1的私钥询问过程,其中问询的属性集合Sq1+1,Sq1+2,…,Sq对应的私钥均不满足要挑战的访问结构M*.
猜测. 在这个阶段中,敌手
输出一个对b的猜测b′∈{0,1}.
在这个攻击游戏中敌手
获胜的概率定义为
|Pr[b′=b]-1
2|.
(19)
定义1. SDCUR-UABE方案是安全的,如果在多项式时间内没有敌手能够以不可忽略的优势赢得上述游戏.
定理1. 若判定性q-Parallel BDHE假设成立,那么没有多项式时间的敌手能够选择性地攻破本文提出的SDCUR-UABE方案,其中挑战矩阵为M*,大小为l*×n*,其中l*,n*≤q.
证明. 假设存在一个多项式时间的敌手
能够在上述安全模型中能够以优势
选择性地攻破SDCUR-UABE方案,设其挑战矩阵为M*(l*×n*),其中l*,n*≤q,那么我们可以构建模拟器
能够以不可忽略的优势攻破判定性q-Parallel BDHE假设.
初始化. 模拟器
以判定性q-Parallel BDHE假设中的y,T为输入,敌手
提交访问策略(M*,ρ*),矩阵M*的列数为n*.
建立. 在该阶段模拟器
随机选择α′∈
p并计算e(g,g)α=e(ga,gaq)e(g,g)α′,即有α=α′+aq+1.选择一个随机预言机h并建立一个列表.当调用h时,如果h(x)已经存在列表中,则直接返回结果;如果h(x)不存在列表中,则随机选择zx∈
p.设X是满足ρ*(i)=x这一条件的i的集合,则设置:
![]()
(20)
如果X=∅,则设置hx=gzx.由于zx是随机选取的,因此上述参数是随机分布的.
阶段1. 在该阶段模拟器
回答敌手关于属性集为S的私钥问询,其中S不满足访问矩阵M*.
模拟器首先选择一个随机值r∈
p,并找到一个向量ω=(ω1,ω2,…,ωn*)∈![]()
使得ω1=-1并且对于满足ρ*(i)∈S所有的i,都有
由LSSS定义知这样一个向量必然存在.注意若这样一个向量不存在,则向量(1,0,…,0)为属性集S的长度.模拟器设置
(21)
即t=(r+ω1aq+ω2aq-1+…+ωn*aq-n*+1)
β.通过对t进行定义,可以看到gat包含代数式项g-aq+1
β,在创建VKu的过程中可以通过与gα
β=gα′
β·gaq+1
β进行乘法运算消去.
模拟器计算VKu:
(22)
对于∀x∈S来计算Kx.如果不存在i满足ρ*(i)=x,可令Kx=Lzx×LVx.对于x∈S且x在访问结构中出现的情形,必须保证gaq+1
bi形式的项都能够被模拟.此外,有
因此这些项都能够消去.
仍然令X是满足ρ*(i)=x这一条件的i的集合,模拟器创建Kx:
![]()
![]()
挑战. 敌手提交2个消息m0,m1给
模拟器
随机选择b∈{0,1},并计算C=mb×T×e(gs,gα′)以及
随机选择随机值
并使用向量![]()
![]()
来共享秘密.此外,模拟器选择随机值![]()
p.对于i=1,2,…,n*,定义Ri为所有k≠i且满足ρ*(i)=ρ*(k)的k的集合.挑战密文构件生成为
![]()
(23)
![]()
(24)
阶段2. 和阶段1类似,敌手
继续向模拟器
提交一系列属性集合进行私钥问询,其限制与阶段1相同.
猜测. 敌手
最终输出一个对b的猜测b′.如果b′=b,模拟器输出0来猜测T=e(g,g)aq+1s,否则输出1表示T是群G1中的随机元素.当T=e(g,g)aq+1s时模拟器
提供了一个有效的模拟,根据安全模型中敌手
的优势定义
可以得出:

(25)
当T是群G1中的随机元素时,mb对于敌手而言是完全随机的,因此有![]()
此时模拟器
的优势为

(26)
由于敌手
的优势ε是不可忽略的,因此模拟器
的优势也是不可忽略的,即可以构建模拟器
能够以不可忽略的优势攻破判定性q-Parallel BDHE困难问题.
证毕.
定理2. 本文提出的SDCUR-UABE方案中设置的代理解密服务器不影响方案的安全性,且该方案能够抵抗用户与代理解密服务器之间的合谋攻击.
证明. 首先,方案中设置的代理解密服务器所持有的代理解密密钥TK为半解密密钥,其密钥构件L=gβ t
z及{Kx}x∈S={(H1(x)×gVx)β t
z}x∈S与属性授权中心执行密钥产生算法所选择随机的变量t,z∈![]()
有关.进行代理解密时生成的半解密密文e(g,g)at β s
z对于非授权用户而言仍以密文形式存储,因而在降低合法用户解密开销的同时保证了密文的安全性.
考虑多个用户及代理解密服务器之间进行合谋的场景.正常进行代理解密计算过程为
![]()
![]()
![]()
![]()
(27)
若上述过程用到某用户私钥对应的转换密钥TK的部分构件
和Kxu=(H1(xu)×gVxu)β t′
z′,以及当前密文CT.进行代理解密计算后生成的半解密密文:
![]()
gVρ(i)),g)β riωi(-t
z+t′
z′)=e(g,g)at β s
z×
e((H1(ρ(i))×gVρ(i)),g)βriωi(-t
z+t′
z′).
(28)
由于用户各自持有的私钥为不同的随机变量zi且变量t在用户私钥生成时随机选取,此时无法将表达式e((H1(ρ(i))×gVρ(i)),g)βriωi(-t
z+t′
z′)消去,因此在计算过程中各自属性集不满足访问策略的合谋用户之间无法利用其他用户私钥对应的TK密钥(代理解密服务器持有)构件完成代理解密过程,即合谋攻击失败.
证毕.
本节对SDCUR-UABE方案在数据加解密、用户属性撤销、系统属性撤销以及用户私钥撤销过程的计算开销进行分析.定义符号含义如表1所示:
Table 1 Symbols and Meanings
表1 符号及含义
SymbolsMeanings|U|Number of system attributes|S|Number of attributes in user attributes setdNumber of attributes involved in access policyexpExponentiation in group element^eBilinear pairing operationcMultiplication operations or constantsSKEA symmetric encryption operationtThreshold valuehHeight of the access tree|Ap|Number of user attributes satisfing access policy|CTatt|Number of ciphertexts with att in access policy|ASatt|Number of users with att in user attributes set|CT|Number of ciphertexts in CSP|SK|Number of secret keys in AA
由于方案将大量的解密运算外包给CSS,用户解密时只需1次幂运算即可.综上,用户加密计算开销为(|Ap|+3)exp,解密过程计算开销为exp.
若撤销用户A某属性att,首先在用户私钥对应的转换密钥的更新阶段,授权中心AA首先更新属性密钥需要一次幂操作,代理解密服务器使用更新密钥更新转换密钥只需要一次乘法操作即可完成.由3.3.1节分析可知,此时无需更新密文.
撤销系统某属性att时,需要对所有访问策略涉及att的密文进行更新.本文系统属性撤销过程中AA更新属性密钥需要一次幂操作,然后为访问策略里包含属性att的密文生成一个升级密钥CUK需要1次幂操作,此时AA计算开销为2exp;接下来代理解密服务器使用更新密钥为属性集包含被撤销属性的所有用户更新相应的转换密钥(每次更新只需要一次乘法操作即可完成),计算开销可记为|ASatt|×c;此外,在保证已有密文的前向安全性基础上为保留数据属主原有访问策略的可解密用户范围,需要云存储服务器对密文访问结构中涉及被撤销属性的所有用户更新密文构件(根据获得的升级密钥更新一次密文只需要一次乘法操作即可完成),计算开销为|CTatt|×c.
如3.3.3节所述,当系统中某些用户被判定为“恶意用户”或者某些用户因某种原因退出系统时,需要通过撤销该用户私钥以保证该用户可解密密文的安全性.此时属性授权中心AA只需对被撤销用户版本密钥进行更新,当前私钥无需变动.即更新用户版本密钥为
即可(具体分析过程见3.3.3节),此时属性授权中心AA只需要进行一次乘法运算和一次幂运算即可,而用户私钥对应的转换密钥以及密文无需更新,及代理解密服务器和云存储服务器无需参与计算.本文方案和其他关于属性撤销的经典方案在安全假设、安全模型等各类情况的对比如表2、表3所示.
Table 2 Comparison of Security and Computation Cost in User Attribute Revocation
表2 安全性及用户属性撤销过程计算开销对比
SchemesSecurityAssumptionSecurityModelDecryptionOutsourcingUser DecryptionOverheadUser Attribute RevocationAttribute AuthorityProxy ServerCloud Storage ServerRef [3]Generic Group ModelCPAYes(|Ap|+1)^eRef [4]DBDHCPANo(|U|+1)^e+|U|expc|S|(|ASatt|-1)exp(d|CTatt|)expRef [5]BDHNo(2d+1)^e+(2d+2)exp(2|Ap|+1)exp|CTatt|(d+3)expRef [8]q-parallel BDHECPANo(2|Ap|+1)^e+|Ap|exp4exp2expRef [11]q-parallel BDHECPANo2|Ap|^e+(3|Ap|+2)exp(|S|+4)expcRef [13]q-parallel BDHECPANo^e+5exp|ASatt|exp|CTatt|expRef [14]q-parallel BDHECPANo(2|Ap|+1)^e+(2|Ap|+2)exp(|ASatt|-1)exp|CTatt|expRef [15]DBDHCPANo(|S|+1)^e+(2|S|)expc|CTatt|(d+2)expRef [20]q-parallel BDHECPAYes3exp|ASatt|exp|CTatt|expRef [23]q-DPBDHE2CPAYes(|ASatt|+5)exph×SKE08dexpRef [24]q-parallel BDHECCAYesexp(t+4)exp0(2|CTatt|)exp+|CTatt|cRef [25]q-parallel BDHECPAYes3expOursq-parallel BDHECPAYesexpexpc0
Table 3 Comparison of Computation Cost in System Attribute Revocation and User Private Key Revocation
表3 系统属性撤销及用户私钥撤销过程计算开销对比
SchemesSystem Attribute RevocationUser Private Key RevocationAttribute AuthorityProxy ServerCloud Storage ServerAttribute AuthorityProxy ServerCloud Storage ServerRef [3]Ref [4]Ref [5](2|Ap|+1)exp|CTatt|(d+3)expRef [8]Ref [11]exp+ccRef [13](|ASatt|+1)exp|CTatt|exp(|SK|+1)|S|exp|CT||S|expRef [14]|ASatt|exp|CTatt|exp(|SK|+1)|S|exp|CT||S|expRef [15]Ref [20]c00Ref [23]Ref [24]Ref [25]Ours3exp|ASatt|c|CTatt|cexp00
由表2、表3的对比结果可知,文献[4]缺乏解密外包机制导致用户解密计算开销较大,且在用户属性撤销时需要将未被撤销属性的用户私钥和所有访问策略涉及被撤销属性的密文进行更新;类似地,文献[5,8,11,13-15]均存在用户解密开销大的问题,一方面在用户属性撤销时需要同时更新密文密钥,另一方面没有考虑到用户权限变更中的系统属性或者用户私钥撤销情形.文献[20]将解密运算过程中复杂的双线性配对运算外包给云服务商来提高解密效率,但用户属性撤销实质是被撤销属性对应权限的移除,剩余属性权限应当保留,此时可以通过直接更新用户私钥的方式实现,在计算开销上优于“通过计算更新密钥对不包含被撤销属性的用户密钥与包含被撤销属性的密文进行更新”实现的用户属性撤销.
通过理论分析,本文在加解密功能实现和用户权限变更的效率上具有较大优势.为了对方案的实际性能进行评估,本节在密钥生成、数据加密、代理解密以及用户解密4个方面与VFO-CP-ABE(fully outsourced ciphertext-policy attribute-based encryp-tion with verifiability)方案[25]进行计算时间的仿真实验测试对比.该方案是一种支持可验证的完全外包密文策略属性基加密方案,能够同时实现密钥生成、数据加密以及解密阶段的外包计算功能,解决上述各阶段需要大量计算资源的问题,对于计算资源有限的用户优势更为明显.实验环境描述如下:
Fig. 2 Comparison of computation cost for key steps of SDCUR-UABE
图2 SDCUR-UABE方案中关键步骤计算开销对比
Windows 64 b操作系统、Intel® CoreTM i7-4770 CPU (3.4 GHz)、内存12 GB、基于JPBC(Java pairing-based cryptography)库进行实验代码的编写.
在参与对比方案的具体实现过程中使用(att1 AND att2 AND … AND attn)形式的访问策略进行测试,其中atti代表属性.参与测试的属性数量每次以10递增,选取从10~100共10种访问策略.对于每种策略重复进行多次独立测试,去掉最高值与最低值后取剩余数据平均值作为本次测试对象的实验结果.
实验测试结果如图2所示,图2(a)~(d)分别展示了SDCUR-UABE方案与VFO-CP-ABE方案在密钥生成、数据加密、代理解密以及用户解密4个方面的计算开销对比.由于VFO-CP-ABE方案中转换密钥TK和取回密钥RK由解密用户进行KeyBlind(SK)运算产生,而本文所提方案中转换密钥的产生由属性授权中心产生,无需用户参与.这里将KeyBlind(SK)过程开销计入密钥产生阶段的总开销.从实验结果来看,在密钥生成阶段本文提出的SDCUR-UABE与VFO-CP-ABE计算开销相近;在加密阶段SDCUR-UABE方案的开销随访问策略中的属性数量增加而增大,而VFO-CP-ABE进行加密外包.解密过程包括代理服务器进行部分解密和数据用户解密2个阶段.该过程中2个方案的计算开销都较小,但从结果来看SDCUR-UABE方案更有优势.整体来说,本文提出的方案能够满足实际需求,且在解密运算上具有较高的效率.
讨论用户属性撤销过程的计算开销.这里主要对涉及相关运算的属性授权中心和云存储服务器的计算开销进行测试.由表3分析结果可知,选取用于对比的LU-MA-ABE方案[23]和OMDAC-ABSC方案[24]均支持高效属性撤销.用户属性撤销时,LU-MA-ABE和OMDAC-ABSC方案中无需代理服务器参与运算,而本文中分析代理服务器的开销为常数(如乘法运算等),计算量较小,在实验仿真中开销可忽略.
需要说明的是LU-MA-ABE方案在每次进行属性撤销时候需要对新选取的属性组密钥进行被撤销属性的最小覆盖集(minimum covering set, MCS)元素个数次的对称加密.根据其定义的用于属性组密钥分发的二进制状态树,最小覆盖集元素个数NMCS为树的高度h,即NMCS=h.在实验过程中选取的对称加密密钥长度为128 b,并基于sun.misc.BASE64Encoder和sun.misc.BASE64Decoder实现对属性组密钥的对称加解密.LU-MA-ABE和OMDAC-ABSC方案中属性授权中心的计算开销分别依赖于二进制状态树的高度和门限值的大小,这里选取从1~10共10种不同的变化(递增值为1);而云存储服务器进行密文更新过程计算开销分别依赖于访问结构中涉及的属性数量以及访问结构中涉及被撤销属性的密文数量,这里选取从10~100共10种不同的变化(递增值为10).
用户属性撤销过程中AA的计算开销实验对比结果如图3(a)所示.由于LU-MA-ABE方案需要对属性组密钥进行加密,计算开销较大,且随着状态树的高度增加呈线性增长;OMDAC-ABSC方案中AA主要进行幂运算,相对LU-MA-ABE方案开销较小,但也随着门限值的增加而增大.而本文中用户属性撤销时AA只需要进行固定次数的幂运算,因此计算开销较小.从实验结果来看,测试的相关参与方的计算开销和理论分析一致.图3(b)展示了该过程中云存储服务器CSS的计算开销对比,其中本文提出的SDCUR-UABE方案无需对密文进行更新,因此在用户属性撤销中更为高效.
Fig. 3 Comparison of computation overhead in user attribute revocation
图3 用户属性撤销过程计算开销对比
Fig. 4 Computation overhead in system attribute revocation
图4 系统属性撤销过程计算开销
图4和图5分别展示了SDCUR-UABE方案在系统属性撤销和用户私钥撤销时的计算开销的仿真实验结果.由于大部分方案并未在用户属性撤销的同时对系统属性撤销和用户私钥撤销展开讨论,因此这里只是对本文提出的方案在系统属性撤销和用户私钥撤销过程的性能进行测试和说明.从表3的理论分析可以看出,在这2个阶段中,AA均只需要进行固定次数的幂运算,计算开销较小;而代理服务器和云存储服务器在用户私钥撤销时无需参与运算,在系统属性撤销时候只需要进行固定次数的乘法运算,计算开销可以忽略.从仿真实验结果来看,SDCUR-UABE方案在计算性能上能够满足系统属性撤销和用户私钥撤销的实际需求,且具有较高的效率,能够有效应对加密云存储中频繁的用户权限变更的情形.
Fig. 5 Computation overhead in user private key revocation
图5 用户私钥撤销过程计算开销
针对云存储系统中因用户权限动态变更带来的密文密钥更新计算开销过大等问题,本文在密文策略属性加密的基础上通过构造属性版本密钥和用户版本密钥设计了SDCUR-UABE方案.撤销用户属性时,无需对其他用户私钥及访问策略中涉及被撤销属性的密文进行更新,有效降低了密钥授权中心与云存储服务器的计算开销;撤销系统属性时,通过更新属性版本密钥并生成转换密钥及密文更新所需要的更新密钥,实现对密文密钥关键构件的可替换更新,有效解决了通用方法中基于密钥分发和重加密实现密文密钥更新带来的计算开销大的问题以及未能保证密文前向安全性问题;撤销用户私钥时,只需要将用户版本密钥进行更新,无需更新密文,避免了存储密文重加密带来的巨大计算及通信开销.此外,方案在设计过程中将解密运算开销较大的部分外包给代理解密服务器,在保证数据安全性的前提下降低了客户端的解密运算开销.理论分析及实验验证表明,本文提出的SDCUR-UABE方案能够实现用户属性、系统属性以及用户私钥的高效撤销,同时保证密文的前后向安全性和用户解密的高效性,从而有效解决了属性基加密云存储系统中因用户权限动态变更所导致的密文密钥更新计算开销过大等问题.
[1]Pirretti M, Traynor P, Mcdaniel P, et al. Secure attribute-based systems[C] //Proc of the 13th ACM Conf on Computer and Communications Security. New York: ACM, 2006: 99-112
[2]Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[C] //Proc of IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2007: 321-334
[3]Luan I, Petkovic M, Nikova S, et al. Mediated ciphertext-policy attribute-based encryption and its application[C] //Proc of the 10th Int Workshop on Information Security Applications. Berlin: Springer, 2009: 309-323
[4]Yu Shucheng, Wang Cong, Ren Kui, et al. Attribute based data sharing with attribute revocation[C] //Proc of the 5th ACM Symp on Information, Computer and Communications Security. New York: ACM, 2010: 261-270
[5]Hur J, Dong K N. Attribute-Based access control with efficient revocation in data outsourcing systems[J]. IEEE Transactions on Parallel & Distributed Systems, 2010, 22(7): 1214-1221
[6]Wang Guojun, Liu Qin, Wu Jie, et al. Hierarchical attribute-based encryption and scalable user revocation for sharing data in cloud servers[J]. Computers & Security, 2011, 30(5): 320-331
[7]Wang Pengpian, Feng Dengguo, Zhang Liwu. CP-ABE scheme supporting fully fine-grained attribute revocation[J]. Journal of Software, 2012, 23(10): 2805-2816 (in Chinese)(王鹏翩, 冯登国, 张立武. 一种支持完全细粒度属性撤销的CP-ABE方案[J]. 软件学报, 2012, 23(10): 2805-2816)
[8]Yang Kan, Jia Xiaohua, Ren Kaili. Attribute-based fine-grained access control with efficient revocation in cloud storage systems[C] //Proc of the 8th ACM SIGSAC Symp on Information, Computer and Communications Security. New York: ACM, 2013: 523-528
[9]Huang Qinlong, Ma Zhaofeng, Yang Yixian, et al. EABDS: Attribute-based secure data sharing with efficient revocation in cloud computing[J]. Chinese Journal of Electronics, 2015, 24(4): 862-868
[10]Liu Mengjun, Liu Shubo, Wang Ying, et al. Optimizing the decryption efficiency in LSSS matrix-based attribute-based encryption without given policy[J]. Acta Electronica Sinica, 2015, 43(6): 1065-1072 (in Chinese)(刘梦君, 刘树波, 王颖, 等. 基于LSSS共享矩阵无授权策略的属性密码解密效率提高方案[J]. 电子学报, 2015, 43(6): 1065-1072)
[11]Xia Zhihua, Zhang Liangao, Liu Dandan. Attribute-based access control scheme with efficient revocation in cloud computing[J]. China Communications, 2016, 13(7): 92-99
[12]Hur J. Improving security and efficiency in attribute-based data sharing[J]. IEEE Transactions on Knowledge & Data Engineering, 2013, 25(10): 2271-2282
[13]Qian Huiling, Li Jiguo, Zhang Yichen, et al. Privacy-preserving personal health record using multi-authority attribute-based encryption with revocation[J]. International Journal of Information Security, 2015, 14(6): 487-497
[14]Naruse T, Mohri M, Shiraishi Y. Provably secure attribute-based encryption with attribute revocation and grant function using proxy re-encryption and attribute key for updating[J]. Human-centric Computing and Information Sciences, 2015, 5(1): 8-20
[15]Yan Xixi, Tang Yongli. Attribute-based encryption scheme with efficient revocation in data outsourcing systems[J]. Journal on Communications, 2015, 36(10): 92-100 (in Chinese)(闫玺玺, 汤永利. 数据外包环境下一种支持撤销的属性基加密方案[J]. 通信学报, 2015, 36(10): 92-100)
[16]Li Jiguo, Yao Wei, Han Jinguang, et al. User collusion avoidance CP-ABE with efficient attribute revocation for cloud storage[J]. IEEE Systems Journal, 2018, 12(2): 1767-1777
[17]Cui Jie, Zhou Han, Zhong Hong, et al. AKSER: Attribute-based keyword search with efficient revocation in cloud computing[J]. Information Sciences, 2018, 423: 343-352
[18]Zhang Kai, Ma Jianfeng, Li Hui, et al. Multi-authority attribute-based encryption with efficient revocation[J]. Journal on Communications, 2017, 38(3): 83-91 (in Chinese)(张凯, 马建峰, 李辉, 等. 支持高效撤销的多机构属性加密方案[J]. 通信学报, 2017, 38(3): 83-91)
[19]Wang Jianhua, Wang Guangbo, Xu Kaiyong. Ciphertext policy attribute-based encryption scheme supporting attribute level user revocation under large universe[J]. Journal of Electronics & Information Technology, 2017, 39(12): 3013-3022 (in Chinese)(王建华, 王光波, 徐开勇. 标准模型下可证明安全的支持大规模属性集与属性级用户撤销的CP-ABE方案[J]. 电子与信息学报, 2017, 39(12): 3013-3022)
[20]Zhao Zhiyuan, Zhu Zhiqiang, Wang Jianhua, et al. Revocable attribute-based encryption with escrow-free in cloud storage[J]. Journal of Electronics & Information Technology, 2018, 40(1): 1-10 (in Chinese)(赵志远, 朱智强, 王建华, 等. 云存储环境下无密钥托管可撤销属性基加密方案研究[J]. 电子与信息学报, 2018, 40(1): 1-10)
[21]Wang Guangbo, Liu Haitao, Wang Chenlu, et al. Revocable attribute based encryption in cloud storage[J]. Journal of Computer Research and Development, 2018, 55(6): 1190-1200 (in Chinese)(王光波, 刘海涛, 王晨露, 等. 云存储环境下可撤销属性加密[J]. 计算机研究与发展, 2018, 55(6): 1190-1200)
[22]Xue Liang, Yu Yong, Li Yannan, et al. Efficient attribute-based encryption with attribute revocation for assured data deletion[J]. Information Sciences, 2019, 479: 640-650
[23]Liu Zechao, Jiang Z L, Wang Xuan, et al. Practical attribute-based encryption: Outsourcing decryption, attribute revocation and policy updating[J]. Journal of Network and Computer Applications, 2018, 108: 112-123
[24]Xu Qian, Tan Chengxiang, Fan Zhijie, et al. Secure data access control for fog computing based on multi-authority attribute-based signcryption with computation outsourcing and attribute revocation[J]. Sensors, 2018, 18(5): 1609-1646
[25]Zhao Zhiyuan, Wang Jianhua, Xu Kaiyong, et al. Fully outsourced attribute-based encryption with verifiability for cloud storage[J]. Journal of Computer Research and Development, 2019, 56(2): 442-452 (in Chinese)(赵志远, 王建华, 徐开勇, 等. 面向云存储的支持完全外包属性基加密方案[J]. 计算机研究与发展, 2019, 56(2): 442-452)