2. 武警部队网络与信息安全保密重点实验室, 西安 710086
2. Key Laboratory of Network and Information Security, Chinese People's Armed Police Force, Xi'an Shaanxi 710086, China
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.
代理重加密(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)g、h是群G的两个生成元;
3)ê是一个双线性映射ê:G×G→GT;
设群G和群GT是满足上述条件的两个有限循环群, 其中可接受的双线性映射ê:G×G→GT满足下面的条件:
1)双线性性(Bilinearity):对于所有的g, h∈G,a, b∈Zp都满足ê(ga, hb)=ê(g, h)ab。
2)非退化性(Non-Degeneracy):对于所有的g, h∈G,ê(g, h)≠1。
群G是一个双线性群,当且仅当在群G里的操作都是有效的,并存在满足上述要求的群GT和双线性映射ê。
1.2 复杂性假设判定型双线性Diffie-Hellman问题(Decisional Bilinear Diffie-Hellman Problem, DBDH问题):让G和GT为两个q阶双线性乘法群,g是群G的生成元,关于双线性映射ê:G×G→GT的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(PKMCAPRE,MSK,ID):输入主私钥MSK和身份ID,输出私钥SKID。
加密算法Enc(PKMCAPRE,S,M,γ):输入PKMCAPRE,身份集S(|S|≤n),明文M,条件γ、 β、 ω,输出原始MCAPRE密文CS。
重加密密钥产生算法RKGen(PKMCAPRE,ID,SKID,ID′,γ,β,ω):输入公钥PKMCAPRE,身份ID及它的私钥SKID,另一个身份ID′,条件γ、 β、 ω,输出重加密密钥RKID→ID′|γβω。
重加密算法ReEnc(PKMCAPRE,RKID→ID′|γβω,CS,S):输入公钥PKMCAPRE,重加密密钥RKID→ID′|γβω,原始MCAPRE密文,身份集S(|S|≤n),输出重加密密文CID′。
解密Dec-1(PKMCAPRE,ID,SKID,CS,S):输入公钥PKMCAPRE,身份ID及它的私钥SKID,原始MCAPRE密文,身份集S(|S|≤n),输出明文。
解密Dec-2(PKMCAPRE,ID′,SKID′,CID′):输入公钥PKMCAPRE,身份ID′及它的私钥SKID′,重加密密文CID′,输出明文。
1.4 一致性1)任意的原始MCAPRE密文。CS←Enc(PKMCAPRE,S,M,γ,β,ω)和任意的私钥SKID←KeyGen(MSK,ID),如果ID∈S,算法Dec-1(PKMCAPRE,ID,SKID,CS,S)始终输出正确的明文。
2)任意的重加密密文CID′←ReEnc(PKMCAPRE,RKID→ID′|γβω,CS,S)和任意的私钥SKID′←KeyGen(MSK,ID′),对于RKID→ID′|γ′β′ω′←RKGen(PKMCAPRE,ID,SKID,ID′,γ′,β′,ω′),CS←Enc(PKMCAPRE,S,M,γ,β,ω)和SKID←KeyGen(MSK,ID),如果ID∈S∧γβω=γ′β′ω′∧ID′,算法Dec-2(PKMCAPRE,ID′,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中ID≠S*的私钥,相应地,挑战者运行KeyGen(PK,MSK,ID)产生私钥SKID,并将其返回给A。
重加密密钥提取(RKReveal(ID→ID′|γβω)):A询问从身份集S中的某个身份ID到身份ID′的重加密密钥,相应地,挑战者运行算法RKGen(PK,SKID,ID,ID′,γ,β,ω)产生重加密密钥RKS→ID|γβω,并将其返回给A。这里,对于ID∈S,SKID由KeyGen(PK, MSK, ID)产生。但是,如果攻击者A拥有某一密文的解密密钥,他不能询问可以使得挑战密文转换成该密文的重加密密钥。
挑战阶段 攻击者A给挑战者C两个明文M0和M1。挑战者任意选择一个明文进行加密,生成挑战密文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, BIND、AdvIBBE, BIND-sID-CPA和AdvIBE, 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×G→GT,群G和群GT是两个(乘法)有限循环群,它们的阶为素数p,g和h是群G的两个生成元,随机地选取(u,t)∈G及α∈Zp*,选择两个哈希函数H:{0, 1}*→Zp*,H′:GT→G,最后输出系统公钥
私钥产生算法KeyGen(PKMCAPRE,MSK,ID):输入公钥PKMCAPRE、主私钥MSK和身份ID,输出私钥SKID=g1α+H(ID)。
加密算法Enc(PKMCAPRE,S,M,γ,β,ω):输入PKMCAPRE,身份集S(|S|≤n),明文M,条件γ、β、ω∈Zp*,该算法随机地选取s∈Zp*,输出原始MCAPRE密文CS=(C0,C1,C2,C3,C4,C5),其中:
${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(PKMCAPRE,ID,SKID,ID′,γ):输入公钥PKMCAPRE,身份IDj(IDj ∈ S={IDi}i=1n)及它的私钥SKIDj,另一个身份ID′(ID′∉S),条件γ∈Zp*,该算法随机地选取(k,r)∈Zp*输出重加密密钥RKID→ID′|γ=(SKIDj,E0,E1),其中:
$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(PKMCAPRE,RKID→ID′|γβω,CS,S):输入公钥PKMCAPRE,重加密密钥RKID→ID′|γβω=(SKIDj,E0,E1),原始MCAPRE密文CS=(C0,C1,C2,C3,C4,C5),身份集S(|S|≤n),输出重加密密文CID′=(C′0,C3,C4,C5,E′0,E′1),C′3=C3,C′4=C4,C′5=C5,E′0=E0,E′1=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(PKMCAPRE,ID,SKID,CS,S):输入公钥PKMCAPRE,身份IDj(IDj∈S)及它的私钥SKIDj,原始MCAPRE密文CS=(C0,C1,C2,C3,C4,C5),身份集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(PKMCAPRE,ID′,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=C′0·ê(hk, C′3)·ê(hk, C′4)·ê(hk, C′5)。
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}$ |
表 1将MCAPRE方案分别与文献[12]和文献[5]中的方案进行了比较。文献[12]的方案中公钥长度和原始密文较短,而且是跨加密系统的代理重方案,同时在生成重加密密钥过程中不需要发送方与接收方交互;但是,它是非条件型代理重加密,也就是,在代理重加密过程中,代理者会将所有的原始密文进行重加密,这不仅造成代理者作很多无用功,而且还使得接收方解密许多不需要的密文,影响解密效率。文献[5]中的方案是基于身份的广播代理重加密方案,在生成重加密密钥过程中也不需要发送方与接收方交互,而且在重加密过程中代理者进行条件型代理重加密;但是,该方案不是跨加密系统的代理重加密,而且方案的公钥长度、重加密密钥长度、重加密密文长度都偏长,同时接收方在解密过程中需要3次配对运算,解密效率较低。
通过比较可以发现,尽管MCAPRE方案的公私钥长度、原始密文、重加密密文偏长,但是,它在生成重加密密钥的过程中,不需要发送方与接收方进行交互,而且支持多条件型的、跨加密系统的代理重加密,可以将原始密文进行筛选后再进行重加密,不但提高了代理者的代理重加密效率,还提高了接收方的解密效率,更适合于计算能力一般的移动用户应用。
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-CPA和AdvIBE, AIND-sID-CPA的优势攻破IBBE和IBE方案。并且本文将证明AdvIBBE, BIND-sID-CPA=AdvMCAPRE, A· (1-L·AdvIBE, AIND-sID-CPA-L·AdvDBDH, AIND),L在后文定义。
让C为方案IBBE安全性中定义的挑战者或方案IBE安全性中定义的挑战者。攻击者A、攻击者B和挑战者之间进行一个游戏,在该游戏中,挑战者测试B攻破方案IBBE安全性或方案IBE安全性的能力,而B又作为攻击者A的挑战者,测试A攻破方案MCAPRE安全性的能力。可以看出,在该游戏中,攻击者B是想利用A攻破方案IBBE或方案IBE的安全性。具体细节如下:
设置阶段 攻击者A选择一个要挑战的身份集S*和要挑战的条件γ*、 β*、ω*,将两者送给B,B再将S*转送给挑战者C。攻击者B准备两个表:
1)TSK存储攻击者A询问过的私钥相对应的身份
2)TRK存储攻击者A询问的重加密密钥的相关信息,包括(Identity, Receiver, Re-encryptionKey, Conditon)。
初始化阶段 由两部分组成:首先,挑战者C为攻击者B生成方案IBBE的公私钥;其次攻击者B为攻击者A生成方案MCAPRE的公钥。在这两部分当中,三个哈希函数分别被C和B当作随机预言机使用, 因此,上面提到的公钥中不含哈希函数。具体如下:
1)挑战者C运行IBBE方案的初始化算法Setup(1λ),生成公钥PKIBBE和主私钥MSK,其中PKIBBE=(p,G,GT,ê,g1,ê(g, h),h,hα,…,hαn,H(·)),MSK=(g,α)。PKIBE是PKIBBE的一部分,PKIBE=(p,G,GT,ê,g1,ê(g, h),h,hα,H(·))。由于哈希函数H在证明中被当作预言机使用,因此,挑战者C将公钥PKIBBE=(p,G,GT,ê,g1,ê(g, h),h,hα,…,hαn)发送给攻击者B。挑战者C为攻击者B提供哈希询问OIBBEH(ID), 并将哈希函数H模拟成随机预言机。他为OIBBEH(ID)准备一个表TH,存储询问的身份信息及相关的应答,包括(Identity, HashValue)。
2)攻击者B随机选择(x, y)∈Zp*,生成MCAPRE方案的公钥PKMCAPRE=(PKIBBE,uα,uα2,…,uαn,tα,tα2,…,tan,H(·),H′(·)),uαi=hαi·x,tαi=hαi·y,i∈。由于哈希函数H、H′在证明中被当作预言机,因此攻击者B发送公钥PKMCAPRE=(PKIBBE,u,uα,uα2,…,uαn,t,tα,tα2,…,tan)给攻击者A。攻击者B为A提供哈希询问OMCAPREH(ID)和OMCAPREH′(Y),Y∈GT,并将哈希函数H和H′模拟成随机预言机。OMCAPREH(ID)是对OIBBEH(ID)的模拟。攻击者A对OMCAPREH(ID)的任何询问将被B转送给挑战者C,同样,C的任何回答都将被B转送给A。同时,攻击者B为OMCAPREH′准备一个表TH′,存储被询问的群元素和相应的回答,包括(GroupElement, HashValue)。
阶段1 攻击者B向挑战者C提出哈希询问OIBBEH(ID)和私钥询问OIBBESK(ID),也可以是OIBEH(ID)、OIBESK(ID)询问。攻击者A向B提出哈希询问OMCAPREH(ID)和OMCAPREH′(Y),私钥询问OMCAPRESK(ID)和重加密密钥询问OMCAPRERK(ID, ID′, γ, β, ω)。具体如下:
1)哈希询问OIBBEH(ID):如果有(ID, X∈Zp*)∈TH,挑战者C回答X;否则C随机地选择X∈Zp*,回答该X,并将(ID, X)存入表TH。
2)私钥询问OIBBESK(ID):如果D∈S*,挑战者C回答⊥;否则C回答
3)哈希询问OMCAPREH(ID):攻击者B询问OIBBEH(ID)或OIBEH(ID),回答OIBBEH(ID)或OIBEH(ID)。
4)哈希询问OMCAPREH′(Y∈GT):如果有(Y, Z∈G)∈TH′,攻击者B回答Z;否则B随机选择Z∈G,回答该Z,并将(Y, Z)存入表TH′。
5)私钥询问OMCAPRESK(ID):如果ID∈S*,攻击者B回答⊥;如果有(ID′, ID″, *, γ, β, ω)∈TRK,其中ID′∈S*,ID=ID″,B回答⊥;否则B询问OIBBESK(ID)或OIBESK(ID),得到SKIBBEID或SKIBEID,返回SKMCAPREID=SKIBBEID=SKIBEID,并将ID存入表TSK。
6)重加密密钥询问OMCAPRERK(ID,ID′,γ,β,ω):攻击者A询问条件γ、 β、ω下的,从身份ID到的ID′的重加密密钥。如果有(ID,ID′,RKID→ID′|γβω,γ,β,ω)∈TRK,攻击者B将RKID→ID′|γβω返回给A;否则有以下几种情况:
a)ID∉S*:攻击者B询问OIBBESK(ID),得到SKIBBEID,随机地选择(r, k)∈Zp,计算重加密密钥
b)ID∉S*,γ=γ*,β=β*,ω=ω*且ID′∩TSK≠∉:攻击者B回答⊥。
c)在以下三种情况中:①ID∈S*,γ≠γ*,β≠β*,ω≠ω*且ID′ ∩ TSK ≠ ∅;②ID∈S*,γ≠γ*,β≠β*,ω≠ω*且ID′∩TSK=∅;③ID∈S*,γ=γ*,β=β*,ω=ω*且ID′∩TSK=∅。攻击者B随机地选择SK′ID∈G和(r,k)∈Zp,将重加密密钥
挑战阶段 当攻击者A判断阶段1结束时,他发送两个挑战消息(M0,M1)给B。攻击者B将(M0,M1)转送给挑战者C。C生成挑战密文
$\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*,C3,C4,C5),由于:
$\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},攻击者B将b′转送给挑战者C。
攻击者B可以成功、有效地模拟攻击者A攻击方案MCAPRE安全性的视角,但是,在以下重加密密钥询问OMCAPRERK(ID,ID′,γ)的三种情况中,B不能有效地模拟:
1)情况1:ID∈S*,γ≠γ*,β≠β*,ω≠ω*且ID′∩TSK≠∅;
2)情况2:ID∈S*,γ≠γ*,β≠β*,ω≠ω*且ID′∩TSK=∅;
3)情况3:ID∈S*,γ=γ*,β=β*,ω=ω*且ID′∩TSK=∅。
换句话,猜想上述三种情况均不被攻击者A发现,那么,若攻击者A能够成功攻破方案MCAPRE的安全性,攻击者B便可以攻破方案IBBE的IND-sID-CPA安全性。下面,计算攻击者A发现上述三种情况的概率。
在以上三种情况中,攻击者B随机选择SK′ID∈G和(r, k)∈Zp,伪造重加密密钥
引理1 攻击者A发现情况1中的RKID→ID′|γβω的概率不超过AdvDBDH, AIND。
分析如下:假设攻击者A可以发现情况1中的RKID→ID′|γβω。在情况1中,ID′∩TSK≠∅,A可以解密出hk,那么就有
$\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}$ |
又因为SK′ID是随机从G挑选的,那么就存在一个r′∈Zp使得
由u=hx和t=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和
当
引理2 攻击者A发现情况2和情况3中的RKID→ID′|γβω的概率不超过AdvIBE, AIND-sID-CPA。
分析如下:
由于SK′ID是在G中随机选择的,因此存在k′∈Zp使得
由OMCAPREH′是一个随机预言机可得,存在R∈GT使得
结合上述两个引理,得到下面的引理。
引理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-CPA-L·AdvDBDH, AIND)。由于方案IBBE和方案IBE都是在随机预言机下IND-sID-CPA安全的,因此AdvIBBE, BIND-sID-CPA和AdvIBE, 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) |