摘要

我们研究使用公钥系统加密的数据的搜索问题。考虑用户Bob向用户Alice发送用Alice的公钥加密的电子邮件。电子邮件网关想要测试电子邮件是否包含关键字“紧急”,以便它可以相应地路由电子邮件。另一方面,Alice不希望给网关解密她所有消息的能力。我们定义并构建了一种机制,使Alice能够向网关提供密钥,使网关能够测试单词“urgent”是否是电子邮件中的关键字,而无需了解关于该电子邮件的任何其他信息。我们将这种机制称为带有关键字搜索的公钥加密。作为另一个例子,考虑一个邮件服务器,它存储了由他人为Alice公开加密的各种消息。使用我们的机制,Alice可以向邮件服务器发送一个密钥,该密钥将使服务器能够识别包含某些特定关键字的所有邮件,但不了解其他内容。我们用关键字搜索定义了公钥加密的概念,并给出了几种构造。

介绍

假设用户Alice希望在多种设备上阅读她的电子邮件:笔记本电脑、台式机、寻呼机等。Alice的邮件网关应该根据电子邮件中的关键字将电子邮件路由到合适的设备。例如,当Bob发送带有关键字“紧急”的电子邮件时,该邮件被路由到Alice的寻呼机。当Bob发送带有关键字“午餐”的电子邮件时,该邮件被路由到Alice的桌面以便稍后阅读。人们期望每封电子邮件包含少量的关键词。例如,主题行中的所有单词以及发件人的电子邮件地址可以用作关键词。移动人员项目提供这种电子邮件处理功能。
现在,假设Bob使用Alice的公钥向Alice发送加密的电子邮件。电子邮件的内容和关键字都是加密的。在这种情况下,邮件网关看不到关键字,因此无法做出路由决定。因此,移动人员项目无法在不侵犯用户隐私的情况下处理安全电子邮件。我们的目标是使Alice能够给网关测试“紧急”是否是电子邮件中的关键字的能力,但是网关不应该了解关于电子邮件的任何其他信息。更一般地说,Alice应该能够指定邮件网关可以搜索的几个关键字,但不了解关于传入邮件的任何其他信息。我们在第节中给出了精确的定义。
为此,Bob使用标准的公钥系统加密他的电子邮件。然后,他将每个关键字的关键字搜索(PEKS)公钥加密附加到生成的密文上。为了发送带有关键字的消息M,Bob发送:
其中是Alice的公钥。这种形式的加密的要点是Alice可以给网关一个特定的陷门,使网关能够测试与消息相关联的关键字之一是否等于Alice选择的单词。给定,网关可以测试是否满足。如果网关不了解更多关于的信息。注意Alice和Bob在整个过程中没有交流。Bob根据Alice的公钥为生成可搜索加密。
在某些情况下,将电子邮件网关视为IMAP或POP电子邮件服务器是有启发性的。服务器存储**电子邮件,每封电子邮件包含少量关键字。和以前一样,所有这些电子邮件都是由不同的人用Alice的公钥加密发送给Alice的。我们希望Alice 能够提出以下形式的查询:服务器上的任何消息包含关键字“urgent”吗?Alice将通过给服务器一个陷门来做到这一点,从而使服务器能够检索包含关键字W的电子邮件。
相关工作。一个相关的问题涉及数据库数据的隐私。有两种不同的场景:公共数据库和私有数据库,每种场景的解决方案都是不同的。
私有数据库:在这种设置中,用户希望将其私有数据上传到远程数据库,并希望对远程数据库管理员保持数据私有。之后,用户必须能够从远程数据库中检索包含特定关键字的所有记录。奥斯特洛夫斯基在20**90年代初提出了解决这个问题的方法26]还有奥斯特洛夫斯基和戈德里奇[17]以及最近由宋在阿尔。[28]. 宋之解。至少28]需要用户和数据库之间很少的通信(与安全参数成比例),并且只需要一**互。对于每个查询,数据库执行线性大小的工作。的解决方案26,17]需要在用户和之间进行多对数循环(以数据库的大小为单位)数据库,但是允许数据库在每个查询中只进行多元对数运算。在某些情况下,另一个可能有吸引力的隐私要求是对数据库管理员隐藏有关访问模式的任何信息,即,如果某个项目被检索了不止一次,则某个项目根本没有被检索,等等。费一定工夫的事[26,17]以相同的多对数成本也实现了这一特性5针对数据库-用户交互和实际数据库工作的每个查询。我们强调[26,17]以及[10,28,16]仅适用于拥有其数据并希望将其上传到他们不信任的第三方数据库的用户的私钥设置。
公共数据库这里,数据库数据是公共的(例如股票报价),但是用户并不知道它,并且希望检索某个数据项或搜索某个数据项,而不向数据库管理员透露它是哪个项。简单的解决方案是用户可以下载整个数据库。公共信息检索(PIR)协议允许用户以比下载整个数据库小得多的通信量从公共数据库中检索数据。PIR首先被证明仅在存在相同数据库的**拷贝并且没有一个拷贝能够相互对话的情况下才是可能的[5].Kushilevitz和Ostrovsky证明PIR对于单一数据库是可能的[22](使用同态加密方案[19]).通信的复杂性[22] 解(即用户和数据库之间传输的比特数)是O(nє,其中n是数据库的大小,ϵ > 0。这被卡钦、米卡里和斯塔德勒简化为多对数开销[4].正如在中指出的[2[2],PIR的模型可以扩展到n取一的不经意传输和公共数据上的关键字搜索,并且在文献中受到了很多额外的关注(例如,参见[22,8,20,9,23,25,27].我们强调,在所有这些设置中,数据库是公共的,用户试图检索或找到某些项目,而不向数据库管理员透露它正在搜索什么。在单个公共数据库的设置中,可以表明数据库必须总是执行至少与数据库大小成线性关系的工作。
我们的问题不符合上面提到的两个模型中的任何一个。与私钥设置不同,邮件服务器收集的数据来自第三方,用户不能以任**便的方式“组织”这些数据。与公开可用的数据库不同,数据不是公开的,因此PIR解决方案不适用。
我们指出,在实际应用中,由于公钥加密的计算成本,我们的构造适用于搜索少量的关键字,而不是整个文件。最近,沃特斯等人[30]展示了可以使用带有关键字搜索的公钥加密来构建加密且可搜索的审计日志。中介绍了搜索加密数据的其他方法[16,12]。

带搜索的公钥加密的定义

本文中,我们使用可忽略函数来指代一个函数,其中,对于任意多项式和足够大的
我们首先精确定义什么是安全的带有关键字搜索的公钥加密(PEKS)方案。这里的“公钥”指的是不同的人使用Alice的公钥创建密文的事实。假设用户Bob将要向Alice发送带有关键字的加密电子邮件(例如,主题行和发件人地址中的单词可以用作关键字,所以k相对较小)。Bob发送了以下消息:

其中是Alice的公钥,msg是电子邮件正文,PEKS是一种算法,其特性将在下面讨论。PEKS值不会显示有关邮件的任何信息,但可以搜索特定的关键字。对于本文的其余部分,我们使用一个邮件服务器作为我们的示例应用程序,它存储所有传入的电子邮件。
我们的目标是使Alice能够向邮件服务器发送一个短的秘密密钥,这将使服务器能够定位所有包含关键字的消息,但不了解其他任何信息。爱丽丝用她的私人钥匙制造了这个陷门。服务器只是将相关的电子邮件发回给Alice。我们称这样的系统为带有关键字搜索的非交互式公钥加密,或者简称为“可搜索公钥加密”。
定义1。具有关键字搜索的非交互式公钥加密(我们有时将其缩写为“可搜索加密”)方案由以下多项式时间随机化算法组成:
1. :获取一个安全参数s,并生成一个公钥/私钥对
2. :对于一个公钥和一个字,生成的可搜索加密。
3. :给定Alice的私钥和一个字产生一个陷阱门
4. :给定Alice 的公钥,一个可搜索的加密,一个陷门,如果则输出“yes”,否则输出“no”。
Alice运行KeyGen算法来生成她的公钥/私钥对。她使用陷门为她希望邮件服务器或邮件网关搜索的任何关键字生成陷门。邮件服务器使用给定的陷门作为Test()算法的输入,以确定给定的电子邮件是否包含Alice指定的关键字W之一。
接下来,我们在语义安全的意义上定义了PEKS 的安全性。我们需要确保不会泄露任何关于W的信息,除非可用。我们定义了针对主动攻击者的安全性,主动攻击者能够为他选择的任何W获得活板门。即使在这样的攻击下攻击者应该不能区分关键字的加密和他没有获得陷门的关键字的加密。在形式上,我们使用挑战者和攻击者之间的以下游戏来定义针对主动攻击者的安全性(安全参数s作为输入提供给双方)。
PEKS安全游戏:
1. 挑战者运行算法生成。它给了攻击者
2. 攻击者可以自适应地向挑战者询问他所选择的任意关键字
3.在某些时候,攻击者A向挑战者发送两个单词,它希望在这两个单词上受到挑战。唯一的限制是攻击者之前没有要求的陷门。挑战者随机选取一个,给攻击者。我们将C称为PEKS挑战。
4. 攻击者可以继续向陷阱门TW请求任意关键字W,只要
5. 最终,攻击者A输出,如果,则获胜。
换句话说,如果攻击者能正确地猜出他得到的是还是的PEKS,他就赢了。我们定义A突破PEKS的优势为

定义2。如果对于任何多项式时间的攻击者a,我们有是一个可以忽略的函数,我们说PEKS对于自适应选择关键字攻击是语义安全的。
选择密文安全性。我们注意到,每当公钥加密系统在语义上安全时,定义2确保了式(1)中给出的构造在语义上是安全的。然而,就像这样,构造不是选择密文安全的。事实上,选中的密文攻击者可以通过重新排序方程(1)中的关键字并提交得到的密文进行解密来打破语义安全性。一种标准的技术可以使用[7]的方法使这种构造选择密文安全。我们把这个问题推迟到论文的完整版。

PEKS暗示基于身份的加密

基于关键字搜索的公钥加密与基于身份的加密(Identity Based encryption, IBE)有关。构建一个安全的PEKS似乎比构建一个IBE更困难。事实上,下面的引理表明PEKS意味着基于身份的加密。相反的说法可能是错误的。在[2]中定义了IBE的安全概念,特别是选定的密文安全IBE(IND-ID-CCA)。
引理1:一种非交互式可搜索加密方案(PEKS)对自适应选择关键字攻击具有语义安全性,从而产生了一种选择密文安全的IBE系统(IND-ID-CCA)。
证明示意图:给定, IBE系统如下:
1. 安装:运行PEKS KeyGen算法生成IBE系统参数为万能钥匙是
2. 密钥产生:与公钥相关联的IBE私钥是:
3. 加密:使用公钥作为:
4. 解密:解密使用私钥,如果输出‘0’,如果输出‘1’。
假设PEKS在语义上是安全的,可以证明产生的系统是ind-id-cca,以抵御自适应选择的消息攻击。
这表明,构建非交互式公钥可搜索加密至少与构建IBE系统一样困难。人们可能试图通过定义来证明相反的情况(即IBE隐含PEKS):

即,使用IBE公钥加密一串k个0。Test算法尝试解密,并检查生成的明文是否为。不幸的是,这并不一定会给出一个安全的可搜索加密方案。问题是密文CT可能会暴露用于创建CT的公钥(W)。通常,加密方案不需要隐藏用于创建给定密文的公钥。但这个属性对于(2)中给出的PEKS构造是必不可少的。我们注意到,Bellare等人以前研究过公钥隐私。
通常,构造一个可搜索的公钥加密似乎比构造一个IBE方案更难。尽管如此,我们的第一个PEKS构建是基于最近的IBE系统的构建。我们能够通过利用这个系统的额外特性来证明安全性。

构建

我们给出了公钥可搜索加密的两种构造:
(1)一种基于Diffie-Hellman假设(假设随机预言)的有效系统和
(2)一种基于一般陷门置换(不假设随机预言)的有限系统,但效率较低。

使用双线性映射的构造

我们的第一个构造是基于一个计算Diffie-Hellman问题的变体。博纳和富兰克林[2]最近使用椭圆曲线上的双线性映射建立了一个有效的IBE系统。理论上,他们使用了两个素数阶为p的群和他们之间的双线性映射。该映**足以下属性:
1. 可计算性:给定,有多项式时间算法计算
2. 双线性:对于任意整数,我们有
3. 非退化:如果g是的生成器,那么的生成器。
的大小由安全参数决定。我们利用这种双线性映射构造了一个非交互的可搜索加密方案。
构造基于[2]。我们需要hash函数。我们的PEKS工作原理如下:
KeyGen:输入安全参数决定组的大小p。该算法随机选取和一个生成器g。它输出
:首先计算随机。输出
:输出
:设。测试是否成立。如果是,输出“yes”;如果不是,输出“no”。
证明了该系统是一种非交互式可搜索的加密方案,在随机预言机模型中对选择的关键字攻击具有语义安全。安全性的证明依赖于双线性Diffie-Hellman问题(BDH)的难度。
双线性Diffie-Hellman问题(BDH):修复的生成器g。BDH问题如下:给定为输入,计算。我们说,如果所有多项式时间算法在求解BDH时都具有微不足道的优势,那么BDH是不可解决的。
我们注意到Boneh-Franklin IBE系统依赖于同样棘手的安全性假设。我们的PEKS的安全性用下面的定理证明。证明是建立在随机oracle模型上的。事实上,构建一个安全的IBE(也就是PEKS),而不使用随机预言机模型,目前是一个开放的问题。
定理1。假设BDH难以处理,上述非交互式可搜索加密方案(PEKS)在语义上是安全的,可以抵御随机预言机模型中所选择的关键字攻击。
证明:假设A是一种攻击算法,该算法在破解PEKS时优势为。假设A最多对进行哈希函数查询,最多对陷门查询(我们假设为正)。我们构造了一个算法B,以至少的概率解决BDH问题,其中e是自然对数的底。算法B的运行时间与算法A大致相同。因此,如果BDH假设在中成立,那么是一个可以忽略的函数,因此在安全参数中必须是一个可以忽略的函数。
设g是G1的生成函数。算法B给定。其目标是输出。算法B模拟挑战者,与伪造者A进行如下交互:
KeyGen:算法B首先给A一个公钥
:算法A在任何时候都可以查询到随机的预言机语句
为了响应H1查询,算法B维护了一个元组列表,称为。列表最初为空。当A在处查询随机预言机时,算法B的响应如下:
1. 如果查询已经出现在元组中,那么算法B响应
2. 否则,B生成一个随机硬币,使
3. 算法B随机选取如果,B计算如果,B计算
4. 算法B将元组添加到中,并通过设置来响应A。请注意,中是统一的,并且根据需要独立于A的当前视图。
类似地,在任何时候A都可以向发出一个查询。算法B通过为每个新的t选择一个新的随机值,并设置来响应对的查询。另外,B通过将对添加到列表来跟踪所有的查询。列表最初是空的。
陷门的查询。当A对单词算法对应的陷门发出查询时,B的响应如下:
1. 算法B运行上述算法响应查询,得到,使。让中对应的元组。如果,则B报告失败并终止。
2. 否则,我们知道,因此。定义。观察到,因此是公钥下关键字的正确活动门。算法B将赋给算法A。
挑战。最终,算法A生成一对关键字,希望对其提出质疑。算法B生成挑战PEKS如下:
1. 算法B运行上述算法响应查询,得到,使。让中对应的元组。如果,则B报告失败并终止。
2. 否则,我们知道,因此。定义。注意到,因此是公钥下关键字Wi的正确活动门。算法B将赋给算法A。
挑战。最终,算法A生成一对关键字,希望对其提出质疑。算法B生成挑战PEKS如下:
1. 算法B运行上述算法两次响应,得到一个,使。对于,让上对应的元组。如果,则B报告失败并终止。
2. 我们知道中至少有一个等于0。算法B随机选取一个,使(如果只有一个等于0,则不需要随机性,因为只有一个选项)。
3. 算法B对一个随机响应挑战PEKS
注意,这个挑战隐式定义了。换句话说,
根据这个定义,C是需要的有效PEKS。
更多的陷门的查询。A可以继续对关键字发出陷门查询,其中唯一的限制是。算法B像以前一样响应这些查询。
输出。最终,A输出其猜测,表示挑战C是还是的结果。此时,算法B从中选择一个随机对,并输出作为对的猜测,其中是挑战步骤中使用的值。这样做的原因是,正如我们将展示的,A必须发出了对的查询。因此以1/2的概率包含一对,其左手边是。如果B从中选择这对,那么
这就完成了算法B的描述,还需要证明B正确输出的概率至少为。为此,我们首先分析B在模拟过程中不中止的概率。我们定义了两个事件:
:B不会因为A的任何陷门查询而中止。
:B在挑战阶段不会中止。
首先,我们认为在[6]中事件都有足够大的概率发生。
断言1:算法B不因a的陷门查询而中止的概率至少为。因此,
证明:在不失一般性的前提下,我们假设A不会两次请求相同关键字的活板门。一个陷门查询导致B中止的概率是。为了看到这一点,让是a的第i个陷门查询,并让上对应的元组。在执行查询之前,位ci是独立于A的视图的——可以给A的唯一依赖的值是,但是无论还是上的分布是相同的。因此,该查询导致B中止的概率最多为。由于A最多进行陷门查询,那么B在所有活动门查询中不中止的概率至少为
断言2:算法B在挑战阶段不中止的概率至少为。因此,
证明。如果A能够产生,算法B将在挑战阶段中止,,其中对于,元组是与对应的元组。由于A没有为查询陷门,我们有都是独立于A的当前视图。因此,由于对于,和两个值是相互独立的,我们得到。因此,B不中止的概率至少为
注意,由于A永远不能对挑战关键字发出陷门查询,所以两个事件E1和E2是独立的。因此,
注意,由于A永远不能对挑战关键字发出陷门查询,两个事件是独立的。因此,
要完成定理1的证明,还需要证明B输出给定BDH实例的解的概率至少为。为了做到这一点,我们展示了在模拟过程中,A发出对的查询,其概率至少为
断言3:假设在一个真实的攻击博弈中,给出了A的公钥, A要求对进行挑战。对此,给A一个挑战。然后,在真正的攻击游戏中,A对发出查询,概率至少为
证明。设为在实际攻击中A没有对中的任何一个发出查询的事件。那么,当发生时,我们知道表示C是还是的PEKS的位与A的视图无关。因此,A的输出将满足,概率最多为。由A的定义可知,在真实攻击中。这两个事实表明,。为此,我们首先推导出的简单上下界:





。因此,在实际攻击中,按要求
现在,假设B不中止,我们知道B完美地模拟了一个真实的攻击游戏,直到a发出的查询。因此,根据权利要求3,在模拟结束时,A将发出对的查询,概率至少为。由此可见,A对发出了查询概率至少。因此,值将出现在中某些对的左边。算法B将以至少的概率选择正确的对,因此,假设B在模拟过程中没有中止,它将以至少的概率产生正确的答案。由于B不以至少的概率终止,我们看到B的成功概率至少为所需的

使用任何陷门排列的有限构造

我们的第二个PEKS构造基于一般的陷门排列,假设用户希望搜索的关键字的总数受安全参数中的某个多项式函数的限制。(作为我们构建的第一步,我们将做一个更强的假设,即字典中单词的总数也受多项式函数的限制,我们稍后将展示如何消除这个额外的假设。)我们还需要一系列语义安全的加密,对于给定的密文,很难计算出该密文与哪个公钥相关联。这个概念由Bellare等人[1]形式化。我们说具有此属性的公钥系统是源无法区分的。更准确地说,加密方案(G,E,D)的源不可区分性是使用挑战者和攻击者A之间的以下博弈来定义的(这里G是密钥生成算法,E/D是加密/解密算法)。安全参数s给定给两个参与者。
来源不可区分安全游戏:
1. 挑战者运行算法G(s)两次,生成两个公私钥对
2. 挑战者选择一个随机的和一个随机的,计算一个加密。挑战者给攻击者(M,C)。
3. 攻击者输出,如果则获胜。
换句话说,如果攻击者正确地猜出他得到的是下的M加密还是下的M加密,他就赢了。我们将A的获胜优势定义为:

定义3。如果对于任何多项式时间攻击者A,我们有是一个可以忽略的函数,我们就说一个公钥加密方案是源不可区分的。
我们注意到Bellare等人[1]通过允许对手选择挑战消息m,定义了一个比上面更强的源不可区分的概念。对于我们的目的,给对手一个随机消息的加密就足够了。
很容易检查从任何陷门排列族中都可以获得源不可分辨性,其中对于给定的安全参数,该排列族中的所有排列都在同一域上定义。这样一个家族可以由[1]中描述的任何活板门排列家族构成。然后对比特b进行加密,我们随机选取一个x,输出,其**L为Goldreich-Levin硬核比特[19]。因此,我们得到以下引理:
引理2:对于任意的陷门排列族,我们可以构造一个语义安全的源无区别加密方案。
我们注意到源不可区分性与语义安全性是正交的。我们可以构建一个源不可区分的语义安全系统(通过在每个密文中嵌入公钥)。相反,可以构建一个在语义上不安全的源不可区分的系统(通过在每个密文中嵌入明文)。
一个简单的陷门排列的PEKS。当关键字族Σ具有多项式大小(在安全参数中)时,很容易从任何源不可区分的公钥系统(G,E,D)构造可搜索的加密。设s为该方案的安全参数。
KeyGen:对于每个运行G(s)来生成一个新的源无区别加密方案的公钥/私钥对。PEKS公钥为。私钥为
:随机选取,输出,即使用公钥对M进行加密。
:单词W的陷门就是
:测试解密。如果是输出'yes',否则输出'no'。
注意,字典的大小必须是多项式大小,这样公钥和私钥的大小才能是多项式大小。
这种构造给出了一个语义安全的PEKS,如下面的简单定理所述。语义安全的PEKS的定义与定义2相同,只是不允许对手进行所选的关键字查询。
定理2。假设底层公钥加密方案(G,E,D)是源不可区分的,上述PEKS方案在语义上是安全的。
证明草图:设为关键字字典。假设我们有一个PEKS攻击者A,其中。我们构建了一个攻击者B,它破坏(G,E,D)的源不可区分性,其中
这个缩减是立即的:给B两个公钥和一对,其中M在中是随机的,。算法B使用G(s)生成k-2个额外的公钥/私钥。它将创建为所有k个公钥的列表,其中嵌入在列表中的一个随机位置。设为与公钥相关的单词。B将发送给A,A回复两个词, A希望在这两个词上受到质疑。如果算法B报告失败,终止。否则,B向A发送挑战(M,C),然后A用回应。算法B输出作为对源不可分辨性挑战的响应。我们得到,如果算法B没有中止并且A的响应是正确的。这发生的概率至少是因此,需要满足
我们注意到,这个PEKS可以被视为派生自具有有限数量身份的IBE系统。对于每个身份,都有一个预先指定的公钥。Dodis等人[13]的研究中暗示了这种IBE系统。他们建议使用无覆盖集系统来减少公钥的大小。下面我们应用相同的思想来减少上面PEKS中公钥的大小。
减少公钥大小。上述方案的缺点是公钥长度随字典总大小线性增长。如果我们有一个用户将释放到电子邮件网关的关键字t陷门总数的上限(尽管我们不需要先验地知道这些关键字),我们可以使用无覆盖族[15]做得更好,并且可以允许关键字字典呈指数级大小。因为通常情况下,用户只允许第三方(如电子邮件服务器)搜索有限数量的关键字,因此假定发布的陷门数量的上限是合理的。我们首先回顾一下无保险家庭的定义。
定义4。非覆盖的族。设d, t, k为正整数,设G为大小为d的ground集合,设是G的子集的一个族,我们说子集不包括,如果它成立。如果F中的每个子集都不被F中的t个子集的并集覆盖,我们就说G上的F族是t覆盖自由的。此外,如果子集族中的所有子集的大小都是q一致的,我们就说一个子集族是q一致的。
我们将从[14]使用以下事实。
引理3。存在一个确定性算法,对于任意固定的t, k,在大小为d的地面集上构造一个q均匀t覆盖自由族F,对于
PEKS。以前面的PEKS构造为起点,我们可以通过允许用户为不同的关键字重用单个公钥来显著减小公共文件的大小。我们将从免覆盖系列中选择的公钥子集关联到每个关键字。设k为字典的大小,设t为用户Alice发布到邮件网关的关键字陷门数量的上限。设d,q满足引理3的界。PEKS(d, t, k, q)构造如下:
KeyGen:当时运行算法G(s)为源不可区分加密方案生成新的公钥/私钥对。PEKS公钥为。私钥为:。我们将使用一个q一致的t覆盖自由的子集族。因此,每个都是公钥的一个子集。
:设为单词的子集。令。取随机信息,令M = M1⊕···⊕Mq。输出元组:

:设是单词的子集。单词的活动门只是一组私有密钥,对应于集合中的公共密钥。
:令,令做一个PEKS。当使用私钥对每个进行解密,得到。如果,则输出'yes',否则输出'no'。
公钥文件的大小现在小了很多:是字典大小的对数。缺点是Alice只能向电子邮件网关释放t个关键字。一旦陷门被打开,隐私就不再有保障了。另外,请注意PEKS的大小现在更大了(字典大小为对数,t为线性)。定理2的以下推论表明,得到的PEKS是安全的。
推论1:让d,t,k,q满足引理3的界。假设基础公钥加密方案(G,E,D)的源不可区分且在语义上是安全的,并且对手不进行超过t次的陷门查询,上述方案在选择的关键字攻击下是语义安全的。
证明草图:设为关键字字典。假设我们有一个PEKS攻击者a,其中。我们构建一个攻击者B,破坏(G,E,D)的源不可区分性。
算法B给定两个公钥和一对,其中M在内是随机的,对于。它的目标是通过与a交互输出对b的猜测。算法B使用G(s)生成d−2个额外的公钥/私钥。它将创建为所有d公钥的列表,其中嵌入在列表中的一个随机位置。设为与公钥相关的单词。
算法B给定两个公钥和一对,其中M在内是随机的,对于它的目标是通过与a交互输出对b的猜测。算法b使用生成d-2个额外的公钥/私钥。它将创建为所有d公钥的列表,其中嵌入在列表中的一个随机位置。为与公钥相关的单词。
B向A发送,算法A发出多达t个陷门查询。B对的活板门查询的响应如下:设是单词W对应的子集,如果算法B报告失败并中止。否则,B给A一个私钥集合
在某一时刻,算法A输出两个单词,它希望在这两个单词上被挑战。设分别为对应的子集。设E为的事件。如果事件没有发生,则B报告失败并终止。
我们现在知道。对于。我们对一些随机的进行排列,使。接下来,B选取随机的,集合。算法B定义了以下混合元组:

它将R作为PEKS对算法A的挑战。算法A最终以某个作出响应,表示R是还是。算法B输出作为其对B的猜测。可以使用一个标准的混合参数表明,如果B不中止,那么。B不因活动门查询的结果而终止的概率至少为。B不因选择单词而中止的概率至少是。因此,B不中止的概率至少为,重复运行B直到不中止,表明在A的运行时间中,我们可以在打破在期望多项式时间内的源不可区分性方面获得的优势。

使用雅可比符号构造

考虑到基于身份的加密和PEKS之间的关系,由于Cocks[3],从IBE系统构建PEKS是很**的。Cocks的IBE系统的安全性是基于对模的二次残基与非残基的区分困难,其中
不幸的是,Galbraith[11]表明[3]中所描述的Cocks系统不是Bellare等人[1]意义上的公钥私有。因此,Cocks系统似乎不能直接用于构建PEKS。它提供了一个很好的例子,构造PEKS是一个比构造IBE更难的问题。

结论

我们定义了关键字搜索公钥加密(PEKS)的概念,给出了两种构造。构建PEKS与基于身份的加密(IBE)有关,尽管PEKS似乎更难构建。我们展示了PEKS意味着基于身份的加密,但反过来是目前一个开放的问题。我们对PEKS的建设是基于最近的IBE建设。我们能够通过利用这些方案的额外特性来证明安全性。

致谢

我们感谢Glenn Durfee建议在3.1节的构造中使用。我们感谢叶夫根尼·多迪斯(Yevgeniy Dodis)、大卫·莫尔纳(David Molnar)和史蒂文·加尔布雷思(Steven Galbraith)对这项工作的有益评论。