«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (9): 123-128, 135  DOI: 10.19678/j.issn.1000-3428.0056028
0

引用本文  

邓志辉, 王少辉, 王平. 基于合数阶双线性对的可搜索加密方案分析与改进[J]. 计算机工程, 2020, 46(9), 123-128, 135. DOI: 10.19678/j.issn.1000-3428.0056028.
DENG Zhihui, WANG Shaohui, WANG Ping. Analysis and Improvement of Searchable Encryption Scheme Based on Composite-Order Bilinear Pairs[J]. Computer Engineering, 2020, 46(9), 123-128, 135. DOI: 10.19678/j.issn.1000-3428.0056028.

基金项目

国家自然科学基金(61872192,61373139,61672016);江苏省科技支撑计划项目(61003236):南京邮电大学科研项目(NY214064,NY213036)

作者简介

邓志辉(1996-), 男, 硕士研究生, 主研方向为网络信息安全;
王少辉, 副教授;
王平, 硕士研究生

文章历史

收稿日期:2019-09-16
修回日期:2019-11-06
基于合数阶双线性对的可搜索加密方案分析与改进
邓志辉1,2 , 王少辉1,2 , 王平1,2     
1. 南京邮电大学 计算机学院, 南京 210003;
2. 江苏省无线传感网高技术研究重点实验室, 南京 210003
摘要:可搜索加密作为安全搜索的核心技术,使数据存储服务器能在密文下检索数据,但无安全信道的可搜索加密方案不能抵御由外部攻击者发起的离线关键字猜测攻击。针对该问题,对基于合数阶双线性对的可搜索加密方案安全性进行分析,证明该方案未考虑关键字陷门的不可区分性,重新设计生成陷门的Trapdoor算法,提出一种改进的无安全信道可搜索公钥加密方案,并证明其具有关键字陷门的不可区分性,能有效抵抗外部关键字猜测攻击。分析结果表明,该方案具有良好的密文与陷门尺寸,计算复杂度与原方案接近,但安全性能更高。
关键词可搜索加密    合数阶双线性对    关键字陷门    不可区分性    外部关键字猜测攻击    
Analysis and Improvement of Searchable Encryption Scheme Based on Composite-Order Bilinear Pairs
DENG Zhihui1,2 , WANG Shaohui1,2 , WANG Ping1,2     
1. School of Computer Science, Nanjing University of Posts and Telecommunications, Nanjing 210003, China;
2. Jiangsu High Technology Research Key Laboratory for Wireless Sensor Networks, Nanjing 210003, China
Abstract: Searchable encryption, as the core technology of secure search, enables data storage servers to retrieve data under ciphertext.However, the existing searchable encryption scheme without secure channel fail to resist off-line keyword guessing attacks initiated by external attackers.In order to solve the problem, this paper analyzes the security of the searchable encryption scheme based on composite-order bilinear pairs, and proves that the existing scheme does not consider the indistinguishability of keyword trapdoor.Also, this paper redesigns the Trapdoor algorithm and proposes an improved searchable public key encryption scheme without secure channel, which proves to be able to resist external keyword guessing attacks.Analysis results show that the proposed scheme has good ciphertext and trapdoor size, its computational complexity is close to that of the original scheme, but its security performance is better.
Key words: searchable encryption    composite-order bilinear pairs    keyword trapdoor    indistinguishability    external keyword guessing attack    
0 概述

随着互联网技术的迅速发展, 人们在日常工作和生活中产生及使用的数据量不断增大, 数据规模已由PB级发展到EB级甚至ZB级, 如何存储和处理大规模数据成为亟待解决的问题。云计算是通过互联网提供动态、易扩展和虚拟化资源的计算方式, 而云存储是云计算的应用模式, 其可远程高效存储数据, 能节省大量存储空间, 因此引起了人们的广泛关注, 并成为存储大数据的有效手段。

在云存储应用初期, 部分用户以明文形式上传数据, 由于云存储具有开放性和分布性, 数据脱离用户的物理控制存储在云端后, 一旦被外部攻击者截获或被恶意云服务提供者泄露, 将无法挽回损失。因此, 为保证所传数据的隐私性和安全性, 用户会将数据加密后再上传到云端。加密存储数据在一定程度上可以保证数据的隐私与安全, 但却给数据检索带来困难。

