«上一篇 下一篇»
  计算机工程  2020, Vol. 46 Issue (10): 137-142, 150  DOI: 10.19678/j.issn.1000-3428.0055654
0

引用本文  

牛淑芬, 杨平平, 谢亚亚, 等. 电子邮件系统中指定服务器的关键字搜索加密方案[J]. 计算机工程, 2020, 46(10), 137-142, 150. DOI: 10.19678/j.issn.1000-3428.0055654.
NIU Shufen, YANG Pingping, XIE Yaya, et al. Keyword Search Encryption Scheme for Designated Server in Email System[J]. Computer Engineering, 2020, 46(10), 137-142, 150. DOI: 10.19678/j.issn.1000-3428.0055654.

基金项目

国家自然科学基金(61562077,61662069,61662071,61772022);甘肃省杰出青年基金(1308RJDA007);西北师范大学青年教师科研能力提升计划项目(NWNU-LKQN-14-7)

作者简介

牛淑芬(1976-), 女, 副教授、博士, 主研方向为大数据网络隐私保护、云计算;
杨平平, 硕士研究生;
谢亚亚, 硕士研究生;
王彩芬, 教授、博士;
杜小妮, 教授、博士

文章历史

收稿日期:2019-08-05
修回日期:2019-10-11
电子邮件系统中指定服务器的关键字搜索加密方案
牛淑芬a , 杨平平a , 谢亚亚a , 王彩芬a , 杜小妮b     
a. 西北师范大学 计算机科学与工程学院, 兰州 730070;
b. 西北师范大学 数学与统计学院, 兰州 730070
摘要:现有指定服务器的基于身份关键字搜索加密方案无法满足关键字密文的不可区分性,为满足电子邮件系统更高的安全需求,提出一种指定邮件服务器的身份认证关键字搜索加密方案。针对指定邮件存储服务器和数据接收者身份对关键字加密以抵抗离线关键字猜测攻击,在随机预言模型下,对该方案适应性选择消息攻击的关键字密文不可区分性、陷门不可区分性和离线猜测攻击的安全性进行验证。理论分析和数值实验结果表明,与dIBEKS方案相比,该方案在关键字加密和验证阶段计算效率更高。
关键词加密电子邮件    指定服务器    身份认证    可搜索加密    关键字加密    
Keyword Search Encryption Scheme for Designated Server in Email System
NIU Shufena , YANG Pingpinga , XIE Yayaa , WANG Caifena , DU Xiaonib     
a. College of Computer Science and Engineering, Northwest Normal University, Lanzhou 730070, China;
b. College of Mathematics and Statistics, Northwest Normal University, Lanzhou 730070, China
Abstract: The existing identity-based keyword search encryption schemes for designated server cannot satisfy the indistinguishability of keyword ciphertext.To meet the higher security requirements of email systems, this paper proposes an identity authentication-based keyword search encryption scheme for designated mail server.The scheme can resist off-line keyword guessing attacks by encrypting the identity of the designated mail storage server and data receiver.In the random oracle model, the following security features of the scheme such as the indistinguishability of keyword ciphertext in adaptively chosen message attacks, indistinguishability of trapdoor and security of offline guessing attacks are verified.Results of theoretical analysis and numerical experiments show that the proposed scheme has higher computational efficiency in keyword encryption and verification than dIBEKS scheme.
Key words: encrypted email    designated server    identity authentication    searchable encryption    keyword encryption    
0 概述

近年来, 随着云计算技术[1]的迅速发展, 基于网上在线存储的云存储服务得到广泛关注。将本地数据迁移到云端服务器可以节省本地数据管理开销、降低系统开发及维护成本[2], 但同时也产生了数据泄露、个人隐私信息无法得到有效保护等安全问题。此外, 为了确保数据的机密性, 数据拥有者在上传数据至云端服务器前会对其进行加密, 导致数据使用者难以在加密文件中快速查找信息。

为解决上述问题, 研究人员提出可搜索加密(Searchable Encryption, SE)技术[3-5]。可搜索加密体制分为对称可搜索加密体制和公钥可搜索加密体制[3]。文献[4]提出对称可搜索加密方案, 随后文献[6]提出公钥关键字搜索加密(Public Key Encryption with Keyword Search, PEKS)概念, 并结合公钥加密技术设计出基于双线性对的构造方案。该方案以邮件路由为应用场景以便邮件服务器对邮件进行分发, 数据发送者从待发送的电子邮件中通过检索关键字与使用数据接收者公钥对关键字和电子邮件进行加密, 数据接收者生成陷门并向邮件存储服务器发送相应陷门, 邮件存储服务器搜索与其匹配的关键字密文, 并将包含关键字的邮件密文返回给数据接收者[3]

