支持用户权限动态变更的可更新属性加密方案

2020-06-09 00:52严新成贾洪勇王仲辉
计算机研究与发展 2020年5期
关键词:私钥密文解密

严新成 陈 越 巴 阳 贾洪勇 王仲辉

1(战略支援部队信息工程大学 郑州 450001)2(郑州大学软件与应用科技学院 郑州 450001)3(西部战区陆军参谋部附属单位 兰州 730030)

云计算技术的大规模应用使得存储数据的隐私保护问题日益凸显.随着用户对数据的安全性和访问控制灵活性提出了更高要求,属性加密技术在解决此类问题上发挥着越来越重要的作用.

在实际应用中,由于用户权限具有动态变化的特性,用户属性发生变更或用户退出系统时,进行用户属性撤销或私钥撤销对于系统安全至关重要,这是属性加密所必须解决的问题,也是研究的一个难点.通常的解决方法是将访问策略中包含被撤销属性的所有密文进行更新,但存在计算及通信开销较大的问题.比如,在系统运行过程中当出现大量用户权限变更频繁(如系统属性撤销、用户属性撤销以及用户退出、用户私钥泄露)时,密文更新带来的巨大计算量易造成系统瓶颈.因此需要考虑一种高效的更新方法,在保证密文安全性的同时能够以较低计算开销来应对属性撤销或用户私钥撤销.

1 相关工作

近年来,许多学者已经关注属性基加密安全数据共享中属性撤销及用户私钥撤销的需求,并在应对高效属性撤销及密文更新的问题上做了大量研究工作.

密文策略属性加密中的属性撤销问题首次在文献[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),由此实现高效的用户权限动态变更,并利用密钥分割技术将数据解密外包来降低用户解密开销.

2 预备知识

2.1 双线性映射

假设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).

2.2 线性秘密共享方案(LSSS)

每一个单调的布尔表达式都可以转化为一个等价的LSSS秘密共享方案[21],一个参与方集合Q上的LSSS秘密共享矩阵是p域上线性的,如果它具有2个性质:

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的大小相关的多项式时间内计算出来,而对于未授权的集合,这些常量值不存在.

2.3 判定性q-Parallel BDHE假设

选择一个阶为大素数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,gabj,…,g(aqbj),g(aq+2bj),…,

g(a2qbj),

∀1≤j,k≤q,k≠j:ga s bkbj,ga2s bkbj,…,

g(aq s bkbj)),

对于敌手而言,区分e(g,g)aq+1s∈G1和G1中的某个随机元素R是困难的.

3 SDCUR-UABE方案设计

3.1 系统模型

本文提出的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方案系统模型

3.2 方案构建

定义双线性映射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′=CCT′SKu=m×e(g,g)αs(e(g,g)αs z)z=m.

(6)

3.3 用户权限变更

用户权限变更包括用户属性撤销、系统属性撤销以及用户私钥撤销3种情况,相对应的用户权限的变化情况分析为:用户某属性因为到期或者其他原因被撤销时,不能影响该用户剩余属性集的解密能力以及拥有该属性的其他用户的解密权限;撤销系统某属性影响拥有该属性的所有用户的解密能力,同时需要对访问策略涉及该属性的所有密文进行更新;用户私钥撤销即撤销该用户的所有访问权限(可以看做是用户属性撤销的特殊情形,等价于撤销该用户所有属性).

3.3.1 用户属性撤销

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),

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)

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)

(17)

同时升级密文构件,即∀ρ(i)=att,

(18)

由于转换密钥和密文中涉及att的构件是同步更新,因此保证了系统属性att撤销之后拥有属性att且撤销前可解密的用户仍然能够解密密文.

2) 用户持有属性att,撤销前不可解密,撤销之后亦不可解密.

同理,撤销系统属性att之后,上述情形用户私钥对应的转换密钥中涉及att的构件以及密文中包含att的构件为同步更新,在系统属性撤销前该类型用户不具备解密条件,撤销之后仍然不具备解密条件.

3) 用户属性集不包含att,撤销前可解密,撤销之后亦可解密.

4) 用户属性集不包含att,撤销前不可解密,撤销之后亦不可解密.

同理可以说明,系统属性att撤销前后上述用户解密权限不变.

3.3.3 用户私钥撤销

当系统中某些用户被判定为“恶意用户”或者某些用户因其他原因退出系统时,需要通过撤销该用户私钥以保证该用户可解密密文的安全性.

4 安全性分析

4.1 安全模型

阶段2.重复阶段1的私钥询问过程,其中问询的属性集合Sq1+1,Sq1+2,…,Sq对应的私钥均不满足要挑战的访问结构M*.

|Pr[b′=b]-12|.

(19)

定义1.SDCUR-UABE方案是安全的,如果在多项式时间内没有敌手能够以不可忽略的优势赢得上述游戏.

4.2 安全性证明

定理1.若判定性q-Parallel BDHE假设成立,那么没有多项式时间的敌手能够选择性地攻破本文提出的SDCUR-UABE方案,其中挑战矩阵为M*,大小为l*×n*,其中l*,n*≤q.

(20)

如果X=∅,则设置hx=gzx.由于zx是随机选取的,因此上述参数是随机分布的.

模拟器首先选择一个随机值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+1bi形式的项都能够被模拟.此外,有因此这些项都能够消去.

仍然令X是满足ρ*(i)=x这一条件的i的集合,模拟器创建Kx:

(23)

(24)