由于基于明文关键字的传统检索模型无法在密文下进行检索, 因此2000年SONG等人[1]在对称密码体制的基础上提出可搜索加密的概念, 并设计出可在密文下进行检索的SWP方案。2004年BONEH等人[2]首次提出公钥关键字搜索加密(Public Key Encryption with Keyword Search, PEKS), 并设计一种应用于邮件路由分发场景的方案, 将不同邮件分发到不同设备中, 公钥关键字搜索加密允许服务器根据接收到的陷门对不同关键字邮件选择分发路由, 且不会泄露邮件内容, 但是该方案在安全和效率方面存在不足。WATERS等人[3]随后提出用来构造可搜索加密审计日志的新PEKS方法。GOLLE等人[4]也提出基于连接关键词的可搜索加密方案, 可实现对多个关键词的搜索功能。2006年BYUN等人[5]分析了文献[2]中PEKS方案, 指出该方案容易遭受关键字猜测攻击[6-7], 此后研究者们提出大量抗关键字猜测攻击的PEKS方案[8-10]。2016年XU等人[11]提出合数阶双线性群下的PEKS方案, 该方案系统参数比其他方案更少, 且其安全性是基于静态假设下合数阶子群的不可区分性。文献[12]提出双服务器模型, 通过2个独立服务器分享秘密检索陷门执行搜索算法抵抗关键字猜测攻击。文献[13]通过加入发送者公私钥生成可搜索密文和陷门, 使服务器无法自行生成关键词陷门测试密文。文献[14]提出一种通过采用非确定算法生成关键字密文和陷门的方案, 可高效抵抗关键字猜测攻击。

然而PEKS框架本身存在一定不足, 即多数PEKS方案都需在服务器与接收者之间建立安全信道以传送陷门, 否则外部攻击者很容易截获关键字陷门进行搜索操作, 进而得到加密数据信息, 但是建立安全信道代价太高且很难实现。为解决该问题, 文献[15]提出无安全信道的公钥关键字搜索加密(Secure-Channel Free Public Key Encryption with Keyword Search, SCF-PEKS)方案, 由于关键字密文的生成需要云服务器公钥参与, 因此只有云服务器能够使用自身私钥检查关键字密文和陷门是否包含相同关键字。通过该方式, 用户可在无安全信道的情况下将关键字陷门发送到数据存储服务器。但是上述方案依赖于随机oracle模型, 而随机oracle模型不能真正反映方案在现实世界中的安全性。2009年FANG等人[16]提出首个在标准模型下安全的SCF- PEKS方案, 但该方案检测算法太复杂, 不具备高效性。2011年EMURA等人[17]利用匿名IBE、标签加密方案和一次性签名提出SCF-PEKS方案的通用设计方法。近期LI等人[18]从静态假设出发提出在标准模型下安全高效的SCF-PEKS方案, 该方案主要基于判定性子群假设和DBDH假设, 与现有在标准模型下构造的相关方案相比, 具有更简洁的结构。

2009年RHEE等人[19]指出SCF-PEKS方案不能抵抗由外部攻击者发起的离线关键字猜测攻击, 并在文献[20]中引入陷门不可区分性的概念, 证明抵抗关键词猜测攻击的充分条件是陷门的不可区分性。本文对文献[11, 18]提出的基于合数阶双线性对的可搜索加密方案进行分析, 发现上述方案的关键字陷门生成算法无法满足搜索关键字陷门的不可区分性。针对该问题, 本文在文献[11, 18]方案的基础上, 提出一种改进的无安全信道公钥可搜索加密方案, 同时基于DBDH假设对其是否满足关键字陷门的不可区分性进行证明, 并研究了该方案的计算复杂度和空间存储复杂度。

1 基本知识 1.1 合数阶双线性群

文献[21]最早提出合数阶双线性群, 令$\mathcal{G} $表示双线性群生成算法, 以安全参数λ作为输入, 输出阶为合数N=p1p2p3的群GGT, 其中p1p2p3为3个互不相同的素数。

定义1 (合数阶双线性映射)  设GGT是2个阶为N=p1p2p3的乘法循环群, gG的生成元。双线性映射e:G×GGT满足以下性质:

1) 可计算性:映射e:G×GGT可以被有效计算。

2) 双线性:对于任意g, hGa, b${{\mathbb{Z}}_{N}}$, 存在e(ga, hb)=e(g, h)ab

3) 非退化性:e(g, g)≠1。

G=Gp1Gp2Gp3, 其中Gp1Gp2Gp3分别是群G中阶为p1p2p3的子群。假设g是群G的1个生成元, 则gp2p3是子群Gp1的生成元。同理, gp1p3是子群Gp2的生成元, gp1p2是子群Gp3的生成元。因此, 存在α1, α2${{\mathbb{Z}}_{N}}$, 使得h1=(gp1p2)α1h2=(gp1p2)α2, 此时存在如下关系式:

$ e\left(h_{1}, h_{2}\right)=e\left(g^{p_{2} p_{3} \alpha_{1}}, g^{p_{1} p_{3} \alpha_{2}}\right)=e\left(g^{\alpha_{1}}, g^{p_{3} \alpha_{2}}\right)^{p_{1} p_{2} p_{3}}=1 $ (1)

如果选取ijhiGpihjGpj, 则e(hi, hj)是群GT中的单位元, 这说明合数阶双线性群中各子群Gp1Gp2Gp3相互正交。

1.2 判定性子群假设

假设1 给定群生成器G(λ), 定义其分布如下:

$ \begin{align} & G=\left( N={{p}_{1}}{{p}_{2}}{{p}_{3}}, G, {{G}_{T}}, e \right)\overset{R}{\mathop{\leftarrow }}\, \mathcal{G}, {{g}_{1}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{1}}}}, {{g}_{3}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{3}}}}, \\ & {{g}_{1, 2}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{1}}}}{{G}_{{{p}_{2}}}}, D=\left( {{g}_{1}}, {{g}_{3}}, {{g}_{1, 2}} \right), {{T}_{0}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{1}}}}, {{T}_{1}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{1}}}}{{G}_{{{p}_{2}}}} \\ \end{align} $ (2)

其中, Gp1Gp2Gp3分别是群G中阶为p1p2p3的子群, Gp1Gp2是阶为p1p2的子群, g1g3g1, 2是从对应群中随机选取的群元素。对于公开元组D和任意概率多项式时间的敌手A, 能正确区分出T0T1的优势Advg, ASD1(λ):=Pr[A(D, T0)=1]-Pr[A(D, T1)=1]关于λ是可忽略的。

假设2 给定群生成器$\mathcal{G}$(λ), 定义其分布如下:

$ \begin{align} & G=\left( N={{p}_{1}}{{p}_{2}}{{p}_{3}}, G, {{G}_{T}}, e \right)\overset{R}{\mathop{\leftarrow }}\, \mathcal{G}, {{g}_{1}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{1}}}}, {{g}_{3}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{3}}}}, \\ & {{g}_{1, 2}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{1}}}}{{G}_{{{p}_{2}}}}, {{g}_{2, 3}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{2}}}}{{G}_{{{p}_{3}}}}, D=\left( {{g}_{1}}, {{g}_{3}}, {{g}_{1, 2}}, {{g}_{2, 3}} \right), \\ & {{T}_{0}}\overset{R}{\mathop{\leftarrow }}\, {{G}_{{{p}_{1}}}}{{G}_{{{p}_{3}}}}, T_{1}^{{}}\overset{R}{\mathop{\leftarrow }}\, G \\ \end{align} $ (3)

其中, Gp1Gp3是群G中阶为p1p3的子群, Gp2Gp3是阶为p2p3的子群。对于公开元组D和任意概率多项式时间的敌手A, 能正确区分出T0T1的优势Advg, ASD2(λ):=Pr[A(D, T0)=1]-Pr[A(D, T1)=1]关于λ是可忽略的。

1.3 DBDH假设

G1G2是阶为q的循环群, gG1的生成元, e:G1×G1G2是双线性映射。随机选取a, b, c, rGp, DBDH假设指对任意概率多项式时间的敌手A区分e(g, g)abce(g, g)r的优势AdvDBDHG1, A(λ)=|Pr[A(g, ga, gb, gc, e(g, g)abc)=1]-Pr[A(g, ga, gb, gc, e(g, g)r)=1]|关于λ是可忽略的。

1.4 PEKS和SCF-PEKS

PEKS和SCF-PEKS方案都涉及发送者(数据拥有者)、接收者(用户)和云服务器三方参与者。发送者生成关键字的可搜索密文并将其连同密文数据发送给云服务器, 接收者生成关键字陷门, 云服务器根据关键字密文和陷门执行数据检索操作, 并将匹配的密文数据发送给接收者。

1.4.1 PEKS方案

定义2  公钥可搜索加密方案由以下4个算法组成:

1) Setup(λ)算法。输入安全参数λ, 算法生成全局参数gp, 用户公钥pk和私钥sk。

2) PEKS(gp, pk, ω)算法。由发送者执行, 输入全局参数gp、用户公钥pk和关键字ω, 输出关于关键字ω的可搜索密文C

3) Trapdoor(gp, sk, ω)算法。由用户执行, 输入全局参数gp、用户私钥sk和关键字ω, 生成关键字陷门Tω

