云计算环境下支持高效撤销的新型属性基加密方案
陈红松1,2, 沈强磊1     
1. 北京科技大学 计算机与通信工程学院, 北京 100083;
2. 材料领域知识工程北京市重点实验室, 北京 100083
摘要

为了解决开放云计算环境下用户属性变化导致的用户权限撤销及变更问题,提出一种基于代理重加密和密钥分割技术的属性基代理重加密方案,该方案支持用户权限的即时撤销,当发生用户撤销时,只需要更新云存储服务器中的密文组件以及代理服务器中未撤销用户的属性无关私钥组件.当发生用户属性撤销时,只需更新用户属性撤销列表,解密时根据用户属性撤销列表控制撤销属性用户的访问,可减少密文更新和用户私钥更新的计算量,提高系统撤销用户权限的执行效率,保护用户属性的隐私信息.

关键词: 属性基加密     用户-属性撤销     访问控制     代理重加密    
中图分类号:TP309 文献标志码:A 文章编号:1007-5321(2018)03-0113-06 DOI:10.13190/j.jbupt.2017-220
Attribute-Based Encryption Scheme With High Efficient Revocation in Cloud Computing Environment
CHEN Hong-song1,2, SHEN Qiang-lei1     
1. School of Computer and Communication Engineering, University of Science and Technology Beijing, Beijing 100083, China;
2. Beijing Key Laboratory of Knowledge Engineering for Materials Science, Beijing, 100083, China
Abstract

In order to solve the problem of user authorization revocation caused by user attributes change in open cloud computing environment, an attribute-based proxy re-encryption scheme based on proxy re-encryption and key segmentation is proposed. Instant revocation of user authorization is supported in the scheme. When user revocation occurs, it is only necessary to update the ciphertext component in the cloud storage server and unrevoked users' attribute independence private key component in the proxy server. When the user attribute revocation occurs, it is necessary to update the user attribute revocation list from which the user authorization can be limited. Then the workload of updating ciphertext and the user private key is lessen to improve the execution efficiency of re-encryption and access control scheme, at the same time, the privacy information of user attributes are protected.

Key words: attribute-based encryption     user-attribute revocation     access control     proxy re-encryption    

2006年首次提出云计算概念,经过多年发展,云计算已成为信息技术领域的热点;同时,其安全问题成为了云计算发展的阻碍. 2005年,基于身份加密技术,Sahai等[1]首先提出了基于属性的加密机制,用户可根据自身属性获得相应私钥,进而获得对应的解密能力及权限,从而实现对云存储密文数据的访问控制.但是属性基加密算法需要解决由用户撤销或者用户某个属性被撤销时,及时变更用户权限的问题.在传统的属性撤销机制中,当一个用户的某个属性被撤销时,需要对整个系统含有这个属性的未撤销用户私钥进行更新,计算量和通信量太大.还有一些方案,发生用户属性撤销时,只对密文中与撤销属性相关的密文组件进行更新.然而,被撤销用户可使用上次解密得到的部分中间结果来组合并解密新密文,无法保证重加密的安全性.

1 相关工作

Yu等[2]运用代理重加密技术与版本号标记法来实现密文策略属性基加密(CP-ABE, ciphertext policy attribute based encryption)方案中的属性即时撤销. Chen等[3]提出了分散多机构属性基加密方案,该方案采用多个授权中心负责用户密钥的分发,无需中央授权中心的协调. Naruse等[4]利用代理重加密技术让云服务提供商来负责属性撤销工作,减轻了授权机构的工作. Zhang等[5]提出了支持外包解密的方案,能够减少用户的解密开销. Takeru等[6]提出的方案利用可信机构代理重加密技术对密文和用户私钥的更新,但是可信机构重加密的计算量较大. Chen等[7]提出了基于多标签的大数据安全访问控制模型,数据所有者可以根据实际安全需求添加安全标签并实施安全访问控制. Sahai等[8]在2012年的CRYPTO美密会上提出了采用重加密方法来收回撤销用户对加密数据的解密权限.

由以上相关工作可知,尽管目前的属性基加密机制可以支持用户和属性撤销,但仍存在以下问题.

1) 计算和通信量巨大

如果发生用户撤销属性,可信第三方机构更新密文和非撤销用户的用户私钥.但一个系统中有大量的用户,只要一个用户的某个属性发生撤销,系统中所有的含有这个属性的用户私钥都要更新,计算量和通信量太大,效率不高.

2) 存在用户隐私泄露的风险

通常把用户私钥的更新工作交由第三方机构来做,用户私钥中与用户属性相关的私钥组件也能被第三方机构查看,用户属性信息存在隐私泄露风险.

3) 重加密密文解密中间值利用漏洞

在已有的重加密方案中,如发生用户撤销属性事件,在重加密密文时只对密文中和撤销属性相关的密文组件进行更新,被撤销用户可能利用被撤销属性之前解密得到的中间值对密文进行解密攻击.

2 支持用户-属性撤销的新型属性基加密方案 2.1 方案设计思想

本方案的主要设计思想:可信中心为每个合法的用户根据其属性生成私钥,然后用密钥分割的思想把用户的私钥分成2部分,一部分和用户属性相关的私钥组件发送给用户;另一部分的私钥组件发送给代理服务器.如果发生用户撤销事件,可信中心把撤销用户的ID从用户列表中删除,并生成代理重密钥发送给云存储服务器和代理服务器.云存储服务器对密文进行代理重加密.代理服务器查看可信中心里的用户列表,如果用户在用户列表中则更新用户的私钥组件.如果发生用户属性撤销,可信中心把撤销用户的ID加入到属性撤销列表中.如果撤销了用户的这个属性,解密时不计算该属性.

2.2 算法描述 2.2.1 Setup(k):系统初始化

可信机构选择生成元为g,阶为素数p的双线性映射G0Zp为模p的整数群,随机选取α, βZp,可信机构生成系统公钥$ {P_K} = ({G_0}, g, h = {g^\beta }, f = {g^{\frac{1}{\beta }}}, e{\left( {g, g} \right)^\alpha }) $,主密钥WK=(β, gα).可信机构获取全部的系统属性集U,为每个属性attU初始化一个空的ArrayList,ArrayList用来存放撤销属性用户的ID.初始化的属性撤销列表格式是map〈att, ArrayList〈Integer〉〉,并存入到属性撤销列表文件中.

2.2.2 密钥生成与分割

1) KeyGen(WK, S):生成用户私钥

可信机构获得每个用户的属性集合S,输出被S所标记的用户密钥.首先,算法选择随机数rZp;然后,对每一个属性j选择随机数rjZp;最后,计算出用户私钥$ {S_K} = ({D_1} = {g^{\frac{{\left( {\alpha - r} \right)}}{\beta }}}, {D_2} = {g^r}, \forall j \in S:{D_j} = {g^r}H{\left( j \right)^{{r_j}}}, {D_{j' }} = {g^{{r_j}}}) $,其中H(j)为每个属性对应的散列值.把每个新用户加入到用户列表中,用户列表的形式是映射map〈username, userid〉,username和userid分别存放的是用户名和用户ID.新建用户时要保证用户的用户名和用户ID都唯一,并把映射map存入到用户列表文件中.

2) Split(SK):分割用户私钥

可信机构将每个私钥拆成2部分,跟用户属性无关的私钥组件Db=(D1, D2)发送给代理服务器,跟用户属性相关的私钥组件Da=(∀jS:Dj, Dj)发送给用户.

2.2.3 Encrypt(PK, M, τ):加密算法

数据属主加密数据,加密算法用访问结构树τ加密消息M.算法从根节点R开始选择随机数s1Zp,并设置qR(0)=s1.然后,通过算法随机选择dR个点来完全定义多项式qR.对于其他节点x,令qx(0)=qparent(x)(index(x)),随机选择其他dx个节点来完全定义qx.用户选择随机数s2Zp,且s=s1+s2.用随机数s计算加密密文组件$\tilde C $=Me(g, g)αs,计算C1=hsC2=gs2.设τ中所有叶子节点的集合为Y,那么在给定的树形访问结构τ下计算出来的密文为

$ \begin{array}{c} {C_T} = (\tau , \tilde C = Me{\left( {g, g} \right)^{\alpha s}}, {C_1} = {h^s}, {C_2} = {g^{{s_2}}}, \forall y \in Y:\\ {C_y} = {g^{{q_y}(0)}}, {C_{y' }} = H{({a_{tt}}\left( y \right))^{{q_y}(0)}}) \end{array} $ (1)

其中:y为访问结构树的每个叶子节点,也就是访问树的属性;qy(0)为多项式的常数项;att(y)为属性值;H(att(y))为属性值对应的散列值.数据属主把加密好的密文上传到云存储服务器.

2.2.4 用户私钥合成与解密

1) Combine(Db, Da):合成用户私钥

用户向代理服务器请求用户私钥组件,代理服务器给未撤销用户分发其用户私钥组件Db.用户获得私钥组件后,跟自己所拥有的私钥组件Da一起合成其完整私钥:

$ \begin{array}{c} {S_K} = ({D_1} = {g^{\frac{{\left( {\alpha - r} \right)}}{\beta }}}, {D_2} = {g^r}, \forall j \in S:{D_j} = {g^r}H{\left( j \right)^{{r_j}}}, \\ {D_{j' }} = {g^{{r_j}}}) \end{array} $ (2)

然后用私钥开始解密运算.

2) Decrypt(PK, CT, SK):解密算法

定义一个递归算法DecryptNode(CT, SK, x),其中CT是密文,SK是与用户属性集合S关联的私钥,x是访问结构树τ中的节点.如果用户拥有的属性满足访问策略,则可以得到

$ \begin{array}{c} A = {\rm{DecryptNode}}({C_T}, {S_K}, R) = e{\left( {g, g} \right)^{r{q_R}(0)}} = \\ e{\left( {g, g} \right)^{r{s_1}}} \end{array} $ (3)

然后解密计算:

$ \begin{array}{c} \frac{{\tilde C}}{{e({C_1}, {D_1})e({C_2}, {D_2})A}} = \\ \frac{{Me{{\left( {g, g} \right)}^{\alpha s}}}}{{e{{\left( {g, g} \right)}^{\left( {\alpha - r} \right)s}}e{{\left( {g, g} \right)}^{r{s_2}}}e{{\left( {g, g} \right)}^{r{s_1}}}}} = \\ \frac{{Me{{\left( {g, g} \right)}^{\alpha s}}}}{{e{{\left( {g, g} \right)}^{\left( {\alpha - r} \right)s}}e{{\left( {g, g} \right)}^{rs}}}} = M \end{array} $ (4)

解密成功,得到明文M.

2.2.5 用户撤销

如果发生用户撤销事件,需要撤销用户的全部解密能力,撤销的用户的私钥不能解密任何加密文件.这里需要对密文和未撤销用户的私钥进行代理重加密,涉及另外3个算法:ReKeyGen、ReKey和ReEnc.首先可信机构生成代理重密钥,服务器拿到代理重密钥之后分别对密文和用户私钥组件进行更新.具体的更新过程如下:

1) ReKeyGen:生成代理重密钥

可信机构选取随机数tZp,作为代理重密钥发送给代理服务器和云存储服务器.可信机构把撤销用户的用户名和ID从用户列表中删除.

2) ReKey:更新未撤销用户私钥

代理服务器获取到可信机构发来的代理重密钥,查看用户列表中用户的ID是否被删除,如果没有被删除,则对用户的私钥组件Db进行更新.代理服务器更新之后的私钥组件为

$ D{' _b} = (D{' _1} = {g^{\frac{{\left( {\alpha - r} \right)}}{{\beta t}}}}, {D_2} = {g^r}) $ (5)

3) ReEnc:重加密密文

云存储服务器产生一个随机数εZp,使得s2=s2+εs′=s1+s2=s+ε (其中s=s1+s2),并用可信机构发来的代理重密钥t更新密文组件,根据式(6)执行重加密操作.

$ \begin{array}{c} \tilde C' = \tilde Ce{\left( {g, g} \right)^{\alpha \varepsilon }} = e{\left( {g, g} \right)^{\alpha s}}e{\left( {g, g} \right)^{\alpha \varepsilon }} = e{\left( {g, g} \right)^{\alpha (s + \varepsilon )}}\\ C{' _1} = {C_1}{h^{t\varepsilon }} = {h^{st}}{h^{\varepsilon t}} = {h^{\left( {s + \varepsilon } \right)t}}\\ C{' _2} = {C_2}{g^\varepsilon } = {g^s}{g^\varepsilon } = {g^{(s + \varepsilon )}} \end{array} $ (6)

更新后的密文为

$ \begin{array}{c} C{' _T} = (\tau , \tilde C' = Me{\left( {g, g} \right)^{\alpha (s + \varepsilon )}}, C{' _1} = {h^{\left( {s + \varepsilon } \right)t}}, C{' _2} = {g^{({s_2} + \varepsilon )}}, \\ \forall y \in Y:{C_y} = {g^{{q_y}(0)}}, {C_{y' }} = H{({a_{tt}}\left( y \right))^{{q_y}(0)}}) \end{array} $ (7)

4) Decrypt(PK, CT, SK):解密密文

代理服务器将用户私钥组件Db分发给未撤销用户,由用户将私钥组件Db跟自己所拥有的私钥组件Da一起合成其完整私钥.

$ \begin{array}{c} S{' _K} = (D{' _1} = {g^{\frac{{\left( {\alpha - r} \right)}}{{\beta t}}}}, {D_2} = {g^r}, \forall j \in S:{D_j} = {g^r}H{\left( j \right)^{{r_j}}}, \\ {D_{j' }} = {g^{{r_j}}}) \end{array} $ (8)

然后用新的私钥开始解密.

用户的属性满足访问结构树,即可以分别计算出:

$ \begin{array}{c} e(C{' _1}, D{' _1}) = e({g^{\beta \left( {s + \varepsilon } \right)t}}, {g^{\frac{{\left( {\alpha - r} \right)}}{{\beta t}}}}) = e{\left( {g, g} \right)^{\left( {\alpha - r} \right)(s + \varepsilon )}}\\ e(C{' _2}, {D_2}) = e({g^{({s_2} + \varepsilon )}}, {g^r}) = e{\left( {g, g} \right)^{r({s_2} + \varepsilon )}}\\ A = {F_R} = {\rm{DecryptNode}}(C{' _T}, S{' _K}, R) = \\ e{\left( {g, g} \right)^{r{q_R}(0)}} = e{\left( {g, g} \right)^{r{s_1}}} \end{array} $ (9)

因此,解密计算明文:

$ \begin{array}{c} \frac{{\tilde C' }}{{e(C{' _1}, D{' _1})e(C{' _2}, {D_2})A}} = \\ \frac{{Me{{\left( {g, g} \right)}^{\alpha (s + \varepsilon )}}}}{{e{{\left( {g, g} \right)}^{\left( {\alpha - r} \right)(s + \varepsilon )}}e{{\left( {g, g} \right)}^{r({s_2} + \varepsilon )}}e{{\left( {g, g} \right)}^{r{s_1}}}}} = \\ \frac{{Me{{\left( {g, g} \right)}^{\alpha (s + \varepsilon )}}}}{{e{{\left( {g, g} \right)}^{\alpha (s + \varepsilon )}}}} = M \end{array} $ (10)

解出明文M,解密成功.

2.2.6 用户属性撤销

如果发生用户属性撤销,需要撤销用户属性对应的权限,用户不再具备那个属性的解密能力.用户发生属性撤销时,把用户的ID加入到对应的属性撤销列表ArrayList中.如果ArrayList没有用户的userid,表明该用户属性i没有被撤销,那么就输出DecryptNode(CT, SK, x)=e(g, g)rqx(0),否则输出DecryptNode(CT, SK, x)=⊥,从而实现用户单个属性撤销的功能.如果用户现有未撤销的属性满足访问结构树,则能够解密文件.

3 安全性证明

本方案基于判定双线性问题(DBDH, decision bilinear Diffie-Hellman, ):给定(g, ga, gb, gc, Z),其中a, b, c, θZpZ=e(g, g)θ,计算e(g, g)abc,判断等式Z=e(g, g)abc是否成立.一个概率性多项式时间算法B能够以优势ε求解DBDH问题,当且仅当满足:

$ \begin{array}{c} {\rm{Pr}}[B(g, {g^a}, {g^b}, {g^c}, e{\left( {g, g} \right)^{abc}}) = 1] - \\ {\rm{Pr}}[B(g, {g^a}, {g^b}, {g^c}, e{\left( {g, g} \right)^\theta }) = 1] \ge \varepsilon \end{array} $ (11)

定理1  假设DBDH难题成立,如果没有敌手在多项式时间内选择访问结构树τ攻破支持撤销的CP-ABE方案,则此方案就是在选择属性和明文攻击下的不可区分性(IND-sAtt-CPA,indistinguishability under selective-attribute and chosen-plaintext attack)下的安全模型.

证明  如果存在一个攻击者A可以攻破本方案,则存在一个算法B可以攻破DBDH问题,即输入(g, ga, gb, gc, Z=e(g, g)θ),算法B决定等式Z=e(g, g)abc是否成立.

攻击者A和挑战者B按照如下操作,执行IND-sAtt-CPA游戏.

步骤1  初始化

攻击者A选择访问结构树τ、用户撤销列表R发送给挑战者B.

步骤2  系统设置

挑战者B执行方案中的Setup(k)算法:

① 选择随机数x′∈Zp,设置e(g, g)α=e(g, g)abe(g, g)x,使得α=ab+x′.此外,设定gβ=gb.

② 计算得到$ {P_K} = ({G_0}, g, h = {g^b}, f = {g^{\frac{1}{b}}}, e{\left( {g, g} \right)^{ab + x' }}), {W_K} = (b, {g^{ab + x' }}) $.

③ 挑战者B发送给攻击者A公钥PK,挑战者B自己保存主密钥WK.

步骤3  属性私钥查询阶段1

攻击者A选择属性集w={aj|ajτ}和IDAR,并向挑战者B发出属性私钥查询请求.

① 挑战者B随机选择r′∈Zp,计算$ {D_1} = {g^{\frac{{x' - r' }}{b}}} $,因为x′=αab,所以$ {D_1} = {g^{\frac{{x' - r' }}{b}}} = {g^{\frac{{\alpha - ab - r' }}{b}}} = {g^{\frac{{\alpha - \left( {ab + r' } \right)}}{b}}} $,可以得出r=ab+r′,D2=gab+r.

② 对每个属性jw,选择随机数rjZp,因为r=ab+r′,计算得Dj=gab+rH(j)rjDj=grj.生成的私钥为

$ \begin{array}{c} {S_K} = ({D_1} = {g^{\frac{{x' - r' }}{b}}}, {D_2} = {g^{ab + r' }}, \forall j \in w:\\ {D_j} = {g^{ab + r' }}H{\left( j \right)^{{r_j}}}, {D_{j' }} = {g^{{r_j}}}) \end{array} $

③ 挑战者B把用户私钥SK传送给攻击者A.

步骤4  挑战阶段

攻击者A向挑战者B传送2个一样长的信息m0m1,挑战者B执行公平的掷硬币游戏选取b∈{0, 1},对信息加密,操作如下.

① 计算C1=hc,

$ \begin{array}{c} \tilde C = {m_b}e{\left( {g, g} \right)^{\alpha c}} = {m_b}e{\left( {g, g} \right)^{\left( {ab + x' } \right)c}} = \\ {m_b}e{\left( {g, g} \right)^{abc}}e{\left( {g, g} \right)^{x' c}} = {m_b}Ze({g^c}, {g^{x' }}) \end{array} $

② 挑战者B选择随机数s2Zp,计算C2=gs2,那么s1=cs2,用s1作为访问结构树τ根节点R所对应多项式qR的常数项值,随机选择dR个点来完全定义qR.对于其他顶点x,令qx(0)=qparent(x)(index(x)),随机选择其他dx个顶点来完全定义qx.设τ中所有叶子节点的集合为Y,则在给定的树形访问结构τ下计算得到∀yY:Cy=gqy(0), Cy=H(att(y))qy(0).

③ 计算得到$ {C_T} = (\tau , \tilde C, {C_1}, {C_2}, \forall y \in Y:{C_y}, {C_{y' }}) $.

④ 挑战者B把生成好的密文CT传送给攻击者A.

步骤5  属性私钥查询阶段2

攻击者A在查询阶段1的限制条件下继续向挑战者B发出属性私钥询问.

步骤6  猜测阶段

攻击者A输出猜测b′∈{0, 1}.如果b′=b,则挑战者B输出1,表示DBDH成立,Z=e(g, g)abc;否则输出0,表明Z=e(g, g)θ.

因此,如果

$ \begin{array}{c} {\rm{Pr}}[B(g, {g^a}, {g^b}, {g^c}, e{\left( {g, g} \right)^{abc}}) = 1] - \\ {\rm{Pr}}[B(g, {g^a}, {g^b}, {g^c}, e{\left( {g, g} \right)^\theta }) = 1] \ge \varepsilon \end{array} $ (12)

成立,即假定攻击者A能以ε优势求解DBDH难题.

综上所述,假设DBDH难题成立,则没有攻击者可以在多项式时间内选择访问结构树τ和用户撤销列表R攻破支持撤销的CP-ABE方案,那么该方案是IND-sAtt-CPA安全的.

4 新方案在云环境下访问控制的应用 4.1 系统模型建立与实现

新方案在云环境下访问控制系统如图 1所示.

图 1 新方案在云环境下的访问控制系统模型

图 1所示为一个以云环境下的属性基加密访问控制模型,包括数据所有者(数据提供者)、云存储服务器、代理服务器、用户和可信中心.系统按照图 1所列流程进行加密与解密等操作.本实验使用基于Java配对的密码算法库,对基于Java语言版本的Bethencourt-Sahai-Waters CP-ABE(BSW CP-ABE, )进行改进,采用面向对象的方法,通过软件再工程实现了所提方案.算法的核心类是RuaCPABE类,其中各个方法所实现的功能:Setup方法用于系统参数的初始化,并为系统属性生成属性撤销列表;KeyGen方法用于生成用户私钥,并把用户加入到用户列表中;Encrypt方法用于加密文件;SplitSK方法实现了可信中心对用户私钥分割的功能;RevokeUser方法实现了可信中心撤销用户的功能;ReKeyGen方法实现了生成代理重密钥的功能;UpdateSK方法实现了更新私钥的功能;UpdateCT方法实现了代理重加密密文的功能;RevokeUserAtt方法实现了对用户属性撤销的功能;CombineSK方法实现了用户私钥合并的功能;Decrypt方法实现了解密密文,并且保证用户解密时判断用户的单个属性是否撤销.

4.2 方案的实验结果分析

本实验采用Myeclipse工具使用Java语言开发.所提方案与BSW CP-ABE方案用户私钥更新时间随用户属性数量变化关系的对比如图 2所示,所提方案密钥更新时间更短.

图 2 密钥更新时间与用户属性数量关系

所提方案中,云存储服务器只是对密文组件更新,与访问控制结构树的属性数量无关.而传统的BSW CP-ABE方案中,服务器更新密文的时间与用户属性数量成线性关系.二者对比如图 3所示.

图 3 密文更新时间与访问控制策略属性个数关系

由以上实验可知,所提方案在用户私钥更新时间、密文更新时间等方面相对传统方案更有优势.

5 结束语

针对CP-ABE模型中代理重加密计算量巨大、用户属性信息隐私泄露问题,提出了采用密钥分割和代理重加密技术实现用户撤销以及用户属性的细粒度撤销.密文和私钥的更新工作由服务器来完成,减少了可信中心和数据属主的计算量.将用户属性无关的私钥组件存储在代理服务器,从而保护用户属性隐私.当撤销用户某属性时,可信中心只需更新属性撤销列表,解密前查询属性撤销列表实现用户属性撤销,不需要更新密文和用户私钥,减少了计算量,提高了属性撤销算法执行效率.

参考文献
[1] Sahai A, Water B. Fuzzy identity-based encryption[M]. Advances in Cryptology-EUROCRYPT 2005. Springer Berlin Heidelberg, 2005: 457-473.
[2] Yu Shucheng, Wang Cong, Ren Kui, et al. Attribute based data sharing with attribute revocation[C]//Proceedings of the 5th ACM Symposium on Information, Computer and Communications Security. [S. l. ]: ACM, 2010: 261-270.
[3] Chen Danwei, Wu Qiong, Chen Linling, et al. Attribute-based encryption without central authority:DMA-ABE[J]. Journal of Beijing University of Posts and Telecommunications, 2015, 38(5): 77–80.
[4] 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): 119–125.
[5] 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.
[6] Takeru N, Masami M, Yoshiaki S. 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 Scieneces, 2015(8): 1.
[7] 陈红松, 韩至. 智慧城市中大数据安全分析与研究[J]. 信息网络安全, 2015(7): 1–6.
Chen Hongsong, Han Zhi. Analysis and research on big data security in smart city[J]. Netinfo Security, 2015(7): 1–6. doi: 10.3969/j.issn.1671-1122.2015.07.001
[8] Sahai Amit, Seyalioglu Hakan, Waters Brent. Dynamic credentials and ciphertext delegation for attribute-based encryption[C]//Advances in Cryptology-CRYPTO. California: Springer, 2012: 199-217.