在加密的电子邮件系统中, 带关键字搜索的公钥加密方案是在不解密情况下搜索加密邮件的有效手段, 但是其存在安全问题。文献[7]指出PEKS方案和结合域关键字搜索的公钥加密(Public Key Encryption with Conjunctive Field Keyword Search, PECKS)方案[8]中存在离线关键字猜测攻击(Keyword Guessing Attack, KGA)风险。恶意敌手能在离线状态下采用穷举法搜索候选关键字[9], 并分别对其进行验证。研究人员通过实验发现, 该攻击具有可行性。如果邮件服务器变得恶意, 其可以通过离线启动KGA从用户邮件中恢复信息[10]。文献[11]研究了基于身份的关键字搜索加密(Identity Based Encryption with Keyword Search, IBEKS)方案, 并对IBEKS方案进行定义。该文献指出, 数据发送者使用基于身份的加密(Identity-Based Encryption, IBE)方法对电子邮件进行加密, 并使用IBEKS方案加密关键字, 然后将加密的电子邮件和关键字上传到邮件存储服务器[12-13], 数据接收者为检索包含某个关键字的电子邮件, 委托邮件服务器提供陷门搜索加密的关键字, 邮件服务器将与加密关键字关联的电子邮件返回给数据接收者作为搜索结果。但是由于IBEKS方案无法抵抗内部离线关键字猜测攻击[14], 同时还隐藏了外部敌手搜索模式, 因此文献[15]提出一种指定服务器的基于身份关键字搜索加密(designated Server Identity-Based Encryption with Keyword Search, dIBEKS)方案, 然而文献[16]指出该方案不能满足关键字密文的不可区分性。

为提高dIBEKS方案的安全性, 本文提出一种指定邮件服务器的基于身份认证关键字搜索加密(designated Server Identity-Based Authenticated Encryption with Keyword Search, dIBAEKS)方案。在未知数据发送者私钥的情况下, 攻击者难以伪造数据发送者加密的关键字, 从而无法进行离线关键字猜测攻击, 对该方案适应性选择消息攻击的关键字密文不可区分性、陷门不可区分性和离线猜测攻击的安全性进行验证。

1 基础知识 1.1 双线性对

令(G1, +)和(G2, ×)为2个阶均为大素数q的循环群, p是群G1的生成元。

定义1(双线性对[17])  循环群上线性映射e:G1×G1G2具有以下性质:

1) 双线性。对任意P, QG1a, b$\mathbb{Z}_{q}^{*}$, e(aP, bP)=e(abP, Q)=e(P, abQ)=e(P, Q)ab

2) 非退化性。存在P, QG1, 满足e(P, Q)≠1。

3) 可计算性。对于任意P, QG1, 存在1个有效算法计算e(P, Q)。

1.2 困难性问题假设

本文方案采用双线性Diffie-Hellman计算(Computational Bilinear Diffie-Hellman, CBDH)假设[18]

定义2(CBDH假设)  给定三元组(P, aP, bP)∈G1, 其中a, b$\mathbb{Z}_{q}^{*}$未知, 任意的多项式时间攻击者R根据(P, aP, bP)计算出e(P, P)ab的概率优势如下:

$ {{\mathop{\rm Adv}\nolimits} _{{\rm{CBDH}}}}({\rm{R}}) = \Pr \left[ {{\rm{R}}(P, aP, bP) = e{{(P, P)}^{ab}}} \right] $ (1)

其中, e(P, P)ab的概率优势可以忽略。

2 系统模型和安全模型 2.1 系统模型

图 1为dIBAEKS方案的电子邮件系统模型。该模型主要包括数据发送者A、数据接收者B、指定邮件服务器S[19]以及可信任的密钥生成中心(Private Key Generator, PKG)4个实体。其中:数据发送者A对数据文件进行加密, 使用其私钥skA为加密的数据文件生成关键字索引Cw, 并将数据密文与关键字索引Cw共同上传到指定邮件服务器S; 数据接收者B用其私钥skB生成陷门Tw, 并将陷门Tw发送给指定邮件服务器S进行搜索服务请求; 指定邮件服务器S为加密的电子邮件提供存储服务并利用其私钥sks完成数据接收者B的搜索请求; 可信任的密钥生成中心PKG主要负责生成主密钥s和系统公共参数Params, 并根据用户身份信息生成用户密钥。