4) Test(gp, C, Tω)算法。输入全局参数gp、可搜索密文C和关键字陷门Tω, 服务器对关键字密文和陷门进行验证, 如果验证匹配则输出1, 否则输出0。

1.4.2 SCF-PEKS方案

SCF-PEKS方案与PEKS方案主要区别在于云服务器的公钥和私钥是否分别参与了可搜索密文生成算法和检测匹配算法。由于PEKS方案没有使用云服务器的公私钥对, 因此其传送关键字陷门时需要使用安全信道才能避免受到攻击。而因为SCF-PEKS方案中云服务器的公钥参与了可搜索关键字密文生成过程, 只有拥有对应私钥的云服务器才能进行检测匹配算法, 所以传送关键字陷门时不需安全信道参与。

定义3  无安全信道的公钥可搜索加密方案由以下4个算法组成:

1) Setup(λ)算法。输入安全参数λ, 生成全局参数gp, 并输出云服务器的公私钥对(pkS, skS), 以及接收者的公私钥对(pkR, skR)。

2) SCF-PEKS(gp, pkS, pkR, ω)算法。输入gp、接收者的公钥pkR、云服务器的公钥pkS以及关键字ω, 由发送者输出关键字ω的可搜索密文C

3) Trapdoor(gp, skR, ω)算法。输入gp和接收者的私钥skR, 由接收者输出关键字ω的陷门Tω

4) Test(gp, skS, C, Tω)算法。输入gp、关键字密文C和关键字陷门Tω, 云服务器利用自身私钥对密文和陷门进行匹配验证, 如果匹配则输出1, 否则输出0。

1.5 陷门不可区分性

为避免关键字猜测攻击, 在设计方案时要保证关键字密文和陷门的不可区分性。本节只给出陷门不可区分性的安全性定义, 其他可参考文献[18]。根据文献[20]提出的陷门不可区分性概念及安全模型, 假设敌手A为外部攻击者(不是服务器和接收者), 关键字陷门的不可区分性通过多项式时间的挑战者B与敌手A之间交互游戏来描述, 具体过程如下:

1) Setup。给定安全参数λ, 挑战者B生成全局参数gp、云服务器和接收者的公私钥对(pkS, skS)和(pkR, skR), 并将gp、pkR和pkS发送给敌手A。

2) Queryphase1。敌手A可适应性的询问如下预言机OT, 访问次数以多项式时间限定:

(1) 搜索陷门预言机OT。输入接收者的私钥skR和选择的关键字ω∈KSω, OT预言机返回关键字陷门Tω←Trapdoor(gp, skR, ω)给敌手A。

(2) Challenge。一旦敌手A决定Queryphase1结束, A选择未询问过OT预言机的关键字(ω0, ω1), 并将其发送给挑战者B。挑战者B随机选择b∈{0, 1}, 计算关键字ωb对应的陷门Tωb←Trapdoor(gp, skR, ωb)并返回给敌手A。

3) Queryphase2。敌手A可以继续访问OT预言机, 但要求不能就关键字(ω0, ω1)对预言机OT进行询问。

4) Guess。敌手A猜测b′, 如果b′=b, 则敌手A获胜, 否则敌手A失败。

如果对任意概率多项式时间的敌手A成功区分游戏优势$\operatorname{Adv}_{\mathrm{A}}^{\mathrm{Game}}(\lambda)=\left|\operatorname{Pr}\left[b^{\prime}=b\right]-\frac{1}{2}\right|$关于λ是可忽略的, 则称陷门算法满足关键字的不可区分性。

2 可搜索加密方案分析

本节主要对文献[11, 18]分别提出的2个基于合数阶双线性对的公钥可搜索加密方案进行分析。上述方案对关键字陷门的设计均无法保证关键字陷门不可区分性, 存在安全问题。

2.1 文献[11]方案分析

文献[11]方案的安全性主要基于合数阶双线性群的子群不可区分性, 该方案具有IND-CKA安全性, 方案具体设计可参考文献[11], 下文对其中的Setup算法和Trapdoor算法进行阐述。

1) Setup算法。设G是阶为合数N=p1p2p3的乘法循环群, 其中p1p2p3互不相同的素数。记Gp1阶子群为Gp1, 随机选取u, g, hGp1α${{\mathbb{Z}}_{N}}$, 计算e(g, g)α。KSω=${{\mathbb{Z}}_{N}}$为关键字空间, 返回系统私钥sk=α, 公共参数gp={G, GT, e, N, u, g, h, e(g, g)α, KSω}。

2) Trapdoor算法。输入关键字ω和私钥sk, 用户随机选取r${{\mathbb{Z}}_{N}}$R3, R3′∈Gp3, 计算关键字陷门T=[T0, T1]=[gα(uωh)rR3′, grR3]。