(25)

(26)

证毕.

定理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)

(28)

由于用户各自持有的私钥为不同的随机变量zi且变量t在用户私钥生成时随机选取,此时无法将表达式e((H1(ρ(i))×gVρ(i)),g)βriωi(-t z+t′z′)消去,因此在计算过程中各自属性集不满足访问策略的合谋用户之间无法利用其他用户私钥对应的TK密钥(代理解密服务器持有)构件完成代理解密过程,即合谋攻击失败.

证毕.

5 性能分析及实验验证

5.1 理论分析

本节对SDCUR-UABE方案在数据加解密、用户属性撤销、系统属性撤销以及用户私钥撤销过程的计算开销进行分析.定义符号含义如表1所示:

Table 1 Symbols and Meanings表1 符号及含义

由于方案将大量的解密运算外包给CSS,用户解密时只需1次幂运算即可.综上,用户加密计算开销为(|Ap|+3)exp,解密过程计算开销为exp.

若撤销用户A某属性att,首先在用户私钥对应的转换密钥的更新阶段,授权中心AA首先更新属性密钥需要一次幂操作,代理解密服务器使用更新密钥更新转换密钥只需要一次乘法操作即可完成.由3.3.1节分析可知,此时无需更新密文.

撤销系统某属性att时,需要对所有访问策略涉及att的密文进行更新.本文系统属性撤销过程中AA更新属性密钥需要一次幂操作,然后为访问策略里包含属性att的密文生成一个升级密钥CUK需要1次幂操作,此时AA计算开销为2exp;接下来代理解密服务器使用更新密钥为属性集包含被撤销属性的所有用户更新相应的转换密钥(每次更新只需要一次乘法操作即可完成),计算开销可记为|ASatt|×c;此外,在保证已有密文的前向安全性基础上为保留数据属主原有访问策略的可解密用户范围,需要云存储服务器对密文访问结构中涉及被撤销属性的所有用户更新密文构件(根据获得的升级密钥更新一次密文只需要一次乘法操作即可完成),计算开销为|CTatt|×c.

Table 2 Comparison of Security and Computation Cost in User Attribute Revocation表2 安全性及用户属性撤销过程计算开销对比

Table 3 Comparison of Computation Cost in System Attribute Revocation and User Private Key Revocation表3 系统属性撤销及用户私钥撤销过程计算开销对比

由表2、表3的对比结果可知,文献[4]缺乏解密外包机制导致用户解密计算开销较大,且在用户属性撤销时需要将未被撤销属性的用户私钥和所有访问策略涉及被撤销属性的密文进行更新;类似地,文献[5,8,11,13-15]均存在用户解密开销大的问题,一方面在用户属性撤销时需要同时更新密文密钥,另一方面没有考虑到用户权限变更中的系统属性或者用户私钥撤销情形.文献[20]将解密运算过程中复杂的双线性配对运算外包给云服务商来提高解密效率,但用户属性撤销实质是被撤销属性对应权限的移除,剩余属性权限应当保留,此时可以通过直接更新用户私钥的方式实现,在计算开销上优于“通过计算更新密钥对不包含被撤销属性的用户密钥与包含被撤销属性的密文进行更新”实现的用户属性撤销.

5.2 实验验证

通过理论分析,本文在加解密功能实现和用户权限变更的效率上具有较大优势.为了对方案的实际性能进行评估,本节在密钥生成、数据加密、代理解密以及用户解密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®CoreTMi7-4770 CPU (3.4 GHz)、内存12 GB、基于JPBC(Java pairing-based cryptography)库进行实验代码的编写.

在参与对比方案的具体实现过程中使用(att1ANDatt2AND … ANDattn)形式的访问策略进行测试,其中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 用户私钥撤销过程计算开销

6 结束语

针对云存储系统中因用户权限动态变更带来的密文密钥更新计算开销过大等问题,本文在密文策略属性加密的基础上通过构造属性版本密钥和用户版本密钥设计了SDCUR-UABE方案.撤销用户属性时,无需对其他用户私钥及访问策略中涉及被撤销属性的密文进行更新,有效降低了密钥授权中心与云存储服务器的计算开销;撤销系统属性时,通过更新属性版本密钥并生成转换密钥及密文更新所需要的更新密钥,实现对密文密钥关键构件的可替换更新,有效解决了通用方法中基于密钥分发和重加密实现密文密钥更新带来的计算开销大的问题以及未能保证密文前向安全性问题;撤销用户私钥时,只需要将用户版本密钥进行更新,无需更新密文,避免了存储密文重加密带来的巨大计算及通信开销.此外,方案在设计过程中将解密运算开销较大的部分外包给代理解密服务器,在保证数据安全性的前提下降低了客户端的解密运算开销.理论分析及实验验证表明,本文提出的SDCUR-UABE方案能够实现用户属性、系统属性以及用户私钥的高效撤销,同时保证密文的前后向安全性和用户解密的高效性,从而有效解决了属性基加密云存储系统中因用户权限动态变更所导致的密文密钥更新计算开销过大等问题.

猜你喜欢
私钥密文解密
一种支持动态更新的可排名密文搜索方案
比特币的安全性到底有多高
群智感知网络环境下的一种高效安全数据聚合方案*
基于模糊数学的通信网络密文信息差错恢复
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
炫词解密
支持多跳的多策略属性基全同态短密文加密方案
程序员把7500枚比特币扔掉损失巨大
解密“一包三改”
炫词解密