Download:
图 1 dIBAEKS方案的电子邮件系统模型 Fig. 1 Email system model of dIBAEKS scheme

dIBAEKS方案由以下5个概率多项式时间算法组成:

1) 系统建立算法Setup(λ):给定1个安全参数λ, 产生PKG的主密钥s和系统公共参数Params。

2) 密钥生成算法KeyGen(Params, s, IDA, IDB, IDS):输入系统公共参数Params、主密钥s和身份信息(IDA、IDB、IDS), PKG生成各身份对应的密钥(pkA, skA)、(pkB, skB)和(pkS, skS)。

3) 关键字加密算法dIBAEKS(Params, w, skA, IDB, IDS):对于关键字w, 数据发送者结合数据接收者的身份信息IDB和指定邮件服务器的身份信息IDS, 计算生成密文Cw

4) 陷门生成函数dTrapdoor(Params, w′, IDA, IDS, skB):对于给定搜索的关键字w′, 数据接收者使用自身私钥skB、数据发送者身份信息IDA以及指定邮件存储服务器身份信息IDS, 生成相对应的搜索陷门Tw′, 然后数据接收者将Tw′发送给指定邮件服务器进行搜索请求。

5) 验证算法dTest(Params, skS, Cw, Tw′):指定邮件服务器利用自身私钥skS, 与接收的CwTw′进行验证, 如果验证通过, 则输出“True”并返回给数据接收者Cw所对应的加密邮件; 否则, 输出“False”。

2.2 安全模型

dIBAEKS方案的安全性由关键字密文不可区分性、陷门不可区分性以及抗离线关键字猜测攻击构成。

2.2.1 关键字密文不可区分性

以敌手A1和挑战者F的交互游戏1来定义dIBAEKS方案的关键字密文不可区分性。假设敌手A1是外部攻击者。

1) 系统初始化。挑战者F执行Setup算法产生系统参数并发送给敌手A1

2) 询问1。外部攻击者A1向挑战者F进行以下询问:

(1) 密钥询问。当敌手A1向挑战者F进行密钥询问时, 挑战者F调用KeyGen算法并返回数据接收者私钥skB和指定邮件服务器私钥skS给敌手A1

(2) 陷门询问。敌手A1将数据发送者身份信息IDA、数据接收者身份信息IDB和关键字w发送给挑战者F, 挑战者F调用dTrapdoor算法返回给敌手A1搜索陷门Tw

(3) 测试询问。敌手A1将生成的密文C*、指定邮件存储服务器的身份信息IDS*、数据接收者身份信息IDB*以及搜索陷门Tw*发送给挑战者F。挑战者F调用dTest算法, 返回“True”或“False”给敌手A1

3) 挑战。当询问阶段1结束, 敌手A1选择2个搜索关键字(w0w1)和数据接收者身份信息IDB*发送给挑战者F。挑战者F随机选择猜测值b∈{0, 1}并调用dIBAEKS算法计算密文C*=dIBAEKS(wb, IDS*, IDB*, skA*), 然后将密文C*发送给敌手A1

4) 询问2。敌手A1向挑战者F进行密钥询问, 除不能对指定邮件服务器身份信息IDS进行公钥询问和测试询问以外, 其他与询问阶段1一致。

5) 猜测。敌手A1输出猜测值b′∈{0, 1}, 如果b′=b, 则挑战成功, 敌手A1赢得游戏1的胜利。

定义游戏1中敌手A1赢得游戏的优势AdvA1(λ)=$\left| {\Pr \left( {b = b'} \right) - \frac{1}{2}} \right|$

2.2.2 陷门不可区分性

以敌手A2和挑战者F的交互游戏2来定义dIBAEKS方案的陷门不可区分性。假设敌手A2是外部攻击者。

1) 系统初始化。挑战者F执行Setup算法产生系统参数并发送给敌手A2

2) 询问1。外部攻击者A2向挑战者F进行以下询问:

(1) 密钥询问。当敌手A2向挑战者F进行密钥询问时, 挑战者F调用KeyGen算法并返回数据接收者的私钥skB和指定邮件存储服务器私钥skS给敌手A2

(2) 陷门询问。敌手A2将数据发送者身份信息IDA、数据接收者身份信息IDB和关键字w发送给挑战者F, 并对其进行陷门询问。挑战者F调用dTrapdoor算法返回给敌手A2搜索陷门Tw

(3) 测试询问。敌手A2将生成的密文C*、指定邮件存储服务器的身份信息IDS*、数据接收者的身份信息IDB*以及陷门Tw*发送给挑战者F。挑战者F调用dTest算法, 返回“True”或“False”给敌手A2

3) 挑战。当询问阶段1结束, 敌手A2选择2个搜索关键字(w0w1)、数据发送者身份信息IDA*和数据接收者身份信息IDB*发送给挑战者F。挑战者F随机选择猜测值b∈{0, 1}并调用dTrapdoor算法计算Tw*=dTrapdoor(wb, IDA*, IDS*, skB*), 然后将密文Tw*发送给敌手A2

