文章信息
- 杜瑞颖 , 沈剑 , 陈晶 , 周顺淦 . 2016
- DU Ruiying, SHEN Jian, CHEN Jing, ZHOU Shungan . 2016
- 基于策略隐藏属性加密的云访问控制方案
- An Access Control Scheme in Cloud Storage with Policy Hiding ABE
- 武汉大学学报(理学版), 2016, 62(3): 242-248
- Journal of Wuhan University(Natural Science Edition), 2016, 62(3): 242-248
- http://dx.doi.org/10.14188/j.1671-8836.2016.03.006
-
文章历史
- 收稿日期:2014-12-12
2. 武汉大学 计算机学院,湖北 武汉 430072
2. School of Computer, Wuhan University, Wuhan 430072, Hubei, China
随着互联网和云计算技术的发展,越来越多的人开始使用在线存储服务,将自己的数据存储在云端服务器并进行数据共享.如在电子医疗系统中,人们通过上传电子病历可以随时随地获取诊断信息.但是,在线存储服务给人们带来便利的同时也带来了许多挑战,如何进行云中共享数据的访问控制成为一个重要的关注点.传统方案[1]在解决这一问题时,往往将访问控制转化为复杂的密钥管理问题,这样一方面带来了很大的存储开销,另一方面可扩展性也很差.ABE[2](attribute based encryption)的提出,为云中访问控制提供了一种很好的解决方案.目前,研究者已将ABE广泛应用诸如医疗[3]、多媒体[4]、社交网络[5]等系统.
在ABE方案中,密文策略属性基加密[6](CP-ABE,cipher policy attribute based encryption)将访问控制策略和密文相关联,使数据拥有者具备制定策略的权利,因此非常适用于云中共享数据的访问控制.然而传统CP-ABE中的访问控制策略会和密文一块存放,策略的保护一般没有得到充分的重视,而暴露的访问控制策略可能会泄露用户的很多隐私信息,如电子病历的访问控制策略可能会泄露用户的健康状况等.
针对上述问题,文献[7]提出了具有策略隐藏功能的属性基加密方案,将访问控制策略隐藏在密文中,很好的保护了访问控制策略,但是,该方案只支持“与”操作,而且用户密钥长度与系统中属性总个数成正比,解密时需要大量的双线性对运算,计算开销巨大.文献[8]中使用谓词加密的方法可以保证策略得到有效的保护,同时使用内积加密的方法可以支持析取范式和合取范式的表达,但是密文长度和计算开销都极大,很难实施.文献[9]提出的方案在保证策略得到有效保护的同时,能够支持任意门限或布尔表达式,而且整体的计算开销较上述两种方案大大减小,但是,它在计算令牌时仍需要大量的计算,不利于实施.
策略表达能力受限和用户的解密计算开销大是策略隐藏属性基加密方案中需要解决的问题.本文在文献[9]基础上构造了一个新的具有策略隐藏功能的属性基加密方案PHACS(policy hiding access control scheme),能够对策略进行有效的保护,具备丰富的表达能力.方案采用外包计算的方式来处理用户令牌,可以极大减小用户的计算开销,从而更好的适应ABE在云存储数据共享中的应用和实施.
1 系统模型 1.1 系统模型图1给出了PHACS的系统模型.
![]() |
图 1 系统模型图 Figure 1 System model |
系统模型的组成部分功能如下:
属性授权中心:负责系统初始化,为CP-ABE算法产生系统公钥和主密钥,同时也负责为用户产生对应的私钥,而且它是完全可信的.
数据拥有者:即加密用户,主要负责为其拥有的数据文件指定加密策略,并在相应的策略下进行加密,然后进行上传分享.
云服务提供商:是一个数据存储的实体.主要负责加密数据的存储,以便数据拥有者进行数据的共享,减小用户的存储负担.它是半可信的(即诚实而好奇的,它会正确的执行所应该执行的任务,但会好奇用户的明文信息).
代理服务器:代理服务器接收用户的请求后,根据用户提供的转换密钥,对密文进行转换,减少用户解密时的计算负担.它是半可信的.
数据使用者:即解密用户,数据使用者负责解密和使用数据.如果一个用户所拥有的属性集合能够满足他所请求加密数据所指定的策略,那么他能够正确的解密并恢复出数据.
1.2 算法构成方案由Setup、Encrypt、KeyGen、GenToken、Decryptout、Decrypt 6个算法组成.其流程顺序如图2所示.首先,属性授权中心(AA,attribute authorities)执行Setup算法进行系统初始化.用户需要共享数据时,可以执行Encrypt算法对需要共享的数据进行加密并提交给云服务提供商.用户如果想从云端获取数据,需要在AA进行注册获取对应的私钥,注册时AA会执行KeyGen算法为用户生成私钥.用户获取私钥后执行GenToken算法生成令牌,之后将生成的令牌发送给代理服务器,请求对指定的密文进行代理解密,代理服务器根据令牌和密文执行Decryptout算法,并将结果返回给用户,用户收到后再执行Decrypt算法得到明文.
![]() |
图 2 系统算法流程图 Figure 2 PHACS process |
算法介绍如下:
Setup(λ)→(PK,MK):系统建立算法将安全参数λ作为输入,输出系统公钥PK和系统主密钥MK.该算法由属性授权中心在系统初始化时执行,为系统生成系统公钥和主密钥.
Encrypt(Γ,M,PK)→CT:用户加密算法的输入参数为访问控制结构Γ,消息M,系统公钥PK,输出为密文CT.该算法由加密用户执行,用户在需要分享数据时根据访问控制策略和系统公钥对数据进行加密.
KeyGen(S,PK,MK)→SK:密钥生成算法的输入参数为用户对应属性集合S,系统公钥PK和系统主密钥MK;输出为用户私钥SK=(z,TK),其中z为用户解密密钥,TK为代理密钥.该算法由AA执行,用户进入系统时,依据用户属性为其分配对应私钥.
GenToken(SK,Λ)→ToK:令牌生成算法输入参数为用户私钥SK,用户对应属性集合S的子集Λ,输出为令牌ToK.该算法由解密用户执行,在用户需要解密时,产生令牌,提供给代理服务器,以便代理服务器能够进行代理解密.
Decryptout(CT,ToK,PK)→CTout:代理解密算法输入参数为密文CT,令牌ToK,系统公钥PK,如果用户的属性能满足密文的访问结构,输出转换密文CTout,否则输出⊥.该算法由代理服务器执行,在收到用户令牌后,对请求的密文进行代理解密,将结果返回给用户.
Decrypt(CTout,SK)→M:解密算法输入参数为转换密文CTout,用户私钥SK,如果用户的属性能满足密文的访问结构,输出消息M,否则输出⊥.该算法由解密用户执行,在收到代理服务器代理解密的结果后,进行用户端的解密,如果用户属性符合加密策略,就可得到对应明文.
1.3 安全模型方案安全性是通过一个挑战者C和敌手A之间的安全游戏进行定义的,安全游戏描述如下:
初始化:敌手A选定一个要挑战的访问结构A给挑战者C.
建立阶段:挑战者C运行Setup算法生成系统公钥PK,并将系统公钥PK交给敌手A.
阶段一:敌手适应性的选取属性集合S,请求对应私钥,但这些集合不能满足访问结构A,挑战者C运行KeyGen算法将对应私钥SK发送给敌手A.
挑战阶段:敌手A选择两个等长明文消息M0,M1,指定的访问控制结构A,提交给挑战者C,挑战者C随机选取b∈{0,1},挑战者运行加密算法对Mb加密,将对应密文CT返回给敌手A.
阶段二:与阶段一相同.
猜测阶段:敌手A输出他的猜测b′∈0,1,如果b′=b,那么敌手获胜.并设敌手获胜的优势AdvA=Prb=b′-1/2.
定义1 如果敌手A多项式时间内在上述游戏中获胜的优势是可忽略的,那么本方案是安全的.
1.4 安全需求1) 抵抗共谋攻击. 共谋攻击是指一些用户,他们各自的属性集合均不满足加密数据所指定的策略,但他们属性集合的并集却可以满足对应策略,他们会联合起来试图获取对应的明文.能够抵抗共谋攻击是指这些用户联合起来也无法获取对应的明文信息.
2) 数据机密性. 只有合法的授权用户可以访问对应数据的明文信息.那些属性集合不满足对应策略的用户都不能访问到数据的明文.
代理服务器是半可信的,所以它也不能获取数据的明文信息.
3) 策略的安全性. 云服务提供商和非授权用户应该无法从密文对应的访问控制策略获取相关信息,防止访问控制策略造成的信息泄露.
2 PHACS方案 2.1 知识准备定义2(访问结构) 设P1,P2,…,Pn为参与方集合,访问结构A是P1,P2,…,Pn的一个非空子集,即A⊆2P1,(P2,…,Pn/{∅}.对于∀B,C,如果B∈A并且B⊆C,都有C∈A,那么就称A是单调的.
定义3(双线性对) G1和G2是阶为素数p的乘法循环群,设g是G1的生成元,双线性e:G1×G1→G2映射满足以下三个特点:
1) 双线性:∀P,Q∈G1,∀a,b∈Zp*,都有e(Pa,Qb)=e(P,Qab).
2) 非退化性:eg,g≠1.
3) 可计算性:对∀P,Q∈G1,存在一个有效的算法计算e(P,Q).
定义4 DBDH问题
给一个双线映射e:G1×G1→G2,随机选取a,b,c,d∈Zp,随机选取G1 生成元g,DBDH问题指对于给定元组(ga,gb,gc,eg,gabc)和元组(ga,gb,gc,eg,gd) 无法在多项式时间内以不可忽略的优势进行有效区分.
定义5 访问控制树
Γ是一个树形的访问控制结构.对于它的每个节点x都表示一个门限,设numx表示节点x的孩子数,kx表示节点x代表的门限数(0≤kx≤numx).对于叶子节点x,都有一个属性与之对应,且kx=1.设λx表示节点x所关联的属性,p(x)表示节点x的父节点.节点x的每个子节点都从1到numx进行编号,indexx表示每个节点x对应的索引编号.
Γx表示以x为根节点的树,如果集合γ满足访问控制树Γx,记Γx(γ)=1否则Γx(t)=0.Γxγ计算方式如下:如果x是非叶子节点,对于它的每个孩子节点x′计算Γx′γ,当且仅当有至少kx个孩子节点返回1,Γxγ返回1.如果x是叶子节点,当且仅当λx∈γ,Γxγ返回1.
2.2 方案描述Setup:该算法以安全参数λ为输入,然后生成一个阶为p的群G1,双线性对e:G1×G1→G2,G1的生成元g.对于系统属性集合U中的每个属性i随机唯一选取ti∈Z*p,随机选取α,a∈Z*p,选取函数(H1:G)2→0,1*,输出PK,MK如下:
![]() |
其中MK由AA保存,PK发布给用户.
KeyGen:该算法输入为用户对应属性集合S,系统公钥PK和系统主密钥MK.对应用户的属性集合S,算法随机选取r,z∈Z*p(对于不同用户r,z均不相同)计算:
![]() |
其中
![]() |
输出用户对应私钥SK=(z,TK).
Encrypt:该算法输入为访问控制结构Γ,消息M,系统公钥PK.算法为访问控制树Γ中每个节点构造一个多项式qx,构造顺序由根节点开始,自顶向下.构造规则如下:1) 对于树中每个节点x,其多项式qx的度dx设置为kx-1,其中kx为x节点对应的门限值;2) 对根节点R,随机生成s∈Zp*,使qR0=s,对于其他节点使qx0=qp(x)index(x).
设Y是树的叶子节点的集合,算法随机选取β∈Z*p,计算sy=e((ga)β,hλy)y∈Y,利用(H1(s)y来代替访问控制树中明文存在的λy,并将gβ一起发布,为了方便计算,这个计算可以仅执行一次,存储,供之后使用.
最后计算密文如下:
![]() |
GenToken:该算法输入参数为用户私钥SK,用户对应属性集合S的子集Λ.为了减轻计算负担,这个算法可以分为离线和在线两部分.离线部分:对于所有的j∈S,随机生成ε∈Z*p,计算(Dj(4))ε=(hja)ε,为了方便计算该操作可以只进行一次.在线部分:根据离线计算结果,获取所需访问密文对应的gβ,计算令牌
![]() |
Decryptout:该算法输入参数为密文CT,令牌ToK,系统公钥PK.对于∀j∈Λ,计算sj=e(Tj,T)=eg,(hj)βa,进步计算(H1(s)j.对于树中的叶子节点x,如果有(H1(s)j与其对应,计算
![]() |
否则,记DecryptNodeCT,ToK,x=⊥.
对于非叶子节点x,在此定义一个递归算法DecryptNodeCT,ToK,x :对于节点x,对其所有孩子节点z,计算DecryptNodeCT,ToK,z,并将结果记为Fz.如果存在kx个或以上Fz≠⊥,选其中的kx个组成集合Sx,计算:
![]() |
Z将Fx作为结果返回.如果集合Sx不存在,返回⊥.
如果节点x是访问控制树根节点R,那么将可以获得
![]() |
计算
![]() |
令T0=$\tilde{C}$,获得CTout=(T0,T1).
Decrypt:该算法输入参数为转换密文CTout,用户私钥SK.算法接收到CTout=(T0,T1),计算明文如下:
![]() |
不难看出,当用户属性满足密文指定的访问策略时,使用GenToken算法产生令牌交给代理服务器使其运行Decryptout算法,将能获得转换密文:
![]() |
用户执行Decrypt算法,可计算恢复出明文:
![]() |
1) 抵抗共谋攻击
对于一个属性基加密方案来说,防止用户间的共谋攻击是十分重要的.在方案中,秘密s被嵌入到密文中.一个用户或是攻击者要想解密密文,他就必须恢复出eg,gαs,为了恢复eg,gαs,对于一个攻击者u1不具备的属性y,他需要和另一名具备该属性的用户u2共谋,使用u2私钥中的Dy(3)进行运算,但是,因为用户私钥中加入了随机数r,不同用户的r都不相同,所以即使用户u1和u2共谋,也无法恢复出eg,gαs.
2) 数据机密性
首先,对于一般用户,如果他不满足密文的访问控制策略,用户无法恢复出eg,gars,他将无法获取对应的明文信息.在方案中,代理被认为是诚实但好奇的,它可能去尝试恢复用户的明文信息,它至多可以恢复出eg,gαs/z,由于代理无法获取对应的秘密信息z,因此无法恢复出eg,gαs,所以无法获取对应的明文信息.
3) 策略的安全性
当用户加密数据发送至云服务提供商时,会计算H1[e(ga)β,hλy]来替代访问控制策略树中的每个属性λy,只有拥有对应属性的用户能够计算.对应云服务提供商和其他非授权用户没有掌握秘密a和β,无法计算出e(ga)β,hλy,无法对各个属性进行区分,就无法从访问控制策略中获取额外的信息.
4) 安全性证明
定理1 如果敌手A能够在概率多项式时间内以不可忽略优势赢得安全游戏,那么挑战者C能够以不可忽略的优势解决DBDH问题.
证选取一个可计算的双线映射e:G1×G1→G2,挑战者C和敌手A进行如下游戏:
初始化:给定挑战者C一个DBDH问题(g,ga,gb,gc,Z),挑战者C记f=(g,ga,gb,gc),敌手A选定一个访问结构A给挑战者C.
建立阶段:C 选取函数(H1:G)2→0,1*,对于系统属性集合U中的每个属性i随机惟一选取ti∈Zp*,随机选取x′∈Zp*,设置α=ab+x′,计算
![]() |
将PK输出给A.
阶段一:A提交属性集合S,请求私钥,C接收请求后,随机选取s′,z∈Zp*,设置r=s′-b,计算
![]() |
其中
![]() |
输出私钥SK=(z,TK)给A.
挑战阶段:A随机产生两个等长密文M0,M1,提交给C,C随机选取b∈0,1,C产生密文:
首先,设Y是访问控制树的叶子节点集合,算法随机选取β∈Zp*,计算sy=e((ga)β,hyλ)y∈Y,然后利用(H1(s)y来代替访问控制树中明文存在的λy,并将gβ一起发布.最后,为访问控制树Γ中每个节点构造多项式.
计算密文如下:
![]() |
将CT输出给A.
阶段二:与阶段一相同.
猜测阶段:A输出它的猜测β′,如果β′=β,C输出1,即Z为eg,gabc;否则输出0,即Z为G2中的随机元素.
概率分析:若Z=e(g,g)abc,则$\tilde{C}$=Mb·e(g,g)abc=Mb·Z,C所构成的密文是正确密文,从而有:
![]() |
若Z只是G2中的随机元素,对于A来说明文信息被完全隐藏,其不可能从密文中获取任何关于β的信息,因此Pr[C(f,Z=R)=1]=$\frac{1}{2}$.
综上,C解决DBDH问题的优势为AdvA/2,如果AdvA是不可忽略的,那么C解决DBDH问题的优势不可忽略.证毕.
3.2 理论分析表1展示了文献及本文方案策略所具备的表达能力和对策略的隐藏保护能力,从表1中可以看出本方案和文献[7]、[9]的方案支持对策略隐藏,可以很好的防止非法用户通过策略获取敏感信息;而在策略表达能力方面文献[7]的方案只支持与操作,而本方案和文献[9]、[10]的方案支持任意门限或布尔表达式等多种表达,能够进行细粒度的访问控制.本方案在这两方面都有较好的特性.
表2对各个方案的密文消息长度、私钥长度、系统公钥进行了分析、对比.其中数据拥有者需要发送密文给云服务提供商,用户需要从服务器获取密文,因此密文长度反映了系统中的通信开销.而每个用户需要存储各自的私钥,因此,私钥长度也反映了用户的存储开销.系统公钥是授权中心生成的,它存储在本地或是需要时向授权中心申请获得,分别对应存储和通信开销.从表2中可以看出本方案的用户密文长度较短,更加利于通信传输,私钥长度较短,更加利于用户存储.
本节将通过实验对方案进行评估,选取文献[9]、[10]的方案进行对比.实验中使用的实验环境如下:CPU频率为3.0 GHz,系统为32位的Linux操作系统,内存为3 GB.软件方面,使用了pbc库[11],选取曲线为y2=x3+x,曲线参数为512位.
因为大部分ABE算法的加密、解密操作耗时都和策略中属性的个数相关,为此,实验时选取了20个策略集合(B1&B2&…&BN),其中Bi代表一个属性,N从1变化到20,对于每个策略,计算对相同信息(文件对称加密密钥)的加密、解密耗时.为了使结果更加准确,采取了多次测量求平均值的方法.
图3表示用户加密所需时长,可以看出每个方案的计算时间开销随着属性增加,线性增长,这是因为各个方案中,加密计算操作都与密文长度线性相关,密文长度都随属性数目线性增加.文献[10]加密时长最短,但并没有对密文中的属性进行有效的保护,而本文方案与文献[9]方案虽然耗时较高但支持对策略的保护.
![]() |
图 3 用户加密时间 Figure 3 Encryption cost on user |
图4表示解密操作用户所需时间开销,其中文献[9]的方案和本方案中用户解密操作包括令牌生成和最终解密两部分.三个方案都采取了外包解密的方法,文献[10] 的方案不需要计算令牌,用户解密计算开销维持在常量水平.文献[10] 的方案在计算令牌时需要计算与属性线性相关的对运算,所以它的计算开销随着策略属性数量的增加线性增长.而本方案在计算令牌时同样采取了外包计算的思想,用户令牌计算的开销大大减小,整个解密计算在用户端的开销就显得很小.
![]() |
图 4 用户解密时间 Figure 4 Decryption cost on user |
图5展示了用户私钥产生所需要的计算时间.可以看出各个方案中所花费的时间都随着用户属性数量的增加线性增加,这是因为用户私钥中每一个属性都有其对应部分,因此就有相对应的计算操作,属性个数越多,计算时间就越长.而对应用户的一个属性,文献[9]的方案计算开销较多,因此所花费的时间就较多.
![]() |
图 5 私钥生成时长 Figure 5 Cost of private key generation |
展示了用户所需存储的密钥长度,即用户的存储代价,可以看出各个方案中所需要的存储开销都随着用户属性数量的增加而增加,但由于对一个用户属性,文献[9]的方案对应3个密钥分量,而文献[10]的方案和本方案则只对应2个密钥分量,因此文献[9]的方案的存储代价相对较大,本方案和文献[10]的方案存储代价相对较小.
![]() |
图 6 存储开销 Figure 6 Length of private key |
针对云存储数据共享服务中的访问控制问题,现有的策略隐藏属性基加密方案存在表达能力受限和计算操作复杂问题,本文提出了一种新的方案PHACS,并进行了安全性证明.实验分析结果表明,本方案具有较短的密文、密钥长度,具有较小的计算开销,可以适应云存储中数据共享的访问控制问题.需要注意的是,方案中使用了单属性授权中心,可能会成为实际系统中的瓶颈,如何将其扩展为多属性授权中心是下一步的研究方向.
[1] | GOH E J, SHACHAM H, MODADUGU N, et al . SiRiUS: Securing remote untrusted storage[DB/OL].[2014-06-12]. http://www.isoc.org/isoc/conferences/ndss/03/proceedings/papers/9.pdf. |
[2] | SAHAI A, WATERS B. Fuzzy identity-based encryption[C]// Advances in Cryptology-EUROCRYPT 2005. Berlin Heidelberg:Springer-Verlag, 2005: 457-473. |
[3] | LI M, YU S, ZHENG Y, et al. Scalable and secure sharing of personal health records in cloud computing using attribute-based encryption[J]. Parallel and Distributed Systems, IEEE Transactions on, 2013, 24 (1) : 131 –143. |
[4] | WU Y, WEI Z, DENG H. Attribute-based access to scalable media in cloud-assisted content sharing[J]. IEEE Transactions on Multimedia, 2013, 15 (4) : 778 –788. |
[5] | JAHID S, MITTAL P, BORISOV N. EASiER: Encryption-based access control in social networks with efficient revocation[C]// Proceedings of the 6th ACM Symposium on Information, Computer and Communications Security. New York: ACM, 2011: 411-415. |
[6] | BETHENCOURT J, SAHAI A, WATERS B. Ciphertext-policy attribute-based encryption[C]// Security and Privacy, 2007. SP’07. IEEE Symposium on. Piscataway, N J:IEEE, 2007: 321-334. |
[7] | NISHIDE T, YONEYAMA K, OHTA K. Attribute-based encryption with partially hidden encryptor-specified access structures[C]// Applied Cryptography and Network Security. Berlin Heidelberg:Springer-Verlag, 2008: 111-129. |
[8] | LEWKO A, OKAMOTO T, SAHAI A, et al . Fully secure functional encryption: Attribute-based encryption and (hierarchical) inner product encryption[DB/OL].[2014-03-09].http://link.springer.com/chapter/10.1007/978-3-642-13190-5_4#page-1. |
[9] | HUR J. Attribute-based secure data sharing with hidden policies in smart grid[J]. Parallel and Distributed Systems, IEEE Transactions on, 2013, 24 (11) : 2171 –2180. |
[10] | LI J, CHEN X, LI J, et al . Fine-grained access control system based on outsourced attribute-based encryption[C]// Computer Security-ESORICS 2013. Berlin Heidelberg:Springer-Verlag, 2013: 592-609. |
[11] | LYNN B. The stanford pairing based cryptoLibrary[DB/OL].[ 2014-09-10] .http://crypto.stanford.edu/pbc. |