计算机应用   2016, Vol. 36 Issue (9): 2452-2458  DOI: 10.11772/j.issn.1001-9081.2016.09.2452
0

引用本文 

郝伟, 杨晓元, 王绪安, 吴立强. 条件型非对称跨加密系统的代理重加密方案[J]. 计算机应用, 2016, 36(9): 2452-2458.DOI: 10.11772/j.issn.1001-9081.2016.09.2452.
HAO Wei, YANG Xiaoyuan, WANG Xu'an, WU Liqiang. Proxy re-encryption scheme based on conditional asymmetric cross-cryptosystem[J]. Journal of Computer Applications, 2016, 36(9): 2452-2458. DOI: 10.11772/j.issn.1001-9081.2016.09.2452.

基金项目

国家自然科学基金资助项目(61272492,61572521)

通信作者

郝伟(1990-), 男, 内蒙古包头人, 硕士研究生, 主要研究方向:代理重加密体制; 15229343424@163.com

作者简介

杨晓元(1959-), 男, 湖南湘潭人, 教授, 硕士, CCF会员, 主要研究方向:密码学、信息安全;
王绪安(1981-), 男, 湖北公安人, 副教授, 博士研究生, CCF会员, 主要研究方向:密码学、信息安全;
吴立强(1986-), 男, 陕西蓝田人, 讲师, 硕士, CCF会员, 主要研究方向:格密码学、可证明安全

文章历史

收稿日期:2016-01-27
修回日期:2016-03-15
条件型非对称跨加密系统的代理重加密方案
郝伟1,2, 杨晓元1,2, 王绪安1,2, 吴立强1,2    
1. 武警工程大学 电子技术系, 西安 710086 ;
2. 武警部队网络与信息安全保密重点实验室, 西安 710086
摘要: 为了减轻云应用中移动设备解密的负担,利用基于身份的广播加密(IBBE)、基于身份的加密(IBE)、基于身份的条件型广播代理重加密方案,提出了多条件型非对称跨加密系统的代理重加密方案。该方案允许发送方将信息加密成IBBE密文,一次性发送给多个接收方,其中任一接收方又可以授权给代理者一个多条件型的重加密密钥,代理者利用该多条件型重加密密钥,能将符合多个条件的原始密文重加密成一个新的接收方可以解密的IBE密文。该方案实现了从IBBE加密系统到IBE加密系统的非对称代理重加密,而且代理者可以根据条件将最初的原始密文进行重加密,避免了不需要进行重加密的原始密文被代理者重加密,提高了代理者重加密的效率,同时节约了接收方获悉正确明文的时间。
关键词: 基于身份的加密    基于身份的广播加密    基于身份的条件型广播代理重加密    代理重加密    
Proxy re-encryption scheme based on conditional asymmetric cross-cryptosystem
HAO Wei1,2, YANG Xiaoyuan1,2, WANG Xu'an1,2, WU Liqiang1,2     
1. Department of Electronic Technology, Engineering University of Chinese People's Armed Police Force, Xi'an Shaanxi 710086, China ;
2. Key Laboratory of Network and Information Security, Chinese People's Armed Police Force, Xi'an Shaanxi 710086, China
Background: This work is partially supported by the National Natural Science Foundation of China (61272492, 61572521).
HAO Wei, born in 1990, M. S. candidate. His research interests include proxy re-encryption cryptosystem.
YANG Xiaoyuan, born in 1959, M. S., professor. His research interests include cryptography, information security.
WANG Xuan, born in 1981, Ph. D. candidate, associate professor. His research interests include cryptography, information security.
WU Liqiang, born in 1986, M. S., lecturer. His research interests include lattice-based cryptography, provable security.
Abstract: In order to reduce the decryption burden of the mobile device in cloud application, using Identity-Based Broadcast Encryption (IBBE) scheme, Identity-Based Encryption (IBE) scheme and conditional identity-based broadcast proxy re-encryption scheme, an asymmetric cross-cryptosystem proxy re-encryption scheme with multiple conditions was proposed. In this scheme, the sender is allowed to encrypt information into IBBE ciphertext, which can be sent to multiple recipients at a time. Anyone of the receivers can authorize a multi-condition re-encryption key to the proxy to re-encrypt the original ciphertext which meets the conditions into the IBE ciphertext that a new receiver can decrypt. The scheme realizes asymmetric proxy re-encryption from IBBE encryption system to IBE encryption system and allows the proxy to re-encrypt the original ciphertext according to the conditions, which avoids the proxy to re-encrypt the unnecessary original ciphertext. The scheme not only improves the re-encryption efficiency of the proxy, but also saves the time of the receiver to get the correct plaintext.
Key words: Identity-Based Encryption (IBE)    Identity-Based Broadcast Encryption (IBBE)    conditional identity-based broadcast proxy re-encryption    proxy re-encryption    
0 引言

代理重加密(Proxy Re-encryption, PRE)[1]为用户存储及分享信息提供了一种安全灵活的方法。用户可以用自己的公钥加密文件并将其存储于一个半可信的服务器中。当用户想将服务器中的加密文件转寄给他人时,他便让服务器充当一个代理者,同时授予代理者一个由用户的私钥及接收方的公钥生成的重加密密钥,代理者用该密钥将服务器中的密文转换成接收方可以用自己的私钥解密的密文。早期基于公钥基础设施(Public Key Infrastructure, PKI)的代理重加密方案存在繁琐的证书管理问题[2],为了克服这一问题,提出了基于身份的代理重加密方案[3]。但是,基于身份的代理重加密方案只能一次给一个用户转寄信息。为了便于多个用户同时共享信息,又提出了广播代理重加密[4]、基于身份的广播代理重加密[5]。然而,这些代理重加密方案大多是以一种粗糙的方式控制原始的密文,即要么将全部原始密文进行代理重加密,要么一个原始密文也不被代理重加密。针对这一缺陷,引进了条件型代理重加密[4-10],使得只有符合某一条件的原始密文才能被代理者重加密。

随着现代通信技术和云计算的不断进步,智能移动终端被广泛地应用于聊天、交友、办公当中。但是,移动设备的计算能力是有限的,如果要用上述代理重加密方案将存储在云端的信息转寄给移动设备,移动设备在解密时势必会力不从心。

针对这一实际问题,本文提出多条件型非对称代理重加密方案。利用现存的基于身份的广播加密(Identity-Based Broadcast Encryption, IBBE)[11]、基于身份的条件型广播代理重加密[5]和文献[12]中的基于身份的加密(Identity-Based Encryption, IBE)方案,提出了从基于身份的广播加密到基于身份的加密的、跨加密系统的、多条件型非对称代理重加密方案(Multi-Conditional Asymmetric Proxy Re-encryption, MCAPRE)。该方案充分结合了基于身份的广播加密、基于身份的加密和条件型代理重加密方案的优点,代理者可以将一个原始IBBE密文转换成一个IBE密文,适合于计算能力有限的移动用户共享花费较小的代价分享云端数据。同时,本文提出了该方案的安全模型,并证明它在该模型下是安全的,对方案的正确性也作了充分说明。