4) 询问2。敌手A2向挑战者F进行密钥询问, 除不能对指定邮件服务器身份信息IDS、接收者的身份信息IDB进行公钥询问和测试询问以外, 其他与询问阶段1一致。

5) 猜测。敌手A2输出猜测值b′∈{0, 1}, 如果b′=b, 则挑战成功, 敌手A2赢得游戏2的胜利。

定义游戏2中敌手A2, 赢得游戏的优势AdvA2(λ)=$\left| {\Pr \left( {b = b'} \right) - \frac{1}{2}} \right|$

2.2.3 离线猜测关键字攻击

由于本文提出的dIBAEKS方案在满足适应性选择消息下的陷门不可区分性时, 可抵御离线关键字猜测攻击[15], 因此dIBAEKS方案能够抵御离线关键字猜测攻击。

3 具体方案

dIBAEKS方案具体算法如下:

1) Setup算法。设G1G2分别是2个阶为素数q的循环群, pG1的1个生成元, e:G1×G1G2是1个双线性映射。密钥生成中心PKG随机选取主密钥s$\mathbb{Z}_{q}^{*}$, 计算出Ppub=sp, 然后选择2个哈希函数H1:{0, 1}*G1H2:G2×{0, 1}*$\mathbb{Z}_{q}^{*}$, 最后PKG公布系统参数Params={G1, G2, e, q, p, Ppub, H1, H2}。

2) KeyGen算法。以主密钥s和指定邮件服务器S的身份信息IDs∈{0, 1}*为输入, PKG生成指定邮件服务器S的私钥skS=sH1(IDS), 其中H1(IDS)为指定邮件服务器S的公钥。类似地, PKG根据数据发送者A身份信息IDA∈{0, 1}*和数据接收者B身份信息IDB∈{0, 1}*, 生成数据发送者A的私钥skA=sH1(IDA)和数据接收者B的私钥skB=sH1(IDB), 其中, H1(IDA)和H1(IDB)分别为数据发送者A和数据接收者B的公钥。

3) dIBAEKS算法。数据发送者A随机选取r$\mathbb{Z}_{q}^{*}$, 计算α1=e(skA, H1(IDB)), 将关键字wα1进行哈希运算, 得到q1=H2(w, α1), 并计算C1=r·q1C2=e(rH1(IDS), q1·Ppub)。数据发送者A将生成的邮件密文与关键字密文C1C2一起上传到指定邮件存储服务器S。

4) dTrapdoor算法。对于要检索的关键字w′, 数据接收者B随机选取t$\mathbb{Z}_{q}^{*}$, 计算陷门T1=tp, α2=e(skB, H1(IDA)), q2=H2(w′, α2), 陷门T2=q2p, 陷门T3=e((t+q2)Ppub, H1(IDS))。数据接收者B将T1T2T3发送给指定邮件服务器S完成搜索请求。

5) dTest算法。指定邮件服务器S利用自身私钥skS, 与接收的C1C2T1T2T3进行验证, 判断C2·T3是否与e(C1+T1+T2, skS)相等。若两者相等则输出“True”, 并将Cw所对应的加密邮件发送给数据接收者B, 否则输出“False”。

4 正确性、安全性证明与效率分析 4.1 正确性证明

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

