b. 西北师范大学 数学与统计学院, 兰州 730070
b. College of Mathematics and Statistics, Northwest Normal University, Lanzhou 730070, China
在电子邮件系统中, 当数据发送者发给用户的邮件因用户的私人原因而无法及时处理时, 用户希望将该邮件共享给被委托者, 并由对方帮助其处理该邮件。一般情况下, 用户先下载某个邮件, 用其私钥解密该邮件并使用被委托者的公钥进行加密处理, 最后发送给被委托者, 该方式需要较大的计算代价和通信代价, 而代理重加密(Proxy Re-Encryption, PRE)技术可有效解决这一问题。
1998年, BLAZE等人[1]提出PRE的概念, 主要内容是委托者通过一个半可信的代理者将密文授权给被委托者, 且在这个过程中, 代理者得不到消息的任何信息。文献[2]提出一个单向的PRE方案, 但是该方案只能达到选择明文安全的要求, 文献[3]提出第一个满足IND-CCA2的双向PRE方案。文献[4]在文献[5]的基础上, 改进了方案的安全模型, 并构造一个安全的IND-CCA2单向的PRE方案。文献[6]提出多跳PRE方案, 同年, 文献[7]提出电子病历中带关键字搜索的公钥加密方案。为解决复杂证书问题和密钥管理问题, 文献[8]提出新的基于证书条件的PRE方案。文献[9]构造管理云端数据访问授权确定性更新的PRE方案。为解决云端数据共享问题, 文献[10]提出标准模型下CPA安全的格上PRE方案。
随着电子邮件服务器上数据的增加, 为了实现密文搜索和数据共享2个功能, 文献[11]提出带关键字搜索的PRE的概念, 且构造在随机预言模型下可证明安全的PRES方案, 但文献[12]指出文献[11]存在使用了一次性强不可伪造签名来保证方案安全性的限制。文献[13]构造出有效且不使用一次性强不可伪造签名的PRE方案, 并证明该方案可使选择密文安全。为提高方案的效率, 文献[14]依据文献[11, 15]构造出只对部分文件的密文进行重加密的方案模型。为抵抗由不可信服务器执行的关键字猜测攻击, 文献[16]提出新的支持关键字搜索的加密方案, 文献[17]提出基于关键字搜索属性的PRE方案。
现有的支持关键字搜索的PRE方案存在一些问题需要解决, 如抵抗关键字猜测攻击和数据篡改等。在文献[18-19]中, 验证等式的信息都是公开信息或对方发送的信息, 易遭受篡改攻击。针对这一问题, 本文提出在加密电子邮件背景下支持关键字搜索的PRE方案。在该方案中, 服务器、邮箱网关与被委托者的验证方式均不同, 并且其采用更加高效的对称加密方式, 以提高搜索效率和解密效率。
1 基础知识 1.1 双线性对令(G1, +)和(G2, ×)是阶为素数p、q的循环群, 双线性映射e:G1×G1→G2满足以下性质:
1) 双线性:对任意的P, Q∈G1, 存在a, b∈Zq*, 有e(aP, bQ)=e(P, Q)ab成立。
2) 非退化性:存在P, Q∈G1, 满足e(P, Q)≠1。
3) 可计算性:对于任意的P, Q∈G1, 存在有效的算法计算e(P, Q)。
1.2 相关的困难问题1) 判定Diffie-Hellman(Decisional Diffie-Hellman, DDH)问题。
给定一个四元组(g, ga, gb, gc), 其中随机取a, b, c∈Zp*, g为群G1的一个生成元, 判定gc=gab是否成立。
2) 双线性判定Diffie-Hellman(Decisional Bilinear Diffie-Hellman, DBDH)问题。
给定一个五元组(g, ga, gb, gc, r), 其中随机取a, b, c∈Zp*, 且r∈G2, g为G1群的一个生成元, 判定r=e(g, g)abc是否成立。
3) 商判定Bilinear Diffie-Hellman(Quotient Decisional Bilinear Diffie-Hellman, QDBDH)问题。
给定一个四元组(g, ga, gb, r), 其中随机取a, b, c∈Zp*, 且r∈G2, g为G1群的一个生成元, 判定
本节提出面向电子邮件高效支持关键字搜索的PRE方案。本方案实现了密文授权和密文搜索的功能, 具体如下:邮件发送者将已加密的邮件发送给用户i, 而用户i希望将该邮件授权给用户j处理, 便由加密邮箱服务器作为代理者对密文进行重加密, 将邮箱网关搜索重加密邮件密文, 并发送给用户j解密。该方案包括如下算法:
1) Setup(I):输入安全参数Il, 输出系统参数Params。
2) KeyGen(Params):输入系统参数Params, 输出用户和加密邮箱服务器S的公私钥对。
3) ReKeyGen(Xi, Xj):输入用户i的私钥Xi和用户j的私钥Xj, 加密邮箱服务器S生成重加密密钥RKi→j。
4) Enc(Yi, YS, w, m):输入用户i的公钥Yi、加密邮箱服务器S的公钥YS、关键字w和明文m∈{0, 1}*, 输出基于用户i公钥的密文CTi。
5) ReEnc(CTi, Yi, XS):输入基于用户i公钥的密文CTi、用户i的公钥Yi、加密邮箱服务器S的私钥XS、重加密密钥RKi→j, 加密邮箱服务器S输出基于用户j公钥的密文CTj。
6) Trapdoor(Xj, Ys, w, CTj):输入用户j的私钥Xj、加密邮箱服务器S的公钥YS、基于用户j公钥的密文CTj和关键字w, 用户j生成陷门T。
7) Test(CTj, T):输入基于公钥的密文CTj和关键字陷门T, 邮件网关通过算法Test(CTj, T)验证陷门与密文是否匹配。若陷门与密文相匹配, 邮件网关发送基于用户j公钥的密文给用户j, 否则, 邮箱网关输出⊥。
8) Dec(CTj):输入密文CTj和私钥Xj, 用户j输出明文m。
2.2 安全模型在标准模型下, 本文方案满足关键字密文隐私安全和陷门隐私安全[20-22]。
2.2.1 关键字密文隐私安全为满足关键字密文的不可区分性, 本文方案考虑敌手Ai(i=1, 2)和挑战者B之间的2个游戏。
游戏1 该游戏的目的是证明密文的不可区分性。在游戏中, 本文方案假设敌手A1是恶意的邮箱服务器。
系统建立 挑战者B产生公共参数并将其给敌手A1。
询问阶段1 敌手A1进行如下询问:
1) 公钥预言询问OYi(i):挑战者B模拟算法KeyGen产生公私钥对(Yi, Xi)并将公钥Yi公开; 敌手A1模拟算法KeyGen产生它的公私钥对(Yj, Xj)并将公钥Yj公开。
2) 重加密密钥询问阶段ORK(Xi, Xj):挑战者B模拟ReKeyGen算法产生重加密密钥RKi→j并输出给敌手A1。
3) 重加密预言阶段ORe(Yi, Yj, CTi):挑战者B模拟重加密算法生成基于被委托者公钥的密文CTj并将其发送给敌手A1。
4) 陷门预言阶段OT(w, Xj):敌手进行询问, 挑战者B则回应相对应的陷门。
5) 解密预言阶段ODec(Yi, CTj):挑战者B输出Dec(CTj)给敌手A1。
挑战 当询问阶段1完毕, 敌手A1选择2个明文(m0, m1)发送给挑战者B。挑战者B随机选取δ∈{0, 1}, 并设置嵌入困难问题的挑战密文发送给敌手A1。
询问阶段2 除了不能询问挑战密文及其衍生外, 其他询问同询问阶段1一致。
猜测 敌手返回猜测δ′, 如果δ′=δ, 则敌手猜测成功, 输出1, 否则, 输出0。游戏1中的优势定义为
游戏2 该游戏的目的是证明关键字的不可区分性。在游戏中, 本文方案假设敌手A2是外部攻击者, 在游戏中, 挑战者B和敌手A2进行如下交互:
系统建立 挑战者B产生公共参数并将其给敌手A2。
询问阶段1 重复游戏1中的询问阶段1。
挑战 当询问阶段1结束, 敌手A2选择2个关键字(w1, w2)、明文m和公钥Y*一起发送给挑战者B。挑战者B随机选择δ∈{0, 1}, 并设置嵌入困难问题的挑战密文发送给敌手A2。
询问阶段2 敌手A2进行询问时, 除了不能询问挑战密文及其衍生外, 其他询问同询问阶段1一致。
猜测 敌手返回猜测δ′, 如果δ′=δ, 则挑战成功, 输出1, 否则, 输出0。游戏2中的优势定义为
为了抵抗关键字猜测攻击, 文献[12]引入了陷门不可区分性。
游戏3 假设敌手A3是外部攻击者, 在游戏中, 挑战者B和敌手A3进行如下交互:
系统建立 挑战者B产生公共参数并公开。
询问阶段1 敌手A3对关键字w进行陷门询问, 挑战者B回应陷门。
挑战阶段 敌手A3选择2个关键字(w1, w2)、明文m和公钥Y*一起发送给挑战者B。挑战者B随机选取δ∈{0, 1}, 并计算陷门发送给敌手A3。
询问阶段2 除了不能询问挑战关键字及其衍生外, 其他询问同询问阶段1一致。
猜测 敌手返回猜测δ′, 如果δ′=δ, 则挑战成功, 输出1, 否则, 输出0。游戏3中的优势定义为
本文提出的方案包括8个部分, 具体设计如下:
1) Setup(I):输入安全参数Il, 输出阶为素数p的循环加法群G1和循环乘法群G2, g为群G1的生成元, g2, u, v, d是群G1上的随机元, 双线性映射对e:G1×G1→G2。方案构造2个散列函数:H1:G1×{0, 1}*×{0, 1}L→Zp*, H2:G2→{0, 1}L, L为对称密钥K的长度, 则系统参数Params={P, G1, G2, e, g, g1, u, v, d, H1, H2, K)。
2) KeyGen(Params):输入系统参数Params, 用户i随机选择Xi∈ Zp*, 并计算Yi=gXi, 则公私钥对为(Xi, Yi)。加密邮箱服务器S随机选取XS∈Zp*, 计算YS=gXS作为加密邮箱服务器S的公钥。
3) ReKeyGen(Xi, Xj):输入用户i的私钥Xi和用户j的私钥Xj, 生成重加密密钥
(1) 用户i选取r′∈ Zp*, 并发送r′·Ximod p给用户j, 同时发送r′给加密邮箱服务器S。
(2) 用户j计算
(3) 利用加密邮箱服务器S计算
4) Enc(Yi, YS, w, m):输入用户i的公钥Yi、加密邮箱服务器S的公钥YS、关键字w和明文m∈{0, 1}*, 用户i进行如下操作:
(1) 选取r∈ Zp*, 计算A=gr, B=Yir, 用对称加密算法计算C=EncK(m)。
(2) 计算D=e(Ys, gw2)r, E=H2(e(g, g)r)⊕K。
(3) 随机选取t∈ Zp*, 计算h=H1(A, C, E), D1=e(g, g2wh)r, F=(uhvtd)r, G=g2rw。
(4) 输出基于用户i公钥的密文CTi=(t, A, B, C, D, D1, E, F, G)。
5) ReEnc(CTi, Yi, XS):输入密文CTi、用户i的公钥Yi、加密邮件服务器S的私钥XS和重加密密钥RKi→j, 邮件服务器S计算h=H1(A, C, E), 并验证式(1)是否成立:
$ {D^{\frac{1}{{{X_S}}}}}e\left( {A, {Y_i}\left( {{u^h}{v^t}d} \right)} \right) = e\left( {g, B \cdot F \cdot G} \right) $ | (1) |
若式(1)成立, 利用加密邮件服务器S计算B′=BRKi→j=Yjr, 输出基于用户j公钥的密文CTj=(t, A, B′, C, D, D1, E, F, G); 否则输出⊥。
6) Trapdoor(Xj, Ys, w, CTj):输入用户j的私钥Xj、加密邮件服务器S的公钥YS、基于用户j公钥的密文CTj和关键字w, 用户j计算h=H1(A, C, E), 从而得到陷门
7) Test(CTj, T):输入基于用户j公钥的密文CTj=(t, A, B′, C, D, D1, E, F, G)和关键字w的陷门T, 加密邮件网关验证式(2)是否成立:
$ e\left( {B', T} \right) = {D_1} $ | (2) |
若式(2)成立, 用加密邮件网关将基于用户j公钥的密文CTj发送给用户j; 否则输出⊥。
8)Dec(CTj):输入密文CTj, 用户j计算h=H1(A, C, E), 并验证式(3)是否成立:
$ e{\left( {B', g} \right)^{\frac{1}{{{X_j}}}}} = e\left( {g, A} \right) $ | (3) |
若式(3)成立, 用户j通过式(4)计算对称密钥K′, 则明文m=DecK′(C); 否则输出⊥。
$ K' = E \oplus {H_2}\left( {e{{\left( {B', g} \right)}^{^{\frac{1}{{{X_j}}}}}}} \right) $ | (4) |
本文方案满足正确性。在重加密过程中, 邮件服务器验证式(1)是为了证明密文CTi在传输过程中并没有被篡改。在搜索过程中, 加密邮件网关通过验证式(2)来实现关键字与密文之间的匹配。在解密过程中, 用户j通过式(3)验证重加密密文是否被篡改, 通过式(4)解密密文。验证过程如下:
$ \begin{array}{l} 1){D^{\frac{1}{{{X_S}}}}}e\left( {A, {Y_i}\left( {{u^h}{v^t}d} \right)} \right) = e{\left( {{Y_S}, g_2^w} \right)^{r\frac{1}{{{X_S}}}}}e\left( {{g^r}, {Y_i}\left( {{u^h}{v^t}d} \right)} \right) = e{\left( {g, g_2^w} \right)^r}e\left( {{g^r}, {Y_i}\left( {{u^h}{v^t}d} \right)} \right) = \\e\left( {{g^r}, g_2^w{Y_i}\left( {{u^h}{v^t}d} \right)} \right) = e\left( {g, g_2^{wr}{g^{{X_i}r}}{{\left( {{u^h}{v^b}d} \right)}^r}} \right) = e\left( {g, B \cdot F \cdot G} \right) 2)e\left( {B', T} \right) = \left( {Y_j^r, {{\left( {g_2^wh} \right)}^{\frac{1}{{{X_j}}}}}} \right) =\\ e\left( {{g^{{X_i}r}}, {{\left( {g_2^wh} \right)}^{\frac{1}{{{X_j}}}}}} \right){\rm{ = }} e\left( {{g^r}, g_2^wh} \right) = e{\left( {g, g_2^wh} \right)^r} = {D_1} 3)e{\left( {B', g} \right)^{\frac{1}{{{X_j}}}}} = e{\left( {{g^{{X_i}r}}, g} \right)^{\frac{1}{{{X_j}}}}} = \\e\left( {g, A} \right) 4)K' = E \oplus {H_2}\left( {e{{\left( {B', g} \right)}^{\frac{1}{{{X_j}}}}}} \right) = {H_2}\left( {e{{\left( {g, g} \right)}^r}} \right) \oplus K \oplus {H_2}\left( {e{{\left( {{g^{r{X_j}}}, g} \right)}^{\frac{1}{{{X_j}}}}}} \right) = K \end{array} $ |
因此本文方案是正确的。
4 安全性证明 4.1 关键字密文隐私安全定理1 假设解决QDBDH和DBDH问题困难, 本文方案在标准模型下可证明IND-CCA和IND-CKA是安全的。
引理1 假设解决QDBDH问题困难, 本文方案在标准模型下可证明IND-CCA是安全的。
证明 假设存在恶意的邮箱服务器A1能以优势ε攻破本文方案(qRK, qRE, qT, qDec, ε), 则挑战者B便能以不可忽略的优势解决QDBDH问题。设H1、H2、H3是免碰撞的哈希函数, 且K是对称加密密码。则有
假设给挑战者B一个QDBDH实例(g, M=ga, N=gb, Q)∈(G1)3×G2, 其中a, b∈Zp*, 挑战者B的目的是确定
系统建立 挑战者B选取随机数a0, a1, a2, a3, b1, b2, b3, 计算系统参数g2=Ma0, h=Mb, u=ga1Nb1, v=ga2Nb2, d=ga3Nb3。
询问阶段1 敌手A1进行如下询问:
1) 公钥预言询问OYi(i):挑战者B随机选取Xi∈Zp*, 并抛掷一个硬币, 若正面朝上, 则ci=1, 公钥Yi=gXi; 否则ci=0, 公钥Yi=gaXi=MXi。挑战者B将三元组(Yi, Xi, ci)加入至列表Llist中并将公钥Yi公开。敌手A1产生它的公私钥对(Yj, Xj)并将公钥Yj公开。
2) 重加密密钥询问阶段ORK(Xi, Xj):从列表Llist中调用三元组(Yi, Xi, ci), 并查询Xi和Xj是否存在三元组中, 若不存在, 则调用公钥预言询问OYi(i), 否则进行如下操作:
(1) 若ci=cj=1, 则用户i的私钥为Xi, 用户j的私钥为Xj, 挑战者B模拟算法ReKeyGen(Xi, Xj)产生代理重加密密钥
(2) 若ci=cj=0, 则用户i的私钥为aXi, 用户j的私钥为aXj, 挑战者B模拟算法ReKeyGen(Xi, Xj)产生PRE密钥
(3) 否则, 挑战者B输出⊥。
3) 陷门预言阶段OT(w, Xj):挑战者B从列表Llist中调用三元组(Yi, Xi, ci)并查询Xj是否存在三元组中, 若不存在, 则调用公钥预言询问OYi(i), 否则进行如下操作:
(1) 若cj=1, 则用户j的私钥为Xj, 挑战者B设陷门为
(2) 若cj=0, 则用户j的私钥为aXj, 挑战者B设陷门为
4) 重加密预言阶段ORE(Yi, Yj, CTi):若式(1)验证失败, 则挑战者B输出⊥; 否则挑战者B从列表Llist中恢复三元组(Yi, Xi, ci)并执行如下操作:
(1) 若ci和cj均为1或均为0, 则挑战者B调用重加密密钥询问ORK(Xi, Xj), 生成重加密密钥RKi→j, 然后将ReEnc(CTi, RKi→j)返回给敌手A1。
(2) 若ci=0∧cj=1, 则意味着用户i的私钥为Xi和用户j的私钥为aXj, 挑战者B通过
$ {g^r} = {\left[ {\frac{F}{{{M^{a\left( {{b_1}h + {b_3}t + {b_3}} \right)}}}}} \right]^{\frac{1}{{{a_1}h + {a_2}t + {a_3}}}}} $ | (5) |
则通过式(5)得到B′=(gr)Xj=Yjr, 并将CTj=(t, A, B′, C, D, D1, E, F, G)发送给敌手A1, 等式a1h+a2t+a3=omod p 至少以
(3) 若ci=1∧cj=0, 则意味着用户i的私钥为aXi和用户j的私钥为Xj, 挑战者B计算B′=gaXjr=(Mr)Xj=AaXj。
5) 解密预言阶段ODec(Yi, CTj):挑战者B从列表Llist中恢复三元组(Yi, Xi, ci)并执行如下操作:
(1) 若cj=0, 则用户j的私钥为aXj, 挑战者B验证式(3), 若式(3)验证失败, 则挑战者B输出⊥; 否则挑战者B计算对称密码
(2) 若cj=1, 则用户j的私钥为Xj, 挑战者B将输出Dec(CTj)给敌手。
挑战阶段 当询问阶段1完毕, 敌手A1选择2个明文(m0, m1)、公钥Y*一起发送给挑战者B。挑战者B从列表Llist中恢复三元组(Yi, Xi, ci), 若c*=1, 挑战者B输出⊥, 否则挑战者B随机选取δ∈{0, 1}, 并设置
如果
询问阶段2 敌手A1进行询问, 除了挑战密文及其衍生不能询问外, 其他与询问阶段1一致。
猜测 最后敌手返回猜测δ′, 如果δ′=δ, 则挑战成功, 输出1;否则输出0。
引理2 假设解决DBDH问题困难。本文方案在标准模型下可证明IND-CKA是安全的。
证明 假设敌手A2是外部攻击者, 其以优势ξ攻破本文方案(qRK, qRE, qT, qDec, ξ), 则本文方案能够构造挑战者B以一个不可忽略的优势解决DBDH问题。若H1, H2, H3是免碰撞的哈希函数, 且K是对称加密密码, 则有
假设给挑战者B一个DBDH实例(g, M=ga, N=gb, O=gc, γ)∈(G1)3×G2, 其中a, b, c∈Zp*, 挑战者B的目的是确定γ=e(g, g)abc是否成立。游戏过程如下:
系统建立 挑战者B随机选取数a0, a1, a2, a3, b1, b2, b3, 计算系统参数g2=Ma0, h=Mb, u=ga1Nb1, v=ga2Nb2, d=ga3Nb3。
询问阶段1 敌手A2进行如下询问:
1) 公钥预言询问OYi(i):挑战者B随机选取Xi∈Zp*, 并计算公钥Yi=gXi。
2) 重加密密钥询问阶段ORK(Xi, Xj):挑战者B生成代理重加密密钥
3) 陷门预言阶段OT(w, Xj):挑战者B生成陷门
4) 重加密预言阶段ORE(Yi, Yj, CTi):若式(1)验证失败, 则挑战者B输出⊥; 否则挑战者B调用重加密密钥询问ORK(Xi, Xj), 生成重加密密钥
5) 解密预言阶段ODec(Yi, CTj):挑战者B输出Dec(CTj)给敌手A2。
挑战阶段 当询问阶段1完毕, 敌手A2选择2个关键字(w0, w1)、明文m和公钥Y*一起发送给挑战者B。挑战者B随机选取δ∈{0, 1}, 并设置r*=c为DBDH困难问题里的成分, 计算A*=O, B*=
OXj*, C*=EncK*(m), D*=e(Ys, Oa0aw), E*=H2(e(g, O))⊕K*h*=H1(A*, C*, E*), F*=Oa1h*+a2t*+a3, G*=Oa0aw, D1*=
询问阶段2 敌手A2进行询问, 除了挑战密文及其衍生不能询问外, 其他同询问阶段1一致。
猜测 敌手返回猜测δ′, 若δ′=δ, 则挑战成功, 输出1;否则输出0。
4.2 陷门隐私安全定理2 假设解决DDH问题困难。本文方案可证明在陷门上是安全的。
证明 假设存在外部攻击者A3能以优势ζ攻破本文方案(qRK, qRE, qDec, ζ), 则存在挑战者B能以优势ζ解决HDH问题。假设H1、H2、H3是免碰撞的哈希函数, 且K是对称加密密码, 敌手询问陷门的次数为qT次, 其中
假设给挑战者B一个HDH实例(g, M=ga, N=gb, λ)∈G1, 其中a, b∈Zp*, 挑战者B的目的是确定λ=gab是否成立。游戏过程如下:
系统建立 挑战者B选取随机数a0、a1、a2、a3、b1、b2、b3、并计算系统参数g2=Ma0, h=Mb。
询问阶段1 敌手A3进行如下询问:
1) 公钥预言询问OYi(i):挑战者B随机选择Xi∈Zp*。并抛掷一个硬币, 若正面朝上, 则ci=1, 公钥Yi=gXi; 否则ci=0, 公钥Yi=gaXi=NXi。挑战者B将三元组(Yi, Xi, ci)加入到列表Llist中, 将私钥Xi返回给敌手A1, 公开公钥Yi。
2) 陷门预言阶段OT(w, Xj):挑战者B从列表Llist中调用三元组(Yi, Xi, ci)并查询Xj是否存在三元组中, 若不存在, 则调用公钥预言询问OYi(i), 否则进行如下操作:
1) 若cj=1, 则用户j的私钥为Xj, 挑战者B设陷门为
2) 若cj=0, 则用户j的私钥为aXj, 挑战者B设陷门为
挑战阶段 敌手A3选择2个关键字(w0, w1), 并发送给挑战者B。挑战者B从列表Llist中恢复三元组(Yi, Xi, ci), 若c*=1, 则挑战者B输出⊥; 若c*=0, 则挑战者B随机选择δ∈{0, 1}, 并生成挑战陷门
询问阶段2 敌手A3进行询问, 除了不能询问挑战关键字及其衍生外, 其他同询问阶段1一致。
猜测 敌手A3返回猜测δ′, 若δ′=δ, 则挑战成功, 输出1;否则输出0。
5 效率分析通过理论和数值实验对dPRES[18]方案和本文方案进行分析。首先从理论上对计算开销进行分析, dPRES方案和本文方案效率比较结果见表 1, 其中Tp、TF、Th、Te、Teo分别为双线性运算、伪随机函数族运算、哈希运算、指数运算和异或运算的计算代价。
![]() |
下载CSV 表 1 dPRES方案与本文方案的效率比较 Table 1 Comparison of the efficiency of dPRES scheme and the proposed scheme |
由表 1可知, 在搜索阶段, 本文方案比dPRES方案少一个指数运算和两个哈希运算。此外, 在解密阶段, 本文方案比dPRES方案少一个双线性对运算。因此, 与dPRES方案相比, 本文方案在计算效率上有较大的提高。
为了更直观地显示结果, 本节从数值分析上对方案的计算成本进行了模拟。在Linux系统上使用PBC库, 基于C语言编程实现dPRES方案和本方案。数值环境配置参数如表 2所示。
![]() |
下载CSV 表 2 环境配置参数 Table 2 Environmental configuration parameters |
本文方案和dPRES方案均能实现密文授权和搜索功能。在数值实验中, 加密和解密阶段两方案均加密相同数量的关键字, 随着关键字数量的变化, 统计在不同数量关键字下的加密时间, 结果如图 1所示。
![]() |
Download:
|
图 1 关键字数量对加密时间的影响 Fig. 1 Effect of the number of keywords on encryption time |
由图 1可知, 在加密阶段, 本文方案的时间开销较dPRES方案高。搜索阶段是统计搜索不同数量关键字的时间开销, 如图 2所示。
![]() |
Download:
|
图 2 关键字数量对搜索时间的影响 Fig. 2 Effect of the number of keywords on the search time |
由图 2可知, 在搜索阶段, 当关键字数量为10个时, 本文方案的时间开销为42 ms, 而dPRES方案的时间开销为164.4 ms; 当关键字数量为30个时, 本文方案的时间开销为122.4 ms, 而dPRES方案的时间开销为456.2 ms; 当关键字数量为50个时, 本文方案的时间开销为198.9 ms, 而dPRES方案的时间开销为762.2 ms。随着关键字数量的增加, dPRES方案的时间开销增长速率比本文方案大, 说明本文方案的搜索效率优于dPRES方案。
统计在不同数量关键字下的解密开销时间, 如图 3所示。
![]() |
Download:
|
图 3 关键字数量对解密时间的影响 Fig. 3 Effect of the number of keywords on decryption time |
由图 3可以看出, 在解密阶段, 随着关键字数量的增大, 本文方案的时间开销几乎保持不变; 当关键字数量为10个时, dPRES方案的时间开销为85.7 ms; 当关键字数量为30个时, dPRES方案的时间开销为236.5 ms; 当关键字数量为50个时, dPRES方案的时间开销为390.8 ms, 说明dPRES方案的时间开销与关键字数量之间呈线性增长。因此, 本文方案的解密效率优于dPRES方案。
由图 1~图 3可知, 虽然在加密阶段, 本文方案的时间开销较dPRES方案高, 但是在搜索阶段, 本文方案时间开销远远小于dPRES方案, 且在解密阶段, 本文方案时间开销也低于dPRES方案。因此, 本文方案在解密算法和搜索算法的计算代价上有明显优势, 减少了电子邮箱服务器和用户之间的通信代价, 提高了系统的性能。
6 结束语为解决密文授权和密文搜索问题, 本文提出一种面向电子邮件支持高效关键字搜索的PRE方案。该方案在搜索过程中只用了一个双线性对, 因此搜索效率较高。同时, 本文方案在标准模型下关键字隐私、密文隐私和陷门隐私是安全的, 还可以抵抗篡改攻击和关键字猜测攻击。分析结果表明, 相对dPRES方案, 本文方案在搜索效率上有较大的提升。目前, 支持关键字搜索的PRE方案还有一些问题需要解决, 如进一步减少时间开销, 提高方案的计算效率和通信效率等, 这将是下一步的研究方向。
[1] |
BLAZE M, BLEUMER G, STRAUSS M.Divertible protocols and atomic proxy cryptography[C]//Proceedings of International Conference on the Theory and Application of Cryptographic Techniques.Berlin, Germany: Springer, 1998: 127-144.
|
[2] |
ATENIESE G, FU K, GTEEN M, et al. Improved proxy re-encryption schemes with applications to secure distributed storage[J]. ACM Transactions on Information and System Security, 2006, 9(1): 1-30. |
[3] |
CANETTI R, HOHENBERGER S.Chosen-ciphertext secure proxy re-encryption[C]//Proceedings of the 14th ACM Conference on Computer and Communications Security.New York, USA: ACM Press, 2007: 185-194.
|
[4] |
CANARD S, DEVIGNE J, LAGUILLAUMIE F. Improving the security of an efficient unidirectional proxy re-encryption scheme[J]. Journal of Internet Services and Information Security, 2011, 1(2): 140-160. |
[5] |
CHOW S S M, WENG J, YANG Y J, et al.Efficient unidirectional proxy re-encryption[C]//Proceedings of International Conference on Cryptology in Africa.Berlin, Germany: Springer, 2010: 316-332.
|
[6] |
LIN Hanyu. Secure content distribution using multi-hop proxy re-encryption[J]. Wireless Personal Communications, 2015, 82(3): 1449-1459. |
[7] |
GUO L F, YAU W C. Efficient secure-channel free public key encryption with keyword search for EMRs in cloud storage[J]. Journal of Medical Systems, 2015, 39(2): 11-11. |
[8] |
XU Jieru, CHEN Kefei, SHEN Zhonghua, et al. Improved certificate-based conditional proxy re-encryption scheme[J]. Journal of Cryptologic Research, 2018, 5(4): 344-358. (in Chinese) 徐洁如, 陈克非, 沈忠华, 等. 改进的基于证书条件代理重加密方案[J]. 密码学报, 2018, 5(4): 344-358. |
[9] |
SU Mang, WU Bin, FU Anmin, et al.Proxy re-encryption based assured update scheme of authorization for cloud data[J/OL].Journal of Software: 1-11[2019-08-20].http://kns.cnki.net/kcms/detail/11.2560.TP.20190122.1348.002.html(in Chinese) 苏铓, 吴槟, 付安民, 等.基于代理重加密的云数据访问授权确定性更新方案[J/OL].软件学报: 1-11[2019-08-20].http://kns.cnki.net/kcms/detail/11.2560.TP.20190122.1348.002.html |
[10] |
JIANG Mingming, GUO Yuyan, YU Lei, et al. Efficient identity-based proxy re-encryption on lattice in the standard model[J]. Journal of Electronics & Information Technology, 2019, 41(1): 61-66. (in Chinese) 江明明, 郭宇燕, 余磊, 等. 有效的标准模型下格上基于身份的代理重加密[J]. 电子与信息学报, 2019, 41(1): 61-66. |
[11] |
SHAO Jun, CAO Zhenfu, LIANG Xiaohui, et al. Proxy re-encryption with keyword search[J]. Information Sciences, 2010, 180(13): 2576-2587. |
[12] |
CHEN Xi, LI Yong. Efficient proxy re-encryption with private keyword searching in untrusted storage[J]. International Journal of Computer Network and Information Security, 2011, 3(2): 50-56. |
[13] |
GUO Lifeng, HU Lei. Efficient bidirectional proxy re-encryption with direct chosen-ciphertext security[J]. Computers & Mathematics with Applications, 2012, 63(1): 151-157. |
[14] |
GUO Lifeng, LU Bo. Efficient proxy re-encryption with keyword search scheme[J]. Journal of Computer Research and Development, 2014, 51(6): 1221-1228. |
[15] |
RHEE H S, PARK J H, SUSILO W, et al. Trapdoor security in a searchable public-key encryption scheme with a designated tester[J]. Journal of Systems and Software, 2010, 83(5): 763-771. |
[16] |
WANG C H, TU T Y. Keyword search encryption scheme resistant against keyword-guessing attack by the untrusted server[J]. Journal of Shanghai Jiaotong University(Science), 2014, 19(4): 440-442. |
[17] |
LIU Zhenhua, ZHOU Peilin, DUAN Shuhong. Attribute-based proxy re-encryption scheme with keyword search[J]. Journal of Electronics & Information Technology, 2018, 40(3): 683-689. (in Chinese) 刘振华, 周佩琳, 段淑红. 支持关键词搜索的属性代理重加密方案[J]. 电子与信息学报, 2018, 40(3): 683-689. |
[18] |
GUO Lifeng, LU Bo. Efficient proxy re-encryption with keyword search scheme[J]. Journal of Computer Research and Development, 2014, 51(6): 1221-1228. (in Chinese) 郭丽峰, 卢波. 有效的带关键字搜索的代理重加密方案[J]. 计算机研究与发展, 2014, 51(6): 1221-1228. |
[19] |
GUO Lifeng, LI Ting. Improved proxy re-encryption with keyword search scheme[J]. Journal of Shanxi University(Natural Science Edition), 2016, 39(3): 434-441. (in Chinese) 郭丽峰, 李婷. 改进的带关键字搜索的代理重加密方案[J]. 山西大学学报(自然科学版), 2016, 39(3): 434-441. |
[20] |
SHAO Jun, LIU Peng, CAO Zhenfu, et al.Multi-use unidirectional proxy re-encryption[C]//Proceedings of IEEE International Conference on Communications.Kyoto, Japan: [s.n.], 2011: 5-9.
|
[21] |
HAN Xiao, ZENG Qi, CAO Yongming. An efficient proxy re-encryption scheme with keyword search[J]. Computer and Modernization, 2019(3): 117-121. (in Chinese) 韩笑, 曾琦, 曹永明. 一种有效的带关键字搜索的代理重加密方案[J]. 计算机与现代化, 2019(3): 117-121. |
[22] |
YE Weiwei, OU Qingyu, WEI Wei. Provably secure identity-based conditional proxy re-encryption scheme[J]. Computer Engineering, 2017, 43(9): 194-198. (in Chinese) 叶伟伟, 欧庆于, 魏巍. 可证安全的基于身份条件代理重加密方案[J]. 计算机工程, 2017, 43(9): 194-198. |