1 预备知识 1.1 双线性映射

1)群G和群GT是两个(乘法)有限循环群,它们的阶为素数p

2)gh是群G的两个生成元;

3)ê是一个双线性映射êG×GGT

设群G和群GT是满足上述条件的两个有限循环群, 其中可接受的双线性映射êG×GGT满足下面的条件:

1)双线性性(Bilinearity):对于所有的g, hGa, bZp都满足ê(ga, hb)=ê(g, h)ab

2)非退化性(Non-Degeneracy):对于所有的g, hGê(g, h)≠1。

G是一个双线性群,当且仅当在群G里的操作都是有效的,并存在满足上述要求的群GT和双线性映射ê

1.2 复杂性假设

判定型双线性Diffie-Hellman问题(Decisional Bilinear Diffie-Hellman Problem, DBDH问题):让GGT为两个q阶双线性乘法群,g是群G的生成元,关于双线性映射êG×GGT的DBDH问题是攻击者A有优势AdvDBDH, AIND区分(ga, gb, gc, ê(g, g)abc)和(ga, gb, gc, ê(g, g)abc)。

定义1  DBDH假设。如果对于任意概率多项式时间的攻击者A,优势AdvDBDH, AIND可以忽略,那么DBDH问题成立。

1.3 方案构成

MCAPRE方案由Setup、KeyGen、Enc、RKGen、ReEnc、Dec-1和Dec-2算法组成。具体如下:

初始化算法Setup(1λn):输入安全参数1λ和值n,输出系统公钥PKMCAPRE和主私钥MSK

私钥产生算法KeyGen(PKMCAPREMSKID):输入主私钥MSK和身份ID,输出私钥SKID

加密算法Enc(PKMCAPRESMγ):输入PKMCAPRE,身份集S(|S|≤n),明文M,条件γβω,输出原始MCAPRE密文CS

重加密密钥产生算法RKGen(PKMCAPREIDSKIDID′,γβω):输入公钥PKMCAPRE,身份ID及它的私钥SKID,另一个身份ID′,条件γβω,输出重加密密钥RKIDID′|γβω

重加密算法ReEnc(PKMCAPRERKIDID′|γβωCSS):输入公钥PKMCAPRE,重加密密钥RKIDID′|γβω,原始MCAPRE密文,身份集S(|S|≤n),输出重加密密文CID′

解密Dec-1(PKMCAPREIDSKIDCSS):输入公钥PKMCAPRE,身份ID及它的私钥SKID,原始MCAPRE密文,身份集S(|S|≤n),输出明文。

解密Dec-2(PKMCAPREID′,SKID′CID′):输入公钥PKMCAPRE,身份ID′及它的私钥SKID′,重加密密文CID′,输出明文。

1.4 一致性

1)任意的原始MCAPRE密文。CS←Enc(PKMCAPRESMγβω)和任意的私钥SKID←KeyGen(MSKID),如果IDS,算法Dec-1(PKMCAPREIDSKIDCSS)始终输出正确的明文。

2)任意的重加密密文CID′←ReEnc(PKMCAPRERKIDID′|γβωCSS)和任意的私钥SKID′←KeyGen(MSKID′),对于RKIDID′|γβω←RKGen(PKMCAPREIDSKIDID′,γ′,β′,ω′),CS←Enc(PKMCAPRESMγβω)和SKID←KeyGen(MSKID),如果IDSγβω=γβω′∧ID′,算法Dec-2(PKMCAPREID′,SKID′CID′)始终输出正确的明文。

第一个一致性表明任意的原始MCAPRE密文可以被它指定的接收者正确解密。对于任意被重加密密钥加密的原始MCAPRE密文,第二个一致性表明如果重加密密钥是由原始MCAPRE密文指定的接收者产生的,且原始MCAPRE密文与重加密密文具有相同的条件,那么被该重加密密钥加密的原始MCAPRE密文是正确的,而且它能被指定的接收方正确解密。

1.5 安全模型

该MCAPRE系统包含一个IBE方案和一个IBBE方案,而这两个原语的标准安全性定义可以分别在文献[13]和文献[11]中找到。由于引进了代理重加密,在安全性定义中要着重关注它的安全性。一般来讲,任何概率多项式时间的攻击者在不知道原始MCAPRE密文接收者的私钥及该原始密文的、重加密密文的接收者的私钥的情况下,他无法判断出密文是由两个明文中哪一个加密得到的,那么该MCAPRE方案是选择性身份安全下的选择明文攻击安全的(INDistinguishability-selective IDentity-Chosen Plaintext Attack,IND-sID-CPA)。

MCAPRE正式的安全性定义通过攻击者与挑战者的游戏定义。设置阶段,攻击者发布他要攻击的身份集S*及条件γ*β*ω*,在初始化阶段,挑战者初始化MCAPRE方案。在挑战阶段,挑战者在给定的两个明文中随机地选择一个,然后用身份集S*和条件γ*β*ω*进行IBBE加密,形成挑战密文,让攻击者判断他对哪个明文加密。在挑战阶段的前后,攻击者允许询问某些用户的私钥和重加密密钥,也就是攻击者可以与一些用户勾结。但是,攻击者符合两个限制条件:1)不能询问挑战密文的私钥;2)如果攻击者拥有某一密文的解密密钥,他不能询问可以使得挑战密文转换成该密文的重加密密钥。具体如下:

设置阶段  攻击者发布要攻击的身份集S*(|S*|≤m)及条件γ*β*ω*

初始化阶段  挑战者C运行初始化算法得到系统公钥PK和系统主密钥MSK,并将PK交给攻击者A

阶段1   攻击者A向挑战者适应性地提出以下询问:

私钥提取(Reveal(ID)):A询问IBBE或IBE中IDS*的私钥,相应地,挑战者运行KeyGen(PKMSKID)产生私钥SKID,并将其返回给A

重加密密钥提取(RKReveal(IDID′|γβω)):A询问从身份集S中的某个身份ID到身份ID′的重加密密钥,相应地,挑战者运行算法RKGen(PKSKIDIDID′,γβω)产生重加密密钥RKSID|γβω,并将其返回给A。这里,对于IDSSKID由KeyGen(PK, MSK, ID)产生。但是,如果攻击者A拥有某一密文的解密密钥,他不能询问可以使得挑战密文转换成该密文的重加密密钥。

挑战阶段  攻击者A给挑战者C两个明文M0M1。挑战者任意选择一个明文进行加密,生成挑战密文CS*←Encrypt(PK, S*, Mb, γ*, β*, ω*),其中b∈{0, 1},并将CS*返回给A