$ \begin{array}{l} {C_2}{T_3} = e\left( {r{H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right), {q_1} \cdot {P_{{\rm{pub}}}}} \right)e\left( {\left( {t + {q_2}} \right){P_{{\rm{pub}}}}, {H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right)} \right) = \\ \;\;\;\;\;\;\;\;\;\;e\left( {r{H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right), {q_1} \cdot sp} \right)e\left( {\left( {t + {q_2}} \right)sp, {H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right)} \right) = \\ \;\;\;\;\;\;\;\;\;\;e\left( {rp{q_1}, s{H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right)} \right)e\left( {\left( {t + {q_2}} \right)p, s{H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right)} \right) = \\ \;\;\;\;\;\;\;\;\;\;e\left( {rp{q_1} + \left( {t + {q_2}} \right)p, s{H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right)} \right) = \\ \;\;\;\;\;\;\;\;\;\;\;e\left( {rp{q_1} + tp + {q_2}p, s{H_1}\left( {{\rm{I}}{{\rm{D}}_{\rm{S}}}} \right)} \right) = \\ \;\;\;\;\;\;\;\;\;\;\;e\left( {{C_1} + {T_1} + {T_2}, {\rm{s}}{{\rm{k}}_{\rm{S}}}} \right) \end{array} $ (2)

由于C2T3=e(C1+T1+T2, skS)等式成立, 符合关键字w′等于w以及对数据接收者身份的验证, 因此证明了本文提出方案的正确性。

4.2 安全性证明

本节证明dIBAEKS方案能满足在随机预言模型适应性选择消息攻击下的关键字密文不可区分性和陷门不可区分性, 进而证明该方案可抵御离线关键字猜测攻击[11, 16]

4.2.1 关键字密文不可区分性的具体证明

定理1  在计算双线性Diffie-Hellman是困难问题的情况下, 对于游戏1的攻击者, dIBAEKS方案在随机预言模型下满足适应性选择关键字密文攻击时的不可区分性安全。

证明  假设存在敌手A1能够以不可忽略的概率优势对关键字密文进行区分, 此时挑战者F获得CBDH实例(P, aP, bP), 其中a, b$\mathbb{Z}_{q}^{*}$。挑战者F通过与敌手A1按照游戏1的定义进行交互, 最后输出e(p, p)ab

1) 系统初始化。挑战者F通过运行Setup算法产生系统参数Params={G1, G2, e, q, p, Ppub, H1, H2}并发送给敌手A1, 设Ppub=ap

2) 询问1。敌手A1向挑战者F进行以下询问:

(1) H1询问。为应答敌手A1针对邮件服务器S、数据发送者A、数据接收者B这3个实体的H1询问, 挑战者F需建立3个列表LH1SLH1ALH1B, 且上述列表初始状态为空。

当敌手A1对邮件服务器IDSi进行H1询问时, 挑战者F查询IDSi是否在列表LH1S中, 若存在, 则返回H1(IDSi)=pkSi; 若不存在, 则挑战者F随机产生coin∈{0, 1}, 且coin以概率Pr(coin=0)=δ分布产生。如果coin=0, 则挑战者F随机选择vi$\mathbb{Z}_{q}^{*}$并计算pkSi=vip; 否则pkSi=bp。挑战者F在列表LH1S中保存四元组(IDSi, pkSi, vi, coin)并将pkSi返回给敌手A1

当敌手A1对数据发送者身份信息IDAi进行H1询问时, 挑战者F需查看IDAi是否存在于列表LH1A中, 如果存在, 则返回H1(IDAi)=pkAi, 否则挑战者F随机选择xi$\mathbb{Z}_{q}^{*}$并计算pkAi=xip。挑战者F在列表LH1A中保存三元组(IDAi, pkAi, xi), 同时将pkAi返回给敌手A1。与此类似, 挑战者F在列表LH1B中保存三元组(IDBi, pkBi, ui), 并将pkBi返回给敌手A1

(2) H2询问。为应答敌手A1针对的H2询问, 挑战者F需要建立列表LH2, 且列表初始状态为空。当敌手A1对(wi, αi)进行H2询问时, 挑战者F查看(wi, αi)是否存在于列表LH2中, 如果存在, 则返回H2(wi, αi)=Yi, 否则挑战者F随机选择Yi$\mathbb{Z}_{q}^{*}$, 且Yi=H2(wi, αi)。挑战者F在列表LH2中保存三元组(wi, αi, Yi), 并将Yi返回给敌手A1

(3) 密钥询问。敌手A1向挑战者F进行3个实体的密钥询问。当敌手A1对邮件服务器身份IDSi进行询问时, 挑战者F查询列表LH1S中四元(IDSi, pkSi, vi, coin), 如果coin=1, 则挑战者F输出⊥, 游戏1结束, 否则挑战者F返回邮件服务器S的私钥skSi=viPpub。当敌手A1对数据发送者身份IDAi进行询问时, 挑战者F查看列表LH1A中三元组(IDAi, pkAi, xi), 并返回数据发送者A的私钥skAi=xiPpub。与此类似, 挑战者F返回数据接收者B的私钥skBi=uiPpub