对文献[11]方案的安全性分析如下:

假设存在1个外部攻击者A, 给定2个关键字(ω0, ω1), 且A可获取包含目标关键字ωb∈{ω0, ω1}的陷门Tωb=[T1, T2]=[gα(uωbh)rR3′, grR3], 外部攻击者A可通过以下攻击方式来区分该陷门中的关键字:

1) 外部攻击者A通过系统参数gp={G, GT, e, N, u, g, h, e(g, g)α}获取ugh的值。

2) A随机选择ω′∈{ω0, ω1}, 并计算得到:

$ \begin{aligned} M=\frac{e\left(T_{1}, g\right)}{e\left(T_{2}, u^{w^{\prime}} h\right)}=\frac{e\left(g^{\alpha}\left(u^{\omega_{b}} h\right)^{r} R_{3}^{\prime}, g\right)}{e\left( g^{r} R_{3}, u^{w^{\prime}} h\right)}=\\ \frac{e\left(g^{\alpha}, g\right) e\left(\left(u^{\omega_{b}} h\right)^{r}, g\right)}{e\left(g^{r}, u^{w^{\prime}} h\right)}=\frac{e(g, g)^{\alpha} e\left(u^{\omega_{b}} h, g\right)^{r}}{e\left(u^{w^{\prime}} h, g\right)^{r}} \end{aligned} $ (4)

3) 若ωb=ω′, 则M=e(g, g)α, 由于e(g, g)α已知, 外部攻击者A可不通过验证测试算法就能区分并获取陷门中的关键字, 因此该方案不满足陷门的不可区分性。

2.2 文献[18]方案分析

文献[18]提出在标准模型下利用合数阶双线性对的SCF-PEKS方案, 该方案具有安全性和高效性, 且主要基于判定性子群假设和DBDH假设, 方案具体设计可参考文献[18], 以下对其中的Setup算法、SCF-PEKS算法和Trapdoor算法进行阐述。

1) Setup(λ)算法。输入安全参数λ, 选取1个抗碰撞的单向哈希函数H:{0, 1}*${{\mathbb{Z}}_{N}}$, 系统全局参数gp=(N, G, GT, e, H, KSω), 关键字空间KSω=${{\mathbb{Z}}_{N}}$。服务器随机选取x$\mathbb{Z}_{N}^{*}$hGp1, 计算得到X=g1xY=e(X, h)。输出服务器公钥pkS=(g1, h, Y)、私钥skS=x; 而接收者随机选取y${{\mathbb{Z}}_{N}}$uGp1g3Gp3, 接收者的公私钥分别为pkR=(g1, g1y, e(g1, u))、skR=(y, u, g3)。

2) SCF-PEKS(gp, pkS, pkR, ω)算法。发送者随机选取r, s${{\mathbb{Z}}_{N}}$, 计算U=g1st=H(e(X, h)s)、V=g1(y+ω)r/t以及W=e(g1, u)r, 输出关键字密文C=(V, U, W)。

3)Trapdoor(gp, skR, ω)算法。接收者确认关键字后, 随机选取R3Gp3, 计算Tω=u1/(y+ω)R3, 返回Tω

对文献[18]方案的安全性分析如下:

由于该方案在无安全信道的环境下传送关键字陷门, 因此陷门很容易被攻击者获取, 且攻击者只需按如下攻击方式进行计算, 便可轻易区分并获取陷门中的关键字, 具体攻击过程为:

1) 给定2个关键字(ω0, ω1), 假设存在1个外部攻击者A, 将包含目标关键字ωb∈{ω0, ω1}的陷门Tωb=u1/(y+ωb)R3发送给A。

2) 将服务器和接收者的公钥pkS=(g1, h, Y)和pkR=(g1, g1y, e(g1, u))发送给A。

3) A随机选择ω′∈{ω0, ω1}, 并计算得到:

$ \begin{array}{c} M=e\left(T_{\omega_{b}}, g_{1}^{y} \cdot g_{1}^{w^{\prime}}\right)=e\left(u^{1 /\left(y+\omega_{b}\right)} R_{3}, g_{1}^{y} \cdot g_{1} \omega^{\prime}\right)= \\ e\left(u^{1 /\left(y+\omega_{b}\right)}, g_{1}^{y+\omega^{\prime}}\right)=e\left(u, g_{1}\right)^{\frac{y+\omega^{\prime}}{y+\omega_{b}}} \end{array} $ (5)