阶段2   攻击者A像在阶段1中一样,继续发起询问。

猜测阶段  攻击者A输出一个猜测b′∈{0, 1}。攻击者在上述游戏中的优势定义为AdvA=|Pr[b=b']-2-1|。

定义2   如果所有的概率多项式时间的攻击者在上述游戏中至多拥有可忽略的优势,那么该MCAPRE是IND-sID-CPA安全的。

定理1   如果DBDH假设成立,IBBE方案和IBE方案是IND-sID-CPA安全的,那么MCAPRE系统是安全的。特别地,如果存在具有优势AdvCAPRE, A攻破该系统的攻击者,那么就可以构造算法B,分别以AdvDBDH, BINDAdvIBBE, BIND-sID-CPAAdvIBE, BIND-sID-CPA的优势攻破DBDH假设、IBBE和IBE方案。

2 方案构造

MCAPRE方案由IBBE方案[11]和IBE方案[12]相结合构造而成的。原始MCAPRE密文是在IBBE[11]密文中加入一个新的条件部分构造而成,重加密密钥是由IBE方案[12]生成,原始MCAPRE密文的解密与原IBBE密文的解密方法相同,重加密密文的解密与原IBE方案的解密类似。具体如下:

初始化算法Setup(1λn):输入安全参数1λ和值n(n是每次加密中接收方个数的最大值),该算法概率地构造一个双线性映射êG×GGT,群G和群GT是两个(乘法)有限循环群,它们的阶为素数pgh是群G的两个生成元,随机地选取(ut)∈GαZp*,选择两个哈希函数H:{0, 1}*Zp*H′:GTG,最后输出系统公钥$P{K_{{\rm{MCAPRE}}}} = \left( {p,G,{G_T},\hat e,\hat e\left( {g,h} \right),{g_1},h,{h^{{\alpha ^2}}}, \cdots {h^{{\alpha ^n}}},u,{u^\alpha },{u^{{\alpha ^2}}}, \cdots ,{u^{{\alpha ^n}}},t,{t^\alpha },{t^{{\alpha ^2}}}, \cdots ,{t^{{\alpha ^n}}},H,H'} \right)$,主密钥MSK=(gα),g1=gα

私钥产生算法KeyGen(PKMCAPREMSKID):输入公钥PKMCAPRE、主私钥MSK和身份ID,输出私钥SKID=g1α+H(ID)

加密算法Enc(PKMCAPRESMγβω):输入PKMCAPRE,身份集S(|S|≤n),明文M,条件γβωZp*,该算法随机地选取sZp*,输出原始MCAPRE密文CS=(C0C1C2C3C4C5),其中:

${C_0} = M \cdot \hat e{\left( {g, h} \right)^s}$ (1)
${C_1} = g_1^{-s}$ (2)
${C_2} = {h^{s\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} }}$ (3)
${C_3} = {\left( {u{t^\gamma }} \right)^{s\prod\limits_{i = 1}^n {\left( {\frac{{\alpha + H\left( {I{D_i}} \right)}}{{H\left( {I{D_i}} \right)}}} \right)} }}$ (4)
${C_4} = {\left( {u{t^\beta }} \right)^{s\prod\limits_{i = 1}^n {\left( {\frac{{\alpha + H\left( {I{D_i}} \right)}}{{H\left( {I{D_i}} \right)}}} \right)} }}$ (5)
${C_5} = {\left( {u{t^\omega }} \right)^{s\prod\limits_{i = 1}^n {\left( {\frac{{\alpha + H\left( {I{D_i}} \right)}}{{H\left( {I{D_i}} \right)}}} \right)} }}$ (6)

重加密密钥产生算法RKGen(PKMCAPREIDSKIDID′,γ):输入公钥PKMCAPRE,身份IDj(IDjS={IDi}i=1n)及它的私钥SKIDj,另一个身份ID′(ID′∉S),条件γZp*,该算法随机地选取(kr)∈Zp*输出重加密密钥RKIDID′|γ=(SKIDjE0E1),其中:

$S{{K'}_{I{D_j}}} = S{K_{I{D_j}}} \cdot {\left( {{u^3}{t^{\gamma + \beta + \omega }}} \right)^{\frac{k}{{H\left( {I{D_j}} \right)}}}}$ (7)
${E_0} = H'\left( {\hat e{{\left( {g, h} \right)}^r}} \right) \cdot {h^k}$ (8)
${E_1} = {h^{r\left( {\alpha + H\left( {ID'} \right)} \right)}}$ (9)

重加密算法ReEnc(PKMCAPRERKIDID′|γβωCSS):输入公钥PKMCAPRE,重加密密钥RKIDID′|γβω=(SKIDjE0E1),原始MCAPRE密文CS=(C0C1C2C3C4C5),身份集S(|S|≤n),输出重加密密文CID=(C0C3C4C5E0E1),C3=C3C4=C4C5=C5E0=E0E1=E1,其中:

${{C'}_0}{\rm{ = }}\frac{{{C_0}}}{K}{\rm{ = }}\frac{M}{{\hat e\left( {{C_3}, {h^k}} \right)}}\hat e\left( {{C_4}, {h^k}} \right)\hat e\left( {{C_5}, {h^k}} \right)$ (10)
$\begin{array}{l} K = {\left[{\hat e\left( {{C_1}, {h^{\Delta \;S, j}}} \right) \cdot \hat e\left( {S{{K'}_{I{D_j}}}, {C_2}} \right)} \right]^{{{\left[{\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } \right]}^{ - 1}}}} = \\ \;\;\;\;\;\;\;\;\hat e{\left( {g, h} \right)^s} \cdot \hat e{\left( {\left( {{u^3}{t^{\gamma + \beta + \omega }}} \right), h} \right)^{\left[{ks\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} } \right]/\left[{\prod\limits_{i = 1}^n {H\left( {I{D_i}} \right)} } \right]}} = \\ \;\;\;\;\;\;\;\;\hat e{\left( {g, h} \right)^s} \cdot \hat e\left( {{c_3}, {h^k}} \right) \cdot \hat e\left( {{C_4}, {h^k}} \right) \cdot \hat e\left( {{C_5}, {h^k}} \right)\\ {\mathit{\Delta} _{s, j}} = \frac{1}{\alpha }\left( {\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right) -\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } } \right) \end{array}$ (11)

解密Dec-1(PKMCAPREIDSKIDCSS):输入公钥PKMCAPRE,身份IDj(IDjS)及它的私钥SKIDj,原始MCAPRE密文CS=(C0C1C2C3C4C5),身份集S(|S|≤n),计算:

$\begin{array}{l} M' = {\left( {\hat e\left( {{c_1}, {h^{\Delta \;S, j}}} \right) \cdot \hat e\left( {S{K_{I{D_j}}}, {C_2}} \right)} \right)^{\left[{\prod\limits_{i = 1, i \ne j}^n {H{{\left( {I{D_i}} \right)}^{-1}}} } \right]}} = \\ \;\;\;\;\;\;\;\;\;\;\;\;\;\hat e{\left( {g, h} \right)^s} \end{array}$ (12)

输出M=C0/M′。

解密Dec-2(PKMCAPREID′,SKID′CID′):输入公钥PKMCAPRE,身份ID′及它的私钥SKID′,重加密密文CID,计算:

${h^k} = \frac{{{{E'}_0}}}{{H'\left( {\hat e\left( {S{K_{ID'}}, {{E'}_1}} \right)} \right)}}$ (13)

输出M=C0·ê(hk, C3ê(hk, C4ê(hk, C5)。

3 方案分析

下面,从正确性(一致性)、效率、和安全性三个方面分析方案的实用性。

3.1 正确性分析

1)IBBE密文解密的正确性与文献[11]中的一样:

$\begin{array}{l} M' = {\left( {\hat e\left( {{C_1}, {h^{\mathit{\Delta} S, j}}} \right) \cdot \hat e\left( {S{K_{I{D_j}}}, {C_2}} \right)} \right)^{{{\left[{\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } \right]}^{ - 1}}}} = \\ {\left( {\hat e\left( {{g^{ - \alpha s}}, {h^{\mathit{\Delta} S, j}}} \right) \cdot \hat e\left( {{g^{\frac{1}{{\alpha + H\left( {I{D_j}} \right)}}}}, {h^{s\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} }}} \right)} \right)^{{{\left[{\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } \right]}^{ - 1}}}}{\rm{ = }}\\ \left( {\hat e{{\left( {g, h} \right)}^{ - s\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right) + s\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } }}} \right. \cdot \\ {\left. {\hat e{{\left( {g, h} \right)}^{s\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} }}} \right)^{{{\left[{\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } \right]}^{ - 1}}}} = \\ {\left( {\hat e{{\left( {g, h} \right)}^{s\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} }}} \right)^{{{\left[{\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } \right]}^{ -1}}}} = \hat e{\left( {g, h} \right)^s} \end{array}$
$M = \frac{{{C_0}}}{{M'}} = \frac{{M\hat e{{\left( {g, h} \right)}^s}}}{{\hat e{{\left( {g, h} \right)}^s}}}$

2)重加密密文解密的正确性:

①在重加密过程中:

$\begin{array}{l} K' = \hat e\left( {{g^{-\alpha s}}, {h^{\mathit{\Delta} S, j}}} \right) \cdot \\ \;\;\;\;\hat e\left( {{g^{\frac{1}{{\alpha + H\left( {I{D_j}} \right)}}}} \cdot {{\left( {{u^3}{t^{\gamma + \beta + \omega }}} \right)}^{\frac{k}{{H\left( {I{D_j}} \right)}}}}, {h^{s\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} }}} \right) = \\ \;\;\;\;\hat e\left( {{g^{-\alpha s}}, {h^{\mathit{\Delta} S, j}}} \right) \cdot \hat e{\left( {g, h} \right)^{s\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} }} \cdot \\ \;\;\;\;\hat e\left( {{{\left( {{u^3}{t^{\gamma + \beta + \omega }}} \right)}^{\frac{k}{{H\left( {I{D_j}} \right)}}}}, {C_2}} \right) = \\ \;\;\;\;\hat e{\left( {g, h} \right)^{-s\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right) + s\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } }} \cdot \\ \;\;\;\;\hat e{\left( {g, h} \right)^{ - s\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_j}} \right)} \right)} }} \cdot \hat e\left( {{{\left( {{u^3}{t^{\gamma + \beta + \omega }}} \right)}^{\frac{k}{{H\left( {I{D_j}} \right)}}}}, {C_2}} \right) = \\ \;\;\;\;\hat e{\left( {g, h} \right)^{ - s\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_j}} \right)} \right)} }} \cdot \hat e{\left( {\left( {{u^3}{t^{\gamma + \beta + \omega }}} \right), h} \right)^{\frac{{ks\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} }}{{H\left( {I{D_j}} \right)}}}} = \\ \;\;\;\;\hat e{\left( {g, h} \right)^{s\prod\limits_{i = 1, i \ne j}^n {\left( {\alpha + H\left( {I{D_j}} \right)} \right)} }} \cdot \hat e{\left( {\left( {u{t^\gamma }} \right), h} \right)^{\frac{{ks\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_i}} \right)} \right)} }}{{H\left( {I{D_j}} \right)}}}} \cdot \\ \;\;\;\;\hat e{\left( {\left( {u{t^\beta }} \right), h} \right)^{\frac{{ks\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_j}} \right)} \right)} }}{{H\left( {I{D_j}} \right)}}}} \cdot \hat e{\left( {\left( {u{t^\omega }} \right), h} \right)^{\frac{{ks\prod\limits_{i = 1}^n {\left( {\alpha + H\left( {I{D_j}} \right)} \right)} }}{{H\left( {I{D_j}} \right)}}}} \end{array}$
$\begin{array}{l} K = {\left( {k'} \right)^{{{\left[{\prod\limits_{i = 1, i \ne j}^n {H\left( {I{D_i}} \right)} } \right]}^{ -1}}}} = \\ \;\;\;\;\;\;\;\hat e{\left( {g, h} \right)^s} \cdot \hat e\left( {{C_3}, {h^k}} \right) \cdot \hat e\left( {{C_4}, {h^k}} \right) \cdot \hat e\left( {{C_5}, {h^k}} \right)\\ {{C'}_0} = \frac{{{C_0}}}{K} = \frac{{M\hat e{{\left( {g, h} \right)}^s}}}{{\hat e{{\left( {g, h} \right)}^s}}}\hat e\left( {{C_3}, {h^k}} \right)\hat e\\ \left( {{C_{4, }}{h^k}} \right)\hat e\left( {{C_5}, {h^k}} \right) = \frac{M}{{\hat e\left( {{C_3}, {h^k}} \right)\hat e\left( {{C_4}, {h^k}} \right)\hat e\left( {{C_5}, {h^k}} \right)}} \end{array}$

②重加密密文解密:

$\begin{array}{l} {h^k} = \frac{{{{E'}_0}}}{{H'\left( {\hat e\left( {S{K_{ID'}}, {{E'}_1}} \right)} \right)}} = \frac{{H'\left( {\hat e{{\left( {g, h} \right)}^r}} \right) \cdot {h^k}}}{{H'\left( {\hat e\left( {{g^{\frac{1}{{\alpha + H\left( {ID} \right)}}}}, {{E'}_1}} \right)} \right)}}\\ M = {{C'}_0} \cdot \hat e\left( {{h^k}, {{C'}_3}} \right) \cdot \hat e\left( {{C_4}, {h^k}} \right) \cdot \hat e\left( {{C_5}, {h^k}} \right) \end{array}$
3.2 性能分析

表 1将MCAPRE方案分别与文献[12]和文献[5]中的方案进行了比较。文献[12]的方案中公钥长度和原始密文较短,而且是跨加密系统的代理重方案,同时在生成重加密密钥过程中不需要发送方与接收方交互;但是,它是非条件型代理重加密,也就是,在代理重加密过程中,代理者会将所有的原始密文进行重加密,这不仅造成代理者作很多无用功,而且还使得接收方解密许多不需要的密文,影响解密效率。文献[5]中的方案是基于身份的广播代理重加密方案,在生成重加密密钥过程中也不需要发送方与接收方交互,而且在重加密过程中代理者进行条件型代理重加密;但是,该方案不是跨加密系统的代理重加密,而且方案的公钥长度、重加密密钥长度、重加密密文长度都偏长,同时接收方在解密过程中需要3次配对运算,解密效率较低。

通过比较可以发现,尽管MCAPRE方案的公私钥长度、原始密文、重加密密文偏长,但是,它在生成重加密密钥的过程中,不需要发送方与接收方进行交互,而且支持多条件型的、跨加密系统的代理重加密,可以将原始密文进行筛选后再进行重加密,不但提高了代理者的代理重加密效率,还提高了接收方的解密效率,更适合于计算能力一般的移动用户应用。

表 1 与其他方案之间的性能比较
3.3 安全性分析

MCAPRE方案的安全性可以归约于DBDH假设、IBBE方案[11]和IBE方案[12]的IND-sID-CPA安全性。

从定理1可以看出,如果攻破DBDH假设的优势,IBE方案安全性的优势和攻破IBBE方案安全性的优势都是可以忽略的,那么攻破MCAPRE方案安全性的优势也是可以忽略的,也就是该MCAPRE方案抵抗来自定义2中定义的任何概率多项式时间的攻击者。

让⊥表示停止一个算法。假设存在拥有优势AdvMCAPRE, A的攻击者A能攻破该MCAPRE方案的安全性。为了证明定理1,构造一个攻击者B,他可以利用A分别以优势AdvIBBE, BIND-sID-CPAAdvIBE, AIND-sID-CPA的优势攻破IBBE和IBE方案。并且本文将证明AdvIBBE, BIND-sID-CPA=AdvMCAPRE, A· (1-L·AdvIBE, AIND-sID-CPAL·AdvDBDH, AIND),L在后文定义。

C为方案IBBE安全性中定义的挑战者或方案IBE安全性中定义的挑战者。攻击者A、攻击者B和挑战者之间进行一个游戏,在该游戏中,挑战者测试B攻破方案IBBE安全性或方案IBE安全性的能力,而B又作为攻击者A的挑战者,测试A攻破方案MCAPRE安全性的能力。可以看出,在该游戏中,攻击者B是想利用A攻破方案IBBE或方案IBE的安全性。具体细节如下:

设置阶段  攻击者A选择一个要挑战的身份集S*和要挑战的条件γ*β*ω*,将两者送给BB再将S*转送给挑战者C。攻击者B准备两个表:

1)TSK存储攻击者A询问过的私钥相对应的身份

2)TRK存储攻击者A询问的重加密密钥的相关信息,包括(Identity, Receiver, Re-encryptionKey, Conditon)。

初始化阶段  由两部分组成:首先,挑战者C为攻击者B生成方案IBBE的公私钥;其次攻击者B为攻击者A生成方案MCAPRE的公钥。在这两部分当中,三个哈希函数分别被CB当作随机预言机使用, 因此,上面提到的公钥中不含哈希函数。具体如下:

1)挑战者C运行IBBE方案的初始化算法Setup(1λ),生成公钥PKIBBE和主私钥MSK,其中PKIBBE=(pGGTêg1ê(g, h),hhα,…,hαnH(·)),MSK=(gα)。PKIBEPKIBBE的一部分,PKIBE=(pGGTêg1ê(g, h),hhαH(·))。由于哈希函数H在证明中被当作预言机使用,因此,挑战者C将公钥PKIBBE=(pGGTêg1ê(g, h),hhα,…,hαn)发送给攻击者B。挑战者C为攻击者B提供哈希询问OIBBEH(ID), 并将哈希函数H模拟成随机预言机。他为OIBBEH(ID)准备一个表TH,存储询问的身份信息及相关的应答,包括(Identity, HashValue)。

2)攻击者B随机选择(x, y)∈Zp*,生成MCAPRE方案的公钥PKMCAPRE=(PKIBBEuαuα2,…,uαntαtα2,…,tanH(·),H′(·)),uαi=hαi·xtαi=hαi·yi∈。由于哈希函数HH′在证明中被当作预言机,因此攻击者B发送公钥PKMCAPRE=(PKIBBEuuαuα2,…,uαnttαtα2,…,tan)给攻击者A。攻击者BA提供哈希询问OMCAPREH(ID)和OMCAPREH(Y),YGT,并将哈希函数HH′模拟成随机预言机。OMCAPREH(ID)是对OIBBEH(ID)的模拟。攻击者AOMCAPREH(ID)的任何询问将被B转送给挑战者C,同样,C的任何回答都将被B转送给A。同时,攻击者BOMCAPREH准备一个表TH′,存储被询问的群元素和相应的回答,包括(GroupElement, HashValue)。

阶段1   攻击者B向挑战者C提出哈希询问OIBBEH(ID)和私钥询问OIBBESK(ID),也可以是OIBEH(ID)、OIBESK(ID)询问。攻击者AB提出哈希询问OMCAPREH(ID)和OMCAPREH(Y),私钥询问OMCAPRESK(ID)和重加密密钥询问OMCAPRERK(ID, ID′, γ, β, ω)。具体如下:

1)哈希询问OIBBEH(ID):如果有(ID, XZp*)∈TH,挑战者C回答X;否则C随机地选择XZp*,回答该X,并将(ID, X)存入表TH

2)私钥询问OIBBESK(ID):如果DS*,挑战者C回答⊥;否则C回答$SK_{{\rm{IBBE}}}^{ID} = {g^{{{\left[{\alpha + O_{{\rm{IBBE}}}^H\left( {ID} \right)} \right]}^{ -1}}}}$

3)哈希询问OMCAPREH(ID):攻击者B询问OIBBEH(ID)或OIBEH(ID),回答OIBBEH(ID)或OIBEH(ID)。

4)哈希询问OMCAPREH(YGT):如果有(Y, ZG)∈TH,攻击者B回答Z;否则B随机选择ZG,回答该Z,并将(Y, Z)存入表TH′

5)私钥询问OMCAPRESK(ID):如果IDS*,攻击者B回答⊥;如果有(ID′, ID″, *, γ, β, ω)∈TRK,其中ID′∈S*ID=ID″,B回答⊥;否则B询问OIBBESK(ID)或OIBESK(ID),得到SKIBBEIDSKIBEID,返回SKMCAPREID=SKIBBEID=SKIBEID,并将ID存入表TSK

6)重加密密钥询问OMCAPRERK(IDID′,γβω):攻击者A询问条件γβω下的,从身份ID到的ID′的重加密密钥。如果有(IDID′,RKIDID′|γβωγβω)∈TRK,攻击者BRKIDID′|γβω返回给A;否则有以下几种情况:

a)IDS*:攻击者B询问OIBBESK(ID),得到SKIBBEID,随机地选择(r, k)∈Zp,计算重加密密钥$R{K_{ID \to ID'\left| {\gamma \beta \omega } \right.}} = \left( {SK_{{\rm{IBBE}}}^{ID} \cdot {{\left( {{u^3}{t^{\gamma + \beta + \omega }}} \right)}^{k/\left[{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right]}}, O_{{\rm{MCAPRE}}}^{H'}, O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^r}} \right) \cdot {h^k}, {h^{r\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right)$,返回RKIDID′|γβω给攻击者A,并将(IDID′,RKIDID′|γβωγβω)存入表TRK

b)IDS*γ=γ*β=β*ω=ω*ID′∩TSK≠∉:攻击者B回答⊥。

c)在以下三种情况中:①IDS*γγ*ββ*ωω*ID′ ∩ TSK ≠ ∅;②IDS*γγ*ββ*ωω*ID′∩TSK=∅;③IDS*γ=γ*β=β*ω=ω*ID′∩TSK=∅。攻击者B随机地选择SK′IDG和(rk)∈Zp,将重加密密钥$R{K_{ID \to ID'\left| {\gamma \beta \omega } \right.}} = \left( {S{{K'}_{ID}}, O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^r}} \right) \cdot {h^k}, {h^{r\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right)$返回给A,并将(IDID′,RKIDID′|γβωγβω)存入表TRK

挑战阶段  当攻击者A判断阶段1结束时,他发送两个挑战消息(M0M1)给B。攻击者B将(M0M1)转送给挑战者CC生成挑战密文${C_{S*}} \leftarrow {\rm{En}}{{\rm{c}}_{{\rm{IBBE}}}}\left( {P{K_{{\rm{IBBE}}}}, {S^*}, {M_b}} \right), b \in \left\{ {0, 1} \right\}, $,并将CS*发送给攻击者B。根据密文CS*的结构,让${C_{S*}} = \left( {{C_0}, {C_1}, {C_2}} \right), {C_0} = {M_b} \cdot \hat e{\left( {g, h} \right)^s}, {C_1} = g_1^{-s}, {C_2} = {h^{s\prod\limits_{i = 1}^n {\left( {\alpha + O_{{\rm{IBBE}}}^H\left( {I{D_i}} \right)} \right)} }}$。回顾初始化阶段,攻击者B随机地选择(x, y)∈Zp*,令u=hxt=hyB计算:

$\begin{array}{l} {C_3} = {\left( {C_2^x \cdot C_2^{y \cdot \gamma }} \right)^{\prod\limits_{i = 1}^n {{{\left[{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)} \right]}^{ - 1}}} }}\\ {C_4} = {\left( {C_2^x \cdot C_2^{y \cdot \beta }} \right)^{\prod\limits_{i = 1}^n {{{\left[{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)} \right]}^{ - 1}}} }}\\ {C_5} = {\left( {C_2^x \cdot C_2^{y \cdot \omega }} \right)^{\prod\limits_{i = 1}^n {{{\left[{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)} \right]}^{ -1}}} }} \end{array}$

CS*扩展成一个有效的原始MCAPRE密文。令CMCAPRE*=(CS*C3C4C5),由于:

$\begin{array}{l} O_{{\rm{IBBE}}}^H = O_{{\rm{MCAPRE}}}^H\\ {C_3} = {\left( {C_2^x \cdot C_2^{y \cdot \gamma }} \right)^{\prod\limits_{i = 1}^n {{{\left[{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)} \right]}^{ - 1}}} }} = \\ \;\;\;\;\;\;\;{\left( {u \cdot {t^\gamma }} \right)^{s\prod\limits_{i = 1}^n {\left( {\frac{{\alpha + O_{{\rm{IBBE}}}^H\left( {I{D_i}} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)}}} \right)} }}\\ {C_4} = {\left( {C_2^x \cdot C_2^{y \cdot \beta }} \right)^{\prod\limits_{i = 1}^n {{{\left[{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)} \right]}^{ - 1}}} }} = \\ \;\;\;\;\;\;\;\;{\left( {u \cdot {t^\beta }} \right)^{s\prod\limits_{i = 1}^n {\left( {\frac{{\alpha + O_{{\rm{IBBE}}}^H\left( {I{D_i}} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)}}} \right)} }}\\ {C_5} = {\left( {C_2^x \cdot C_2^{y \cdot \omega }} \right)^{\prod\limits_{i = 1}^n {{{\left[{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)} \right]}^{ -1}}} }} = \\ \;\;\;\;\;\;\;{\left( {u \cdot {t^\omega }} \right)^{s\prod\limits_{i = 1}^n {\left( {\frac{{\alpha + O_{{\rm{IBBE}}}^H\left( {I{D_i}} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {I{D_i}} \right)}}} \right)} }} \end{array}$

因此密文CMCAPRE*就是方案MCAPRE安全性中定义的有效挑战密文。最后,攻击者B将挑战密文CMCAPRE*发送给攻击者A

阶段2   该阶段重复阶段1中的询问。

猜测阶段  当攻击者A输出猜测b′,b′∈{0, 1},攻击者Bb′转送给挑战者C

攻击者B可以成功、有效地模拟攻击者A攻击方案MCAPRE安全性的视角,但是,在以下重加密密钥询问OMCAPRERK(IDID′,γ)的三种情况中,B不能有效地模拟:

1)情况1:IDS*γγ*ββ*ωω*ID′∩TSK≠∅;

2)情况2:IDS*γγ*ββ*ωω*ID′∩TSK=∅;

3)情况3:IDS*γ=γ*β=β*ω=ω*ID′∩TSK=∅。

换句话,猜想上述三种情况均不被攻击者A发现,那么,若攻击者A能够成功攻破方案MCAPRE的安全性,攻击者B便可以攻破方案IBBE的IND-sID-CPA安全性。下面,计算攻击者A发现上述三种情况的概率。

在以上三种情况中,攻击者B随机选择SKIDG和(r, k)∈Zp,伪造重加密密钥$R{K_{ID \to ID'\left| {\gamma \beta \omega } \right.}} = \left( {S{{K'}_{ID}}, O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^r}} \right) \cdot {h^k}, {h^{r\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right)$。假设攻击者A总共询问ORKMCAPREL次。接下来,通过下面的两个引理证明A发现以上三种情况的概率不超过L·(AdvDBDH, AIND+AdvIBE, AIND-sID-CPA)。令ADis(E, F)表示攻击者A能够区分事件E与事件F

引理1  攻击者A发现情况1中的RKIDID′|γβω的概率不超过AdvDBDH, AIND

分析如下:假设攻击者A可以发现情况1中的RKIDID′|γβω。在情况1中,ID′∩TSK≠∅,A可以解密出hk,那么就有${A_{Dis}}\left( {S{{K'}_{ID}}, SK_{{\rm{IBBE}}}^{ID} \cdot {{\left( {{u^3} \cdot {t^{\gamma + \beta + \omega }}} \right)}^{k/\left[{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right]}}} \right)$。由于A能计算出${h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}$,因此就有:

$\begin{array}{l} {A_{Dis}}\left( {S{{K'}_{ID}}, SK_{{\rm{IBBE}}}^{ID} \cdot {{\left( {{u^3} \cdot {t^{\gamma + \beta + \omega }}} \right)}^{k/\left[{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right]}}} \right) \Rightarrow \\ \;\;\;\;\;{A_{Dis}}\left( {\hat e\left( {S{{K'}_{ID}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right)} \right., \\ \;\;\;\;\;\left. {\hat e\left( {SK_{{\rm{IBBE}}}^{ID} \cdot {{\left( {{u^3} \cdot {t^{\gamma + \beta + \omega }}} \right)}^{k/\left[{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right]}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right)} \right) \end{array}$

又由于(g, h)是公共参数,因此有:

$\begin{array}{l} {A_{Dis}}\left( {\hat e\left( {S{{K'}_{ID}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right), \hat e\left( {SK_{{\rm{IBBE}}}^{ID} \cdot } \right.} \right.\\ \;\;\;\;\;\left. {\left. {{{\left( {{u^3} \cdot {t^{\gamma + \beta + \omega }}} \right)}^{k/\left[{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right]}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right)} \right) \Rightarrow \\ \;\;\;\;\;{A_{Dis}}\left( {\hat e\left( {S{{K'}_{ID}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right.} \right) \cdot \hat e{\left( {g, h} \right)^{ - 1}}, \\ \;\;\;\;\;\hat e\left. {\left( {{{\left( {{u^3} \cdot {t^{\gamma + \beta + \omega }}} \right)}^{k/\left[{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right]}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right)} \right) \end{array}$

又因为SKID是随机从G挑选的,那么就存在一个r′∈Zp使得$\;\hat e\left( {S{{K'}_{ID}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right) \cdot \hat e{\left( {g, h} \right)^{-1}} = \hat e{\left( {h, h} \right)^{r'}}$

u=hxt=hy得:

$\begin{array}{l} {A_{Dis}}\left( {\hat e\left( {S{{K'}_{ID}}, {h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right.} \right) \cdot \hat e{\left( {g, h} \right)^{- 1}}, \\ \;\;\;\;\;\hat e\left( {{{\left( {{u^3} \cdot {t^{\gamma + \beta + \omega }}} \right)}^{k/\left[{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right]}}, } \right.\\ \;\;\;\;\;\;\;\;\;\left. {\left. {{h^{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}} \right)} \right) \Rightarrow \\ \;\;\;{A_{Dis}}\left( {\hat e{{\left( {h, h} \right)}^{r'}}, \hat e{{\left( {h, h} \right)}^{\frac{{\left( {3x + y\left( {\gamma + \beta + \omega } \right)} \right) \cdot k \cdot \left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}}}} \right) \end{array}$

此外,攻击者A还知道h3x+y(γ+β+ω)hk${h^{\frac{{\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}}}$。根据这些信息,计算事件${A_{Dis}}\left( {\hat e{{\left( {h, h} \right)}^{r'}}, \hat e{{\left( {h, h} \right)}^{\frac{{\left( {3x + y\left( {\gamma + \beta + \omega } \right)} \right) \cdot k \cdot \left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}}}} \right)$的概率。

${A_{Dis}}\left( {\hat e{{\left( {h, h} \right)}^{r'}}, \hat e{{\left( {h, h} \right)}^{\frac{{\left( {3x + y\left( {\gamma + \beta + \omega } \right)} \right) \cdot k \cdot \left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}}}} \right)$成立时,意味着输入h3x+y(γ+β+ω)hk${h^{\frac{{\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}}}$,攻击者A可以区分(h, h)r$\hat e{\left( {h, h} \right)^{\frac{{\left( {3x + y\left( {\gamma + \beta + \omega } \right)} \right) \cdot k \cdot \left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}{{O_{{\rm{MCAPRE}}}^H}}}}$,从而区分一个DBDH问题的实例。根据DBDH问题的定义,事件${A_{Dis}}\left( {\hat e{{\left( {h, h} \right)}^{r'}}, \hat e{{\left( {h, h} \right)}^{\frac{{\left( {3x + y\left( {\gamma + \beta + \omega } \right)} \right) \cdot k \cdot \left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID} \right)} \right)}}{{O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}}}} \right)$的概率不超过AdvDBDH, AIND。因此,攻击者A发现情况1中的RKIDID′|γβω的概率不超过AdvDBDH, AIND

引理2   攻击者A发现情况2和情况3中的RKIDID′|γβω的概率不超过AdvIBE, AIND-sID-CPA

分析如下:

由于SKID是在G中随机选择的,因此存在k′∈Zp使得$S{{K'}_{ID}} = SK_{{\rm{IBBE}}}^{ID} \cdot {\left( {{u^3} \cdot {t^{\gamma + \beta + \omega }}} \right)^{k'/O_{{\rm{MCAPRE}}}^H\left( {ID} \right)}}$。如果攻击者A能够发现情况2和情况3中的RKIDID′|γβω,那么A就能发现k′≠k。回忆RKIDID′|γβω的组成,$\left( {O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^r}} \right) \cdot {h^k}, {h^{r\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right)$是对hk的IBE加密。如果攻击者A能够发现k′≠k,那么就有ADis(EF),其中$E = \left( {O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^r}} \right) \cdot {h^k}, {h^{r\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right), F = \left( {O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^{r''}}} \right) \cdot {h^{k'}}, {h^{r''\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right)$r″随机地选自Zp。接下来,分析仅当A能够攻破方案IBE的IND-sID-CPA安全性时,ADis(E, F)成立。

OMCAPREH是一个随机预言机可得,存在RGT使得$O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^{r''}}} \right) \cdot {h^{k'}} = O_{{\rm{MCAPRE}}}^{H'}\left( {\hat e{{\left( {g, h} \right)}^{r''}} \cdot R} \right) \cdot {h^k}$。因此,当ADis(E, F)成立时,ADis(E′, F′)成立,$E' = \left( {\hat e{{\left( {g, h} \right)}^r}, {h^{r\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right), F' = \left( {\hat e{{\left( {g, h} \right)}^{r''}} \cdot R, {h^{r''\left( {\alpha + O_{{\rm{MCAPRE}}}^H\left( {ID'} \right)} \right)}}} \right)$。可以看出,E′和F′是方案IBE产生的两个密文。又由情况2和情况3中ID′∩TSK=∅,得当攻击者AID′为挑战身份及以1∈GTR为两个挑战密文时,在不知道数据共享者私钥SKIBEID(ID=ID′)的情况下,他能攻破方案IBE的IND-sID-CPA安全性。根据方案IBE的IND-sID-CPA安全性定义,攻击者A发现情况2和情况3中的RKIDID′|γβω的概率不超过AdvIBE, AIND-sID-CPA(AdvIBE, AIND-sID-CPA=AdvIBE, BIND-sID-CPA)。

结合上述两个引理,得到下面的引理。

引理3   当攻击者A总共询问OMCAPRERKL次,在概率L·(AdvDBDH, AIND+AdvIBE, AIND-sID-CPA)以外,攻击者B可以成功模拟攻击者A攻破方案MCAPRE安全性的视角。

由于攻击者A攻破方案MCAPRE安全性的优势为AdvMCAPRE, A,因此攻击者B攻破方案IBBE的IND-sID-CPA安全性的优势为AdvIBBE, BIND-sID-CPA=AdvMCAPRE, A·(1-L·AdvIBE, AIND-sID-CPAL·AdvDBDH, AIND)。由于方案IBBE和方案IBE都是在随机预言机下IND-sID-CPA安全的,因此AdvIBBE, BIND-sID-CPAAdvIBE, AIND-sID-CPA都可以忽略。此外,又由于DBDH假设成立,因此AdvDBDH, AIND也可以忽略。综上所述,AdvMCAPRE, A必定可以忽略。换句话说,方案MCAPRE是在随机预言机下IND-sID-CPA安全的。

4 结语

本文充分利用基于身份的广播加密、基于身份的加密和基于身份的广播代理重加密的优点,提出了更实用的多条件型、非对称代理重加密方案。该方案充分考虑到目前移动设备计算能力一般这个劣势,根据条件,有选择地将复杂的基于身份的IBBE密文高效地转换成相对简单的IBE密文,更加利于移动设备的解密,便于移动设备高效快捷地访问云端的信息。但是,当条件增多时,方案的原始密文长度、重加密密文长度相应地都会增大,同时接收方在解密时也会增加配对运算的次数,但配对运算相对于指数运算比较耗时,因此为了使移动设备的解密速度更快,今后应该研究原始密文长度、重加密密文长度都不会随着条件个数的增加而线性增长的多条件型非对称代理重加密方案,而且也应该在减少接收方解密时的配对运算次数方面下功夫。

参考文献
[1] BLAZE M, BLEUMER G, STRAUSS M. Divertible protocols and atomic proxy cryptography [C]// Proceedings of Advances in Cryptology — European Cryptology Conference ' 98, LNCS 1403. Berlin: Springer, 1998: 127-144. (0)
[2] BOLDYREVA A, FISCHLIN M, PALACIO A, et al. A closer look at PKI: security and efficiency [C]// PKC '07: Proceedings of the 10th International Conference on Practice and Theory in Public-Key Cryptography. Berlin: Springer, 2007: 458-475. (0)
[3] WANG L, WANG L, MAMBO M, et al. Identity-based proxy cryptosystems with revocability and hierachical confidentialities [C]// SORIANO M, QING S, LÓPEZ J. Information and Communications Security, LNCS 6476. Berlin: Springer, 2010:383-400. (0)
[4] CHU C K, WENG J, CHOW S S M, et al. Conditional proxy broadcast re-encryption [C]// Proceedings of the 2009 Information Security and Privacy, LNCS 5594. Berlin: Springer, 2009: 327-342. (0)
[5] XU P, JIAO T, WU Q, et al. Conditional identity-based broadcast proxy re-encryption and its application to cloud e-mail[J]. IEEE Transactions on Computers, 2016, 65 (1) : 66-79. doi: 10.1109/TC.2015.2417544 (0)
[6] SHAO J, WEI G, LING Y, et al. Identity-based conditional proxy re-encryption [C]// Proceedings of the 2011 IEEE International Conference on Communications. Piscataway, NJ: IEEE, 2011: 1-5. (0)
[7] LIANG K, LIU Z, TAN X, et al. A CCA-secure identity-based conditional proxy re-encryption without random oracles [C]// ICISC '12: Proceedings of the 15th International Conference on Information Security and Cryptology, LNCS 7839. Berlin: Springer, 2013: 231-246. (0)
[8] LIANG K, HUANG Q, SCHLEGEL R, et al. A conditional proxy broadcast re-encryption scheme supporting timed-release [C]// ISPEC 2013: Proceedings of the International Conference on Information Security Practice and Experience, LNCS 7863. Berlin: Springer, 2013: 132-146. (0)
[9] LIANG K, CHU C K, TAN X, et al. Chosen-ciphertext secure multi-hop identity-based conditional proxy re-encryption with constant-size ciphertext[J]. Theoretical Computer Science, 2014, 539 (9) : 87-105. (0)
[10] LI J, ZHAO X, ZHANG Y. Certificate-based Conditional Proxy Re-encryption [M]// AU M H, CARMINATI B, KOU C C J. Network and System Security, LNCS 8792. Berlin: Springer, 2014: 299-310. (0)
[11] DELERABLÉE C. Identity-based broadcast encryption with constant size ciphertexts and private keys [C]// Proceedings of the 2007 Annual International Conference on the Theory and Application of Cryptology and Information Security, LNCS 4833. Berlin: Springer, 2007: 200-215. (0)
[12] DENG H, WU Q, QIN B, et al. Asymmetric cross-cryptosystem re-encryption applicable to efficient and secure mobile access to outsourced data [C]// ASIA CCS '15: Proceedings of the 10th ACM Symposium on Information, Computer and Communications Security. New York: ACM, 2015: 393-404. (0)
[13] BONEH D, BOYEN X. Efficient selective-id secure identity-based encryption without random oracles [C]// EUROCRYPT 2004: Proceedings of the 2004 European Cryptology Conference, LNCS 3027. Berlin: Springer, 2004: 223-238. (0)