(4) 陷门询问。敌手A1向挑战者F询问wi的陷门。挑战者F随机选择t$\mathbb{Z}_{q}^{*}$, 计算T1=tp并调用H2询问得到三元组(wi, αi, Yi), 进而计算出T2=Yip, 同时调用公钥询问得到H1(IDS)的值pkSiT3=e((t+Yi)Ppub, pkSi), 最后挑战者F将T1T2T3发送给敌手A1

3) 挑战。当询问1结束后, 敌手A1选择2个搜索关键字(w0, w1)和数据接收者身份信息IDB*发送给挑战者F, 挑战者F随机选择μ∈{0, 1}和r*$\mathbb{Z}_{q}^{*}$, 并进行H2询问得到Y*=H2(wμ, α), 计算C1*=r*Y*pC2*=e(r*bp, Y*ap), 最终将关键字密文C1*C2*发送给敌手A1

4) 询问2。敌手A1进行询问, 除了不能对IDS*、IDB*进行公钥询问以及对四元组(Cw*, IDS*, IDB*, Tw*)测试询问以外(w′={w0, w1}), 其他同询问与询问1一致。

5) 猜测。敌手A1输出猜测值μ′∈{0, 1}, 如果μ′=μ, 则挑战成功, 敌手A1赢得游戏1的胜利。

4.2.2 陷门不可区分性的具体证明

定理2  在计算双线性Diffie-Hellman是困难问题的情况下, 对于游戏2的攻击者, dIBAEKS方案在随机预言模型下满足适应性选择消息攻击时的陷门不可区分性。

证明  假设存在敌手A2能够以不可忽略的概率优势搜索陷门并进行区分, 这时挑战者F获得CDH实例(P, aP, bP), 其中a, b$\mathbb{Z}_{q}^{*}$。挑战者F通过与敌手A2按照游戏2的定义进行交互, 最后输出e(p, p)ab

1) 系统初始化。挑战者F通过运行Setup算法产生系统参数Params={G1, G2, e, q, p, Ppub, H1, H2}并发送给敌手A2, 设Ppub=ap

2) 询问1。敌手A2向挑战者F进行以下询问:

(1) H1询问。为应答敌手A2针对3个实体的H1询问, 挑战者F需建立3个列表LH1SLH1ALH1B, 上述列表初始状态为空。当敌手A2对邮件服务器IDSi进行H1询问时, 挑战者F需要查询IDSi是否在列表LH1S中, 若存在, 则返回H1(IDSi)=pkSi; 若不存在, 则挑战者F随机选择vi$\mathbb{Z}_{q}^{*}$并计算pkSi=vip。然后在列表LH1S中保存三元组(IDSi, pkSi, vi), 并将pkSi返回给敌手A2。与此类似, 挑战者F在列表LH1A中保存三元组(IDAi, pkAi, xi), 并将pkAi返回给敌手A2, 在列表LH1B中保存三元组(IDBi, pkBi, ui), 并将pkBi返回给敌手A2

(2) H2询问。具体过程与定理1一致。

(3) 密钥询问。敌手A2向挑战者F进行3个实体的密钥询问。当敌手A2对邮件服务器身份IDSi进行询问时, 挑战者F查看列表LH1S中三元组(IDSi, pkSi, vi), 并返回邮件服务器S的私钥skSi=viPpub。与此类似, 挑战者F查看列表LH1ALH1B并返回数据发送者A的私钥skAi=xiPpub和数据接收者B的私钥skBi=uiPpub

(4) 陷门询问。具体过程与定理1一致。

3) 挑战。当询问1结束后, 敌手A2选择2个搜索关键字(w0, w1)和数据发送者身份信息IDA*发送给挑战者F, 挑战者F随机选择μ∈{0, 1}和t*$\mathbb{Z}_{q}^{*}$, 计算T1=t*p并调用H2询问得到Y*=H2(wμ, α), 从而计算出T2=Y*pT3=e((t*+Y*)ap, bp)。

4) 询问2。敌手A2进行询问, 除了不能对IDS*、IDB*进行密钥钥询问以及对四元组(Cw*, IDS*, IDB*, Tw*)测试询问以外(w′={w0, w1}), 其他与询问1一致。