4) 若ωb=ω′, 则M=e(u, g1), 由于e(u, g1)在pkR中已知, 攻击者A可区分陷门中的关键字, 因此该方案不满足陷门的不可区分性。

3 SCF-PEKS改进方案

针对文献[11]和文献[18]方案存在的安全问题, 本文提出一种改进的基于合数阶双线性对的无安全信道可搜索公钥加密方案, 该方案可保证关键字陷门的不可区分性, 且能抵抗外部关键字猜测攻击。

3.1 本文方案设计

本文方案由4个算法组成, 其中Setup(λ)算法、SCF-PEKS(gp, pkS, pkR, ω)算法与文献[18]方案中算法一致, 另外改进的2个算法具体如下:

1) Trapdoor(gp, skR, ω)算法。接收者随机选取zGNR3Gp3, 并计算T1=g1zT2=un/(y+ω)R3, 接收者n=H(e(X, h)z)发送关键字陷门Tω=(T1, T2)给云服务器。

2) Test(gp, Tω, C, skS, ω)算法。服务器先使用自身私钥计算t=H(e(U, h)x)和n=H(e(T1, h)x), 再检验e(Vt, T2)=Wn是否成立。若等式成立, 则输出1, 否则输出0。

对本文方案的正确性证明如下:

$ t=H\left(e(U, h)^{x}\right)=H\left(e\left(g_{1}^{s}, h\right)^{x}\right)=H\left(e(X, h)^{s}\right) $ (6)
$ n=H\left(e\left(T_{1}, h\right)^{x}\right)=H\left(e\left(g_{1}^{z}, h\right)^{x}\right)=H\left(e(X, h)^{z}\right) $ (7)
$ \begin{aligned} e\left(V^{t}, T_{2}\right)=& e\left(\left(g_{1}^{(y+w) r / t}\right)^{t}, u^{n /(y+w)} R_{3}\right)=\\ & e\left(g_{1}^{(y+w) r}, u^{n /(y+w)} R_{3}\right)=e\left(g_{1}, u\right)^{r n}=W^{n} \end{aligned} $ (8)

由式(6)~式(7)可知, 服务器通过自身私钥可计算出正确的tn, 将其代入式(8)计算得知, 陷门和可搜索密文能够正确匹配, 从而证明了本文方案具有正确性。

本文方案主要在生成陷门的Trapdoor算法基础上进行重新设计。根据上述分析, 改进方案在生成陷门时增加1个n次幂, 其中n=H(e(X, h)z), z为随机值。从而保证陷门即使在被攻击者获取的情况下, 也无法通过计算区分出关键字, 且必须计算出n值才能进行验证操作, 虽然增加了计算量, 但是可保证关键字陷门的不可区分性。采用对文献[18]方案相同的攻击方式对本文方案进行攻击, 可以得到:

$ \begin{array}{c} M=e\left(u^{n /\left(y+\omega_{b}\right)} R_{3}, g_{1}^{y} \cdot g_{1}^{\omega^{\prime}}\right)= \\ e\left(u^{n /\left(y+\omega_{b}\right)}, g_{1}^{y+\omega^{\prime}}\right)=e\left(u, g_{1}\right)^{\frac{n\left(y+\omega^{\prime}\right)}{y+\omega_{b}}} \end{array} $ (9)

ω′=ωb, 则M=e(u, g1)n, 此时对于外部攻击者而言, 虽然e(u, g1)已知, 但n值需要通过云服务器或接收者的私钥计算得到, 攻击者无法通过M值判断ω′是否等于ωb, 不能对陷门中的关键字进行区分, 因此, 本文方案能抵抗外部关键字猜测攻击。

3.2 安全性证明

本文主要证明改进方案关键字陷门的不可区分性, 而由于可搜索密文的不可区分性等其他安全性基于判定性子群假设和DBDH假设, 因此本文安全性证明过程与文献[18]中的安全性证明过程基本一致, 具体可参考文献[18]。

定理1 如果DBDH假设是困难的, 那么对于任意概率多项式时间算法的敌手A, 能区分关键字陷门的概率优势可忽略。

证明 假设存在多项式时间算法的外部敌手A攻击本文方案, 构造1个DBDH游戏的挑战者B。模拟过程为:挑战者设置阶为p1的群G′G′T以及双线性映射e:G′×G′→G′T, 其中G′G′T分别为合数阶群GGT的素数阶子群。输出参数(g1, g1a, g1b, g1c, T)给B, 而挑战者B的目标为区分T等于e(g1, g1)abc还是等于GT中的随机元素。

敌手A和挑战者B进行游戏如下:

