2. 南京邮电大学 通信与信息工程学院, 南京 210003
针对当前云环境下属性基访问控制机制中采用中央授权中心带来的安全性问题,提出了分散多机构属性基加密DMA-ABE方案. 该方案采用多个授权中心负责用户密钥的分发,无需中央授权中心的协调;支持任意的线性秘密共享方案访问结构,访问策略灵活;采用代理重加密进行属性的即时撤销和授权,支持高效、灵活、细粒度的访问控制.安全性分析证明该方案达到选择明文攻击安全.
2. Department of Communication and Information Technology, Nanjing University of Posts and Telecommunications, Nanjing 210003, China
A scheme decentralizing multi-authority attribute based encryption DMA-ABE was proposed. In this scheme, the multiple attribute authority was used to issue users' keys without any coordination of central authority. Any linear secret sharing schemes access structure was supported, which is efficient, flexibility and fine-grained. The proxy re-encryption was used to realize on-demand attribute revocation and authorization. A security analysis was given to verify the scheme is secure against chosen plain-text attack.
云存储给用户带来了极大的便利,但在存储过程中敏感数据的安全性和隐私性保护引起了用户的广泛担忧[1],安全已成为云计算普及的重要阻碍.
Shamir首次提出身份基加密的概念,Sahai和Waters[2]在身份基加密方法的基础上提出了属性基加密机制. 之后,Goyal等[3]提出了密钥策略属性加密方案,Bethencourt 等[4]提出了密文策略属性加密方案. 然而,上述两种方案都存在着不足. 采用单一的授权中心机制,用户和授权中心的频繁交互不仅给系统负载能力带来瓶颈,同时增加了潜在的安全隐患,所以,Chase[5]提出了一种多授权中心的属性基加密方案(multi-authority ABE),但该方案依赖中央授权中心(CA,central authority),访问策略受限于“AND”策略,缺少访问的灵活性. Chase和Chow[6]提出的MA-ABE移除了CA,然而访问策略同样受限于“AND”策略,用户必须从每个授权中心获取至少1个属性,并且不支持用户的即时撤销. Bǒzovíc等[7]基于DBDH假设提出一种将CA视为诚实但好奇的方案,但仅在增加新授权中心时才为每个用户生成1个私钥. 笔者提出了一种新型的无CA分散的多机构属性基加密(DMA-ABE,decentralizing multi-authority attribute based encryption)方案,并给出了安全性分析.
1 DMA-ABE算法DMA-ABE算法包括以下几个部分.
1) 系统初始化Setup(1λ):由属性授权中心(AA,attibute authority)执行,将系统的安全参数1λ作为输入参数. 选取阶为q,生成元为g的双线性群G0,Zq为G0中所有元素的集合,以及双线性映射e:G0×G0→GT. 选择散列函数H:{0,1}*→G0将用户的全局标识符I映射到G0中. 授权中心AAi(i=1,2,…,n)根据自己管理的属性集Ui产生随机数αj,hj∈Zq(j∈Ui),选择随机数θj∈Zq(j∈Ui)作为属性密钥. 则AAi主密钥Qi={αj,θj,j∈Ui},公钥为Pi={e(g,g)αj,hj,Γj=gθj,j∈Ui}. AAi的属性授权密钥为Wi={h1/θjj,j∈Ui}.
系统的主密钥为Q={Qi}i=1,2,…,n,公钥为P={Pi}i=1,2,…,n,属性授权密钥为W={Wi}i=1,2,…,n. 生成的W发送给代理服务器.
2) 密钥生成KeyGen(Q,T,I):由AA执行,将主密钥Q、用户属性集合T以及用户的全局标识符I作为输入参数. 对于集合T中的属性t∈T由某个AA管理,AA根据自己的主密钥Q计算出属性t对应的私钥组件σt=gαtH(I)ht,$ {{K}_{t}}=h_{t}^{\frac{H\left( I \right)}{{{\theta }_{t}}}} $,则用户的私钥为SI={σt,Kt,gH(I),t∈T}.
3) 加密Encrypt(M,(R,ρ),P):由数据拥有者(DO,data owner)执行,将消息M、线性秘密共享方案(LSSS,linear secret sharing schemes)访问结构(R,ρ)、公共参数P作为输入参数. 假设R是一个l×m的矩阵,ρ将R的行映射到访问策略的某个属性. 随机选择s,y2,…,ym∈Zq向量v=(s,y2,…,ym),w=(0,y2,…,ym),令λx=Rx·vT,wx=Rx·wT,其中Rx是矩阵R的第x行,对于每个Rx选取随机数rx∈Zq,x=1,2,…,l. 计算出密文组件为
C=Me(g,g)s
C1,x=e(g,g)λxe(g,g)αρ(x)rx
C2,x=grx,C3,x=ghρ(x)
C5,x=gθρ(x)rx,C6,x=gλxgwx
则密文为
Z={(R,ρ),C,{C1,x,C2,x,C3,x,C4,x,C5,x,C6,x}x=1,…,l}
4) 重加密系统密钥Re KeyGen(Q,γ):由AA执行,算法的输入参数为主密钥Q以及待更新的属性集γ. 对于任意属性x∈γ,属性所属的AA重新产生随机的属性密钥θ′x∈Zq,并且计算Γ′x=gθ′x,重加密密钥 $ {{r}_{x\to x'}}=\frac{\theta _{x}^{'}}{{{\theta }_{x}}}. $ 然后将主密钥中的相应组件更新为θ′x,公钥中的Γx更新为Γ′x. 则新的主密钥为Q′,公钥为P′,重加密密钥为r=rxx∈γ,其中r发送给代理服务器.
5) 重加密密文Re Enc(y(=ρ(x)),C5,x,Ly):由代理服务器执行,算法的输入参数为待更新属性y(=ρ(x))、密文组件C5,x以及属性y的一个重加密密钥列表Ly. 首先检查属性y的版本号,如果y的版本号为最新,则输出⊥并退出;否则,令θy(n)为属性y的最新版本的属性密钥,计算ry→y(n)=ry→y(1)…ry(n-1)→y(n)= $ \frac{{{\theta }_{y\left( n \right)}}}{{{\theta }_{y}}} $. 然后输出重加密密文部件C′5,x=(C5,x)ry→y(n)=gθy(n)rx.
6) 重加密用户密钥Re Key(w,I,Kw,Lw):由代理服务器执行,算法的输入参数为用户的全局标识符I、待更新属性w、w的私钥组件Kw以及属性w的重加密密钥列表Lw. 首先检查属性w的版本号,如果w的版本号为最新,则输出⊥并退出;否则,令θw(n)为属性w的最新版本的属性密钥,计算rw→w(n)=rw→w(1)…rw(n-1)→w(n)= $ \frac{{{\theta }_{w\left( n \right)}}}{{{\theta }_{w}}}$. 然后输出最新的私钥部件K′w=Kwr-1w→w(n)= $ h_{w}^{\frac{H\left( I \right)}{{{\theta }_{w}}\left( n \right)}}$.
7) 代理属性授权GrantAttr(v,I,Wv,Lv):由代理服务器执行,算法的输入参数为属性v、用户的全局标识符I、对应属性的授权密钥Wv以及属性v的重加密密钥列表Lv. 首先检查属性v的版本号,如果v的版本号为最新,则输出⊥并退出;否则,令θv(n)为属性v的最新版本的属性密钥,计算rv→v(n)=rv→v(1)…rv(n-1)→v(n)= $ \frac{{{\theta }_{v\left( n \right)}}}{{{\theta }_{v}}}\ $. 然后输出属性v最新的私钥部件K′v=WvH(I)·r-1v→v(n)= $ h_{w}^{\frac{H\left( I \right)}{{{\theta }_{w}}\left( n \right)}} $.
8) 解密Decrypt(Z,SI):由用户执行,算法的输入参数为用户私钥SI、密文Z. 假设用户的属性集T满足访问结构,令F={x:ρ(x)∈T}(F⊂{1,2,…,l}),{cx∈Zq}x∈F是一组常数. 如果与R对应的{λx}是R中秘密s的有效部分,$ \sum\limits_{x\in F}{{{c}_{x}}{{\lambda }_{x}}=s,\sum\limits_{x\in F}{{{c}_{x}}{{w}_{x}}=0}} $. 解密为
$ \psi = \frac{{{C_{1,x}}e\left( {H\left( {I,{C_{3,x}}} \right)} \right)e\left( {{C_{6,x}},{g^{H\left( I \right)}}} \right)}}{\begin{array}{l} e\left( {{\sigma _{p\left( x \right)}},{C_{2,x}}} \right)e\left( {{C_{4,x}},{g^{H\left( I \right)}}} \right)e\left( {{C_{5,x}},{K_{\rho \left( x \right)}}} \right)\\ e{\left( {g,g} \right)^{{\lambda _x}}}e\left( {H\left( I \right),g} \right){w_x}e{\left( {g,g} \right)^{H\left( I \right){w_x}}} \end{array}} = $ |
则
$ \prod\limits_{x \in F} {{\psi ^{{c_x}}}} = e{\left( {g,g} \right)^s} $ |
由此可得
$ M = \frac{C}{{\prod\limits_{x \in F} {{\psi ^{{c_x}}}} }} $ |
证明 假设存在敌手能以不可忽略的优势ε按照攻破DMA-ABE算法,则将证明可以以不可忽略的优势ε2解决判定性双线性Diffie-Hellman(DBDH,decisional bilinear diffie-hellman)问题.
定义双线性映射e:G0×G0→G1,G0是阶为p,生成元为g的乘法循环群. 首先DBDH问题挑战者抛掷一枚公平硬币b,设置元组:
$ \left( {g,A,B,C,D} \right) = \left\{ \begin{array}{l} \left( {g,{g^a},{g^b},{g^c},e{{\left( {g,g} \right)}^{abc}}} \right),b = 0\\ \left( {g,{g^a},{g^b},{g^c},e{{\left( {g,g} \right)}^z}} \right),b = 1 \end{array} \right. $ |
其中a,b,c,d∈Zp是随机选取的.挑战者随后将元组(g,A,B,C,Z)=(g,ga,gb,gc,Z)发送给模拟器,在下面的DBDH游戏中,模拟器充当了挑战者的角色.
1) 系统初始化:敌手选择一个被挑战的访问策略T*.
2) 系统建立:模拟器运行 “系统初始化”算法,生成系统主密钥Q*={αj,θj,j∈Ui}i=1,…,n和公钥P*={e(g,g)αj,hj,Γj=gθj,j∈Ui}i=1,…,n,挑战者保留Q*,并将P*发送给敌手.
3) 查询阶段1:敌手对属性集合T1,T2,…,Tq请求构造私钥,但任意Ti,1≤i≤q都不符合访问策略树T*,模拟器调用私钥构造方法计算:
$ {\sigma _i} = {g^{{\alpha _i}}}H{\left( I \right)^{{h_i}}},{K_i} = h_i^{\frac{{H\left( I \right)}}{{{\theta _i}}}} $ |
并将生成的对应私钥Si,1≤i≤q发送给敌手.
4) 挑战阶段:敌手选择两个等长度的明文M0和M1发送给模拟器,模拟器抛掷一枚公平硬币μ得到结果μ∈{0,1},并利用访问策略T*加密Mμ,将密文Z*发送给敌手.
当b=0时,D=e(g,g)abc,则Z*是一个密文,因为C=MμD=Mμe(g,g)s. 当b=1时,D=e(g,g)d,C=MμD=Mμe(g,g)d,因为d是随机选择的,与系统无关,所以C是G0上的一个随机元素,C不包含有关Mμ的信息.
5) 查询阶段2:重复“查询阶段1”的操作.
6) 猜测阶段:敌手输出对μ的猜测.若敌手猜测正确,即μ′=μ,则模拟器输出b′=0,表明模拟器收到是DBDH元组(g,ga,gb,gc,e(g,g)abc);否则,模拟器输出b′=1,表明模拟器收到的元组是随机五元组(g,ga,gb,gc,e(g,g)z).
在上述DBDH游戏中,若b=1,则敌手未收到任何与Mμ相关的信息,所以Pr[μ′≠u|b=1]=$\frac{1}{2}$. 因为当μ′≠μ时,模拟器猜测b′=1,所以Pr[b′=b|b=1]= $\frac{1}{2}$.
若b=0,则敌手得到密文Mμ,根据定义,敌手有不可忽略的优势ε攻破方案,所以Pr[μ′≡u|b=0]=12+ε. 因为当μ′=μ时,模拟器猜测b′=0,所以Pr[b′=b|b=0]=$\frac{1}{2}$+ε.
所以模拟器在上述DBDH游戏中正确猜测b′=b的优势为
$ \begin{array}{*{20}{c}} {{v_C} = \Pr \left[{b' = b} \right] - \frac{1}{2} = }\\ {\frac{1}{2}\Pr \left[{b' = b|b = 1} \right] + \frac{1}{2}\Pr \left[{b' = b|b = 0} \right]{\rm{ - }}\frac{1}{2}{\rm{ = }}\frac{\varepsilon }{2}} \end{array} $ |
综上可证,如果敌手能以不可忽略的优势ε攻破方案,则存在一种多项式时间算法能以不可忽略的优势 ${\frac{\varepsilon }{2}}$解决DBDH问题.
2.2 安全性比较将提出的电子健康记录共享系统与已有的几个典型方案进行比较,比较结果如表1所示. 由表1可以看出,所提出的方案在安全性方面可以抵抗N-1 AA合谋攻击,安全强度高,并支持任意的LSSS访问结构,同时也支持属性即时撤销.
所提出的DMA-ABE算法,能够实现多个AA进行密钥管理,不需要CA对AA进行协调,增强了安全性. 该方案能够抵抗N-1 AA合谋攻击,访问策略灵活,支持任意的LSSS访问结构,属性撤销和授权的相关操作交由代理服务器执行,减轻了AA的负担,并且证明了该方案达到选择明文攻击(CPA,chosen plaintext attack)安全.
[1] | 冯登国,张敏,张妍,等. 云计算安全研究[J].软件学报, 2011, 22(1): 71-83. Feng Dengguo, Zhang Min, Zhang Yan, et al. Research on cloud security [J]. Journal of Software, 2011, 22(1): 71-83.[引用本文:1] |
[2] | Sahai A, Waters B. Advances in cryptology-eurocrtpt 2005[M]. Heidelberg: Springer Berlin Heidelberg, 2005: 457-473.[引用本文:1] |
[3] | Goyal V, Pandet O, Sahai A, et al. Attribute based encryption for fine-grained access control of encrypted data[C]//ACM Conference on Computer and Communications Security. Alexandria: ACM , 2006: 89-98.[引用本文:1] |
[4] | Bethencourt J, Sahai A, Waters B. Ciphertext-policy attribute-based encryption[C]//IEEE Symposium on Security and Privacy(SP07). Berkeley: IEEE, 2007: 321-334.[引用本文:1] |
[5] | Chase M. Theory of cryptography[M]. Heidelberg: Springer Berlin Heidelberg, 2007: 515-534.[引用本文:1] |
[6] | Chase M, Chow S S. Improving privacy and security in multi-authority attribute-based encryption[C]//2009 ACM Computer and Communications Security(CCS09). Chicago: ACM, 2009: 121-130.[引用本文:1] |
[7] | Božovic' V, Socek D, Steinwandt R, et al. Multi-authority attribute-based encryption with honest-but-curious central authority[J]. International Journal of Computer Mathematics, 2012, 89(3): 268-283.[引用本文:1] |
[8] | Hur J, Noh D K. Attribute-based access control with efficient revocation in data outsourcing systems[J]. Parallel and Distributed Systems, 2011, 22(7): 1214-1221.[引用本文:1] |
[9] | Narayan S, Gagné M, Safavi-Naini R. Privacy preserving EHR system using attribute-based infrastructure[C]//2010 ACM Workshop on Cloud Computing Security Workshop. Chicago: ACM, 2010: 47-52.[引用本文:1] |
[10] | Ruj S, Nayak A, Stojmenovic I. DACC: distributed access control in clouds[C]//2011 IEEE Trust, Security and Privacy in Computing and Communications (TrustCom). Changsha: IEEE, 2011: 91-98.[引用本文:1] |
[11] | Li Ming, Yu Shucheng, Zheng Yao, et al. Scalable and secure sharing of personal health records in cloud computing using attribute-based encryption[J]. Parallel and Distributed Systems, 2013, 24(1): 131-143.[引用本文:1] |