5) 猜测。敌手A2输出猜测值μ′∈{0, 1}, 如果μ′=μ, 则挑战成功, 敌手A2赢得游戏2的胜利。

4.3 效率分析

本节通过理论对比和数值实验对dIBAEKS方案进行效率分析。

4.3.1 理论对比

将采用dIBAEKS方案与dIBEKS方案的关键字加密算法、陷门生成算法以及验证算法的计算效率进行对比, 并以点乘运算(PM)、双线性运算(PB)和哈希运算(PH)的数量作为评估指标, 结果如表 1所示。可以看出:在关键字加密算法中, dIBAEKS方案比dIBEKS方案少1个点乘运算和2个哈希运算; 在陷门生成算法中, dIBAEKS方案比dIBEKS方案多1个双线性运算和1个哈希运算; 在验证算法中, dIBAEKS方案比dIBEKS方案少3个双线性运算和2个哈希运算。由上述可知, 在关键字加密算法和验证算法中, dIBAEKS方案的计算效率均优于dIBEKS方案, 因此从总体来看, dIBAEKS方案的计算效率更高。

下载CSV 表 1 不同算法下2种方案的计算效率对比 Table 1 Comparison of calculation efficiency of two schemes under different algorithms
4.3.2 数值实验分析

本文采用数值实验对dIBAEKS方案与dIBEKS方案在关键字加密和验证阶段的计算效率进行对比分析。实验环境如下:ASUS A455L型计算机, Inter® CoreTMi5-4210U处理器, 4 GB内存, Win10操作系统, Linux虚拟机。使用C语言基于配对的密码学(Pairing-Based Cryptography, PBC)库[20], 群G1G2的长度为1 024 bit, 利用A型椭圆曲线y2=x3+xmod q进行计算, 且用户身份和关键字随机产生, 实验参数设置如表 2所示。

下载CSV 表 2 数值实验参数设置 Table 2 Parameter setting of numerical experiment

关键字数量决定dIBAEKS方案的执行时间。在数值实验中, 关键字数量分别取100、200、300、400、500、600、700、800、900和1 000, 取50次运算结果的平均值作为最终实验结果。图 2图 3分别为2种方案在关键字加密和验证阶段的执行时间随关键字数量的变化情况。由图 2图 3可以看出, 随着当关键字数量的增加, dIBAEKS方案与dIBEKS方案的执行时间均延长; 在关键字加密阶段, dIBAEKS方案的执行时间增幅略低于dIBEKS方案, 其计算效率略高; 在验证阶段, dIBAEKS方案和dIBEKS方案执行时间的增幅分别为0.9%和1.3%, dIBAEKS方案的计算效率明显高于dIBEKS方案。

Download:
图 2 2种方案在关键字加密阶段执行时间随关键字数量的变化 Fig. 2 The change of execution time with the number of keywords in the keyword encryption phase of two schemes
Download:
图 3 2种方案在验证阶段执行时间随关键字数量的变化 Fig. 3 The change of execution time with the number of keywords in the verification phase of two schemes
5 结束语

本文提出一种指定服务器的身份认证邮件关键字加密方案, 通过在指定服务器上进行陷门搜索, 并由指定数据发送者发出关键字密文, 可避免离线关键字猜测攻击。理论分析和数值实验结果表明, 该方案具有较高的计算效率和安全性。下一步将在本文工作的基础上, 增加数据接收者对返回加密电子邮件的验证, 以更准确地分辨服务器返回结果的真实性。