1) Setup。输入安全参数λ, 选取1个抗碰撞的单向哈希函数H:{0, 1}*${{\mathbb{Z}}_{N}}$, 双线性映射参数为(N, G, GT, e), 令关键字空间KSω=${{\mathbb{Z}}_{N}}$, 得到全局参数gp=(N, G, GT, e, H, KSω)。设X=g1ah=g1bY=e(X, h), 可得服务器公钥为pkS=(g1, h, X, Y), 随机选取y${{\mathbb{Z}}_{N}}$uGp1g3Gp3, 输出接收者公钥pkR=g1, g1y, e(g1, u), 将pkS和pkR发送给敌手A。

2) Queryphase1。敌手A向预言机OT询问关键字ωi的陷门。预言机OT输入接收者的私钥skR和关键字ωi后, 随机选择z${{\mathbb{Z}}_{N}}$R3Gp3, 计算T1=g1zn=H(e(X, h)z)、T2=un/(y+ωi)R3, 将关键字陷门Tωi=(T1, T2)返回敌手A。

3) Challenge。在多次询问预言机OT之后, 敌手A随机选择2个未询问过预言机OT的关键字(ω0, ω1)发送给挑战者B, 挑战者B随机选取b∈{0, 1}, 设挑战关键字ω*=ωb, 随机选取R3Gp3n=H(T)、T1=g1cT2=un/y+ω*R3, 将关键字陷门Tω*=(T1, T2)发送给A。

4) Guess。敌手A输出猜测b′。在验证过程中, 当b′=b时, n=H(e(T1, h)a)=H(e(g1, g1)abc), T=e(g1, g1)abc, 则Tω*为合法输出, 返回1;当b′≠b时, Te(g1, g1)abc, 则TGT中随机元素, 返回0。

如果敌手A能区分陷门中的关键字, 那么挑战者B便可攻破DBDH假设。因此, 本文方案的关键字陷门具有不可区分性, 可抵抗外部攻击者的关键字猜测攻击。

3.3 性能比较

将文献[11, 18, 20, 22]中的可搜索加密方案与本文方案的陷门和密文的尺寸、各算法的计算复杂度以及是否具有陷门的不可区分性等信息进行对比, 令|G|、|GT|、|${{\mathbb{Z}}_{p}}$|分别为GGT${{\mathbb{Z}}_{p}}$中的元素大小, P为双线性对运算, E为模幂运算, H为哈希函数运算, 结果如表 1所示。可以看出, 本文方案与文献[11, 18]中同为基于合数阶双线性群的方案及文献[20]中具有陷门不可区分性方案差别较小, 具有良好的陷门和密文尺寸。虽然本文方案验证测试算法的计算复杂度稍高, 但文献[11, 18]方案无法保证关键字陷门的不可区分性, 文献[20]方案不是在标准模型下构造, 因此本文方案在现实环境中比文献[11, 18, 20, 22]方案更加安全。而文献[22]提出的陷门不可区分性方案虽然安全性与本文方案接近, 但是其在密文尺寸和各算法的计算复杂度上均不如本文方案, 效率较低。综上所述, 本文方案在相同的计算复杂度、良好的陷门和密文尺寸情况下, 比其他可搜索加密方案具有更好的安全性。

下载CSV 表 1 本文方案与其他方案的性能对比 Table 1 Performance comparison between the proposed scheme and other schemes
4 结束语

本文对传统基于合数阶双线性对的可搜索公钥加密方案进行研究, 指出其中陷门算法不具有关键字不可区分的安全属性, 并提出一种改进的基于合数阶双线性对的可搜索加密方案。该方案在陷门、密文尺寸及计算复杂度与原方案接近的情况下, 可保证关键字陷门的不可区分性, 从而抵抗外部关键字猜测攻击。关键字猜测攻击较多由外部攻击者发起, 如果由内部攻击者(恶意服务器)发起猜测攻击, 则更容易造成数据泄露。后续将在本文对外部关键字猜测攻击研究的基础上, 继续对合数阶双线性对进行改进, 以抵抗内部关键字猜测攻击并提高计算效率。

参考文献
[1]
SONG D X, WAGNER D, PERRIG A.Practical techniques for searches on encrypted data[C]//Proceedings of 2000 IEEE Symposium on Security and Privacy.Washington D.C., USA: IEEE Press, 2000: 44-55.
[2]
BONEH D, CRESCENZO D G, OSTROVSKY R, et al.Public key encryption with keyword search[C]//Proceedings of EUROCRYP'04.Berlin, Germany: Springer, 2004: 506-522.
[3]
WATERS B, BALFANZ D, DURFEE G, et al.Building an encrypted and searchable audit log[C]//Proceedings of the 11th Annual Network and Distributed System Security Symposium.New York, USA: ACM Press, 2004: 5-6.
[4]
GOLLE P, STADDON J, WATERS B.Secure conjunctive keyword search over encrypted data[C]//Proceedings of ACNS'04.Berlin, Germany: Springer, 2004: 31-45.
[5]
BYUN J W, RHEE H S, PARK H A, et al.Off-line keyword guessing attacks on recent keyword search schemes over encrypted data[EB/OL].[2019-08-02].https://link.springer.com/chapter/10.1007/11844662_6.
[6]
JEONG I R, KWON J O, HONG D, et al. Constructing PEKS schemes secure against keyword guessing attacks is possible?[J]. Computer Communications, 2009, 32(2): 394-396.
[7]
YAU W C, HENG S H, GOI B M.Off-line keyword guessing attacks on recent public key encryption with keyword search schemes[EB/OL].[2019-08-02].https://link.springer.com/chapter/10.1007%2F978-3-540-69295-9_10.
[8]
LU Yang, WANG Gang, LI Jiguo, et al. Efficient designated server identity-based encryption with conjunctive keyword search[J]. Annals of Telecommunications, 2017, 72(5): 359-370.
[9]
CAO Suzhen, LANG Xiaoli, LIU Xiangzhen, et al. Delegate searchable encryption scheme resisting keyword guess[J]. Journal of Electronics and Information Technology, 2019, 41(9): 2180-2186. (in Chinese)
曹素珍, 郎晓丽, 刘祥震, 等. 抗关键词猜测的授权可搜索加密方案[J]. 电子与信息学报, 2019, 41(9): 2180-2186.
[10]
ZENG Qi, HAN Xiao, CAO Yongming. Integrated public key encryption and public key encryption with keyword search[J]. Computer and Modernization, 2019, 35(4): 103-107. (in Chinese)
曾琦, 韩笑, 曹永明. 结合公钥加密和关键字可搜索加密的加密方案[J]. 计算机与现代化, 2019, 35(4): 103-107.
[11]
XU Lei, XU Chungen, YU Xiaoling. Secure and efficient data retrieval scheme using searchable encryption in cloud[J]. Journal of Cryptologic Research, 2016, 3(4): 330-339.
[12]
WANG Chihuang, TU Taiyuan. 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. DOI:10.1007/s12204-014-1522-6
[13]
HUANG Qiong, LI Hongbo. An efficient public-key searchable encryption scheme secure against inside keyword guessing attacks[J]. Information Sciences, 2017, 403(9): 1-14.
[14]
WANG Shaohui, ZHANG Yanxuan, WANG Huaqun, et al. Efficient public-key searchable encryption scheme against inside keyword guessing attack[J]. Computer Science, 2019, 46(7): 91-95. (in Chinese)
王少辉, 张彦轩, 王化群, 等. 抗内部关键词猜测攻击的高效公钥可搜索加密方案[J]. 计算机科学, 2019, 46(7): 91-95.
[15]
BAEK J, SAFAVI N R, SUSILO W.Public key encryption with keyword search revisited[C]//Proceedings of ICCSA'08.Berlin, Germany: Springer, 2008: 1249-1259.
[16]
FANG L M, SUSILO W, GE C P, et al.A secure channel free public key encryption with keyword search scheme without random oracle[C]//Proceedings of CANS'09.Berlin, Germany: Springer, 2009: 248-258.
[17]
EMURA K, MIYAJI A, OMOTE K.Adaptive secure-channel free public-key encryption with keyword search implies timed release encryption[EB/OL].[2019-08-02].https://dl.acm.org/doi/10.5555/2051002.2051013.
[18]
LI Shiqiang, YANG Bo, WANG Tao, et al. Efficient public key encryption with keyword search without using secure channel[J]. Journal of Cryptologic Research, 2019, 6(3): 283-292.
[19]
RHEE H S, SUSILO W, KIM H J. Secure searchable public key encryption scheme against keyword guessing attacks[J]. IEICE Electronics Express, 2009, 6(5): 237-243. DOI:10.1587/elex.6.237
[20]
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. DOI:10.1016/j.jss.2009.11.726
[21]
WATERS B.Dual system encryption: realizing fully secure IBE and HIBE under simple assumptions[C]//Proceedings of CRYPTO'09.Berlin, Germany: Springer, 2009: 619-636.
[22]
FANG L M, SUSILO W, GE C P, et al. Public key encryption with keyword search secure against keyword guessing attacks without random oracle[J]. Information Sciences, 2013, 238(7): 221-241.