参考文献
[1]
CHEN Kang, ZHENG Weimin. Cloud computing:system instances and current research[J]. Journal of Software, 2009, 20(5): 1337-1348. (in Chinese)
陈康, 郑纬民. 云计算:系统实例与研究现状[J]. 软件学报, 2009, 20(5): 1337-1348.
[2]
SHEN Zhirong, XUE Wei, SHU Jiwu. Survey on the research and development of searchable encryption schemes[J]. Journal of Software, 2014, 25(4): 880-895. (in Chinese)
沈志荣, 薛巍, 舒继武. 可搜索加密机制研究与进展[J]. 软件学报, 2014, 25(4): 880-895.
[3]
QIN Zhiguang, XU Jun, NIE Xuyun, et al. A survey of public-key encryption with keyword search[J]. Journal of Cyber Security, 2017, 2(3): 1-12. (in Chinese)
秦志光, 徐骏, 聂旭云, 等. 公钥可搜索加密体制综述[J]. 信息安全学报, 2017, 2(3): 1-12.
[4]
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: 212-220.
[5]
LI Ying, MA Chunguang. Overview of searchable encryption research[J]. Chinese Journal of Network and Information Security, 2018, 4(7): 13-21. (in Chinese)
李颖, 马春光. 可搜索加密研究进展综述[J]. 网络与信息安全学报, 2018, 4(7): 13-21.
[6]
BONEH D, CRESCENZO D G, OSTROVSKY R, et al.Public key encryption with keyword search[C]//Proceedings of EUROCRYPT'04.Berlin, Germany: Springer, 2004: 506-522.
[7]
BYUN J W, RHEE H S, PARK H A, et al.Off-line keyword guessing attacks on recent keyword search schemes over encry[C]//Proceedings of the 3nd Workshop on Secure Data Management.Berlin, Germany: Springer, 2006: 75-83.
[8]
PARK D J, KIM K, LEE P J.Public key encryption with conjunctive field keyword search[C]//Proceedings of International Conference on Information Security Applications.Berlin, Germany: Springer, 2005: 73-86.
[9]
WANG Gang, LI Feifei, WANG Yao. Designated server identity-based encryption with conjunctive keyword search scheme[J]. Computer and Modernization, 2017, 33(4): 118-121. (in Chinese)
王刚, 李非非, 王瑶. 指定服务器的基于身份加密连接关键字搜索方案[J]. 计算机与现代化, 2017, 33(4): 118-121.
[10]
WANG Bo.Research on index based searchable encryption technology in cloud environment[D].Chengdu: University of Electronic Science and Technology of China, 2018.(in Chinese)
王勃.云环境下基于索引的可搜索加密技术研究[D].成都: 电子科技大学, 2018. https://www.zhangqiaokeyan.com/academic-degree-domestic_mphd_thesis/020313882904.html
[11]
ABDALLA M, BELLARE M, CATALANO D, et al.Searchable encryption revisited: consistency properties, relation to anonymous IBE, and extensions[C]//Proceedings of CRYPTO'05.Berlin, Germany: Springer, 2005: 205-222.
[12]
ZHU Minhui.Research on identity based proxy searchable encryption scheme[D].Nanjing: Nanjing University of Posts and Telecommunications, 2018.(in Chinese)
朱敏惠.基于身份的代理可搜索加密方案的研究[D].南京: 南京邮电大学, 2018. http://cdmd.cnki.com.cn/Article/CDMD-10293-1018892013.htm
[13]
NIU Shufen, CHEN Lixia, LIU Wenke, et al. Proxy reencryption scheme supporting keyword search in email system[J]. Computer Engineering, 2020, 46(6): 136-143. (in Chinese)
牛淑芬, 陈俐霞, 刘文科, 等. 电子邮件系统中支持关键字搜索的代理重加密方案[J]. 计算机工程, 2020, 46(6): 136-143.
[14]
LI Hongbo, HUANG Qing, SHEN Jian, et al. Designated server identity-based authenticated encryption with keyword search for encrypted emails[J]. Information Sciences, 2019, 481: 330-343. DOI:10.1016/j.ins.2019.01.004
[15]
WU T Y, TSAI T T, TSENG Y M. Efficient searchable ID-based encryption with a designated server[J]. Annals of Telecommunications, 2014, 69(7): 391-402.
[16]
WANG Shaohui, HAN Zhijie, XIAO Fu, et al. Identity-based searchable encryption scheme with a designated tester[J]. Journal on Communications, 2014, 35(7): 22-32. (in Chinese)
王少辉, 韩志杰, 肖甫, 等. 指定测试者的基于身份可搜索加密方案[J]. 通信学报, 2014, 35(7): 22-32.
[17]
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.
[18]
ZHANG Fangguo. From bilinear pairings to multilinear maps[J]. Journal of Cryptologic Research, 2016, 3(3): 211-228. (in Chinese)
张方国. 从双线性对到多线性映射[J]. 密码学报, 2016, 3(3): 211-228.
[19]
ZⅡU Minhui, CHEN Yanli, HU Yuanyuan. Identity-based searchable encryption scheme supporting proxy re-encryption[J]. Computer Engineering, 2019, 45(1): 129-135, 140. (in Chinese)
朱敏惠, 陈燕俐, 胡媛媛. 支持代理重加密的基于身份可搜索加密方案[J]. 计算机工程, 2019, 45(1): 129-135, 140.
[20]
The pairing-based cryptography library[EB/OL].[2019-06-20].http://crypto.stanford.edu/pbc/.