序揭示加密新构造与应用

揭示顺序的加密:新构造、应用及下界

摘要

在过去几年中,人们对开发加密数据搜索方法表现出了极大的兴趣。对于范围查询而言,一种简单的解决方案是使用保序加密(OPE)方案对数据库内容进行加密(即支持对加密值进行比较的加密方案)。然而,Naveed 等人(CCS 2015)最近表明,采用 OPE 加密的数据库极易受到“推理攻击”。

在这项工作中,我们考虑了一种相关的原语,称为序揭示加密(order-revealing encryption, ORE),它是OPE的推广,能够实现更强的安全性。我们首先为小消息空间构造了一个新的ORE方案,该方案达到了ORE的“最优安全性”概念。接下来,我们引入一种“域扩展技术”,并将其应用于我们的小消息空间ORE方案。尽管我们的域扩展技术会带来一定的安全性损失,但最终得到的ORE方案仍比所有现有的(无状态且非交互式)实用OPE和ORE方案更加安全。我们所有的构造仅依赖于对称原语。作为分析的一部分,我们还给出了OPE的一个紧的下界,并证明如果消息空间仅包含三条消息,则不存在任何高效的OPE方案能满足最优安全性。因此,即使对于小消息空间,要实现强安全性概念也必须超越OPE。

最后,我们研究了新ORE方案的性质,并展示了如何利用它构建一种高效的范围查询协议,以抵御Naveed等人提出的推理攻击。我们还完整实现了新的ORE方案,结果表明,我们的方案不仅比现有的OPE方案更安全,而且速度更快:加密一个32位整数仅需55微秒,比现有的OPE方案快65倍以上。

1. 引言

如今,大型企业和政府收集和存储的有关我们的个人信息比以往任何时候都多。随着针对公司和组织的高调数据泄露事件(如安森[1],易贝[39],和美国选民数据库[26])变得令人震惊地普遍,开发在云中保护我们个人信息的实用手段变得至关重要。

减轻数据库泄露造成损害的一种方法是在将数据存储到云之前对其进行加密。然而,这会带来功能上的代价:一旦数据被加密,在不解密数据的情况下对数据执行搜索将变得更加困难。因此,安全研究人员开始致力于开发既能保护数据库内容,又能支持对加密数据进行高效操作(如搜索)的方法。

保性质加密

支持在加密数据库上进行搜索的一种方法是使用保性质加密(PPE)[9, 48, 21]。PPE方案是一种加密方案,其中密文会揭示其对应明文的某种特定性质。例如确定性加密,其密文中透露消息之间的相等性;以及顺序保持加密(OPE)[2, 9],,其密文揭示消息的顺序关系。确定性加密和顺序保持加密方案已被用于CryptDB [51],,并由SkyHigh网络、 CipherCloud、谷歌加密BigQuery等公司实现商业化应用。PPE在加密关系型数据库中的主要优势之一是其轻量性,因此可以以最小改动部署到现有数据库中。例如,在OPE方案中,密文本身为数值形式,且密文的顺序与明文的顺序完全一致。因此,对使用OPE加密的列进行搜索 iden-tical等同于对未加密列进行搜索。

PPE 和 OPE 的局限性

尽管 PPE,特别是 OPE,为加密数据上的搜索提供了实用的解决方案,但这些方案也会泄露其底层明文的大量信息。例如,Boldyreva 等人 [10]表明,一个 single OPE 密文会泄露其对应明文最高有效位的一半比特!

最近,Naveed 等人 [46] 描述了一系列针对使用确定性加密和保序加密方案加密的关系型数据库的推理攻击。他们表明,仅需一个加密数据库的数据转储以及来自公共数据库的辅助信息,即可进行攻击。攻击者能够成功地从各自的密文中恢复几乎所有的明文值。

Our goals

受现有OPE方案安全性有限以及针对使用PPE加密的数据库的新兴推理攻击威胁的启发,本文的目标是构建一种实用的保性质加密方案,用于比较操作,该方案相较于现有的OPE方案能提供更强的安全性保证,同时具备抗离线推理攻击能力,例如Naveed等人所考虑的此类攻击。

可揭示顺序加密

为了克服OPE的局限性,我们依赖于一种密切相关但更灵活的概念,称为可揭示顺序加密(ORE) [12, 22]。在本研究中,我们专注于非交互式和无状态的方案——这些是我们所知的唯一被大规模部署的方案。我们在第8节中回顾了替代解决方案的相关工作。

在OPE方案中,明文空间和密文空间都必须是数值型且具有良序性。此外,密文本身保留了底层明文的顺序。尽管这一特性使得OPE适用于对加密数据执行范围查询,但它也限制了OPE方案所能达到的安全性。在他们的开创性工作中, Boldyreva 等人 [9]提出了OPE的“尽可能最佳”语义安全概念,即密文除了泄露明文的顺序外,不泄露任何其他信息。遗憾的是,在同一项工作以及后续工作 [10],中,他们证明了任何具备尽可能最佳安全性的OPE方案,其密文长度必须随着明文长度呈指数级增长。波帕等人 [50]进一步将此下界扩展到适用于有状态、交互式的OPE方案。这些下界排除了为大消息空间构造高效OPE方案的可能性。作为一种折衷, Boldyreva 等人 [9]引入了一种较弱的安全性定义(POPF-CCA)用于OPE方案,但很难量化满足POPF-CCA安全的方案所导致的泄露程度。

最近,Boneh 等人 [12]提出了有序加密(ORE)的概念,该概念对密文空间的结构 not不施加任何限制。一个 ORE 方案仅要求存在一个可 publicly计算的函数来比较两个密文。通过放宽对密文空间的约束,Boneh 等人的方案成为首个实现最优语义安全性的(非交互式且无状态的)方案。然而,他们的构造依赖于多线性映射[14, 27, 23],,距离实际可用还非常遥远。更近一些,Chenette 等人[22]提出了一种新的 ORE 安全模型,该模型明确描述了 ORE 方案的信息泄露情况。他们还给出了第一个可高效实现的 ORE 方案。但他们的方案同样会泄露两个加密值之间首个不同比特的索引。

1.1 有序加密的左/右框架

在描述我们的主要贡献之前,我们首先强调本文所采用的有序加密“左/右”框架。我们的概念借鉴了多输入函数加密的类似定义[33,12],,其中加密函数作用于不同的“输入槽”。

在多输入函数加密方案(ORE 是其特例)中,只有当拥有某个 every 槽的密文时,明文的信息才会被揭示。

我们现在描述将消息加密到不同输入槽这一概念如何应用于可揭示顺序加密。在普通ORE方案中,存在单一的加密算法,它接收一个消息并输出一个密文。比较算法随后接收两个密文,并输出这两个底层消息之间的比较关系。在左右框架中,我们修改了这一接口,将加密函数拆分为两个独立的函数:一个“左”加密函数和一个“右”加密函数。每个加密函数分别接收一个消息和密钥,并输出相应的“左”密文或“右”密文。接下来,比较函数不再接收两个密文,而是接收一个左密文和一个右密文,并输出这两个底层消息(分别由左密文和右密文加密)之间的比较关系。我们注意到,任何在左右框架中的 ORE方案都可以通过让ORE加密函数对给定消息同时输出左密文和右密文的方式,转换为通常意义上的ORE方案。

这种左右概念是对通常的可揭示顺序加密概念的严格推广,因此可用于加强ORE方案所提供的安全保证。特别是,在此框架下工作的一个关键优势在于,我们现在可以独立地对左密文或右密文集合定义额外的安全性要求。例如,在本文提出的两个ORE构造(第3节和第4节)中,单独获取的一组右密文是语义安全的——也就是说,仅给定一组右密文时,不会泄露关于底层明文的任何信息(包括它们的顺序关系)。在第5节中,我们将详细描述如何利用右密文的语义安全性来构建一种能够抵御离线推理攻击的范围查询协议。我们还注意到,本文提出的方案是首个在左右框架下的实用ORE构造,其中一侧(右密文)实现了语义安全。

最后,我们注意到左右框架可以自然地扩展到保性质加密方案,从而为在加密数据上搜索开发更安全的密码学原语开辟了许多新的途径。

1.2 我们的贡献

在这项工作中,我们描述了一种新的ORE方案,与现有的实用OPE和ORE方案相比,实现了更强的安全性,同时还提出了一种利用该新ORE方案高效执行范围查询并提供对推理攻击的鲁棒性的方法。现在我们重点介绍我们的主要贡献。

一种高效的小域ORE

我们首先给出了第一个实用的 small-domain ORE方案构造,该方案具有 best-possible语义安全,且仅依赖于伪随机函数(PRFs)。1之所以限制在“小”域,是因为在我们的方案中,密文长度随明文空间的大小线性增长。所有现有在小域设置下实现最优安全性的ORE构造均依赖于配对[42],通用功能加密[3, 16],或多线性映射[12],,因此尚不具备实用性。我们特别提出的

我们在随机预言模型中证明了安全性,但有可能用伪随机函数替换随机预言机,以在稍弱的基于不可区分性的安全概念下证明安全性。

该构造受到Boneh等人[13, §4.1]提出的函数加密“暴力破解”构造的启发。他们表明,对于“小”(即多项式规模的)函数类,可以仅使用对称原语来构造函数加密。我们调整这些方法,以展示当 message space较小时,如何从对称原语高效地构造最优可能的ORE(以及更一般的函数加密)。我们的构造在第3节中描述。

ORE的域扩展

当然,小域ORE本身对范围查询的帮助不大。我们的第二个贡献是将Chenette 等人 [22]ORE构造重新表述为一种通用技术,即从小域ORE构建大域ORE。这种转换并不完美,会带来一定的泄露。将此域扩展技术应用于我们新的小域ORE,我们得到了一个泄露特征明显优于Chenette 等人构造的 ORE方案。具体而言,我们的新 ORE方案以块(其中块是一个比特序列)为操作单位,且在我们的方案中额外泄露的信息仅为两个消息首次不同的第一个块的位置。例如,如果块的大小为字节(8比特),则我们的ORE方案仅揭示两个消息之间首个不同字节的索引(不再泄露其他信息)。相比之下,Chenette 等人 的构造总是会泄露首个不同 bit的索引2。因此,我们的新ORE构造在付出密文略长的代价下,提供了显著更强的安全性。

加密范围查询

尽管我们的新型ORE方案几乎可以作为 OPE的即插即用替代方案,以实现对加密数据库的搜索,但该方案仍然容易受到离线推理攻击。Naveed 等人[46]实施其推理攻击时,依赖于OPE加密密文能够进行等值测试和比较(这是设计上的特性)。在我们的设定中,我们利用ORE方案中密文的特殊结构,提出了一种支持在加密数据上执行范围查询的方法,同时能够防范离线推理攻击。

我们的范围查询协议关键依赖于这样一个事实:我们的 ORE方案是一种左右ORE方案(第1.1节)。更准确地说,在我们的ORE方案中,一个密文ct自然地分解为左分量ctL和右分量ctR。为了比较两个密文,比较函数仅需要一个密文的左分量和另一个密文的右分量。更重要的是,右分量具有这样的性质:它们是其对应消息的 semantically-secure加密。为了构建具备抗范围查询能力的加密数据库系统,数据库服务器仅存储“右”密文(按排序顺序)。当执行范围查询时,客户端提供与其查询范围对应的“左”密文。由于可以在左密文和右密文之间进行比较,服务器可以像往常一样响应范围查询。抗离线推理攻击能力得以保证,因为数据库转储仅包含存储在服务器上的右密文,而这些右密文是语义安全的。

尽管 Chenette 等人也描述了其方案的多比特推广版本,但该推广版本会泄露 more信息,即第一个不同块中值的差值。而在我们的构造中,仅泄露索引,其他信息均不泄露。3我们使用“几乎”一词,是因为在数据库元素上用 ORE 替代 OPE 需要编写一个自定义比较器。其底层消息的加密。我们将在第5节中更详细地描述我们的方法。

OPE的新下界

我们新的ORE构造中的核心构建模块是一种具有最优安全性的小域ORE。这引发了一个自然的问题:我们是否可以构造一种同样实现最优安全性的小域OPE?此前, Boldyreva 等人 [9, 10] [50] 和波帕等人给出了下界结果,排除了密文空间在明文空间大小上为次指数级的方案。但当明文大小为安全参数 λ 的多项式 poly(λ) 时,可能存在一种高效的OPE方案实现最优安全性。在本文中,我们证明这实际上是不可能的。与 [9, 10,50], 所用技术完全不同,我们证明(第6节) no efficient (无状态且非交互式)OPE方案无法满足最优安全性,即使消息空间仅包含3个元素!因此,为了在小域设置中实现强安全性,有必要考虑OPE的松弛形式,例如有序加密。

实验评估

最后,我们实现并比较了我们的新ORE方案与 Chenette等人提出的ORE方案[22]以及Boldyreva等人提出的OPE方案[9]。在典型参数下,我们的新ORE方案比 Boldyreva等人的方案快65倍以上,但密文更长。例如,在处理字节大小的块时,加密一个32位整数仅需 55 µs,并生成长度为224字节的密文。通常情况下,范围查询不会在极长字段上执行,因此我们方案额外的空间开销是合理的。鉴于我们的方案在在线和离线环境下的安全性更优且吞吐速度更快,该 ORE方案是现有OPE方案极具吸引力的替代选择。

应用ORE

最后,我们提醒注意,由于任何有序加密( ORE)方案都存在泄露问题,该原语并不总是适用于对安全性要求很高的应用场景。然而,我们希望通过通过对我们的构造方案在支持加密数据库查询时的泄露特征(在在线和离线环境下)进行精确、具体的刻画,实践者能够更明智地判断我们的构造方案是否适合特定应用。

2. 预备知识

对于 n ∈ N,我们用[n]表示整数集{1,…, n}。如果 P 是定义在 x上的谓词P,我们用1(P(x))表示 P的示性函数: 即当且仅当 P(x) = 1时,1(P(x)) = 1,否则为0。对于分布 D,我们用 x← D表示从 D中的一次采样。对于有限集合S,我们用 x ←−r S表示从S中均匀随机选取一个元素。在本文中, 我们用 λ表示安全性参数。我们称函数 f(λ)在 λ中是可忽略的,如果对所有 c ∈ N均有 f= o(1/λ c )。我们用negl(λ)表示关于 λ的一个可忽略函数,poly(λ)表示关于 λ的一个多项式。若某个事件发生的概率为negl(λ),则称该事件以可忽略概率发生。对于两个比特串 x, y,我们用 x‖y表示 x与 y的拼接。

我们还回顾了伪随机函数(PRFs)[31]的标准定义。一个函数 F: K×X → Y是一个安全的伪随机函数,如果没有任何高效敌手能够区分(也许除了…)

以可忽略概率,对手无法区分在随机选择的 k ←−r K 下, F(k, ·)在任意自适应选择点上的输出与从 X 到 Y 的真正随机函数 f (·)的输出。类似地,若对所有 k ∈ K,F k X (, ·)是 上的一个置换,且没有任何高效敌手能够区分当 k ←−r K时 F(k, ·)的输出与当 π 是 上的一个随机置换时 π(·)的输出,则称函数 F: K × X → X 是一个安全的伪随机置换 (PRP)。

2.1 可揭示顺序加密

一个可揭示顺序的加密 (ORE) 方案 [12, 22] 是定义在全序域 D 上的三个算法 Π= (ORE.Setup, ORE.Encrypt, ORE.Compare) 的元组,具有以下性质:

  • 有序加密.设置算法 (1λ) → sk:输入一个安全性参数 λ,设置算法输出一个秘密密钥sk。
  • 有序加密.加密 (sk m) → ct: 输入一个秘密密钥sk和一个消息 m ∈ D,加密算法输出一个密文ct。
  • 有序加密.比较 (ct1,ct2) → b:输入两个密文ct1, ct2,比较算法输出一个比特 b ∈{0, 1}。

正确性。 我们说一个在全序域 D 上的有序加密方案是正确的, 如果对于 sk ←ORE.Setup(1λ) 以及所有消息 m1, m2 ∈ D,Pr[ORE.Compare(ct1, ct2)= 1(m1< m2)]= 1 − negl(λ).

Remark 2.1 (ORE Decryption). Our above schema for ORE does not include a decryption function but as noted by Chenette et al.[22, Remark 2.3], this is without loss of generality. In particular, we can construct a decryption algo-rithm . . and . ORE解密 using the ORE 加密 ORE 比较 algorithms(by performing a binary search).

安全性。 对于顺序揭示加密,“最佳可能”的安全概念是由 Boldyreva 等人[9]提出的在有序选择明文攻击下的不可区分性(IND-OCPA)。IND-OCPA 安全概念是语义安全 [34], 的推广,其指出:只要两个消息序列中的消息顺序相同,任何高效敌手都无法区分这两个消息序列的加密结果。我们在完整版本中给出形式化定义 [43]。

由于构建满足 IND-OCPA 安全性的高效方案显然存在困难,Chenette 等人 [22]提出了一种较弱的基于模拟的 ORE 方案安全性概念,允许泄露除明文顺序之外的一些信息。我们在此回顾他们的定义。

Definition 2.2 (ORE with Leakage[22]). LetΠ be an ORE scheme—that is Π= . . ,(有序加密 设置, 有序加密 加密,有序加密.比较) and let A= be an adversar y f or some q = A 1 A q λ. Let S= S 0 S 1 … S q (,…,) poly( ) (,,,) be a simulator and let L · ,( ) be a leaka g e f unction. We define the ex p eriments ore A λ and ore A S L λ in Fi g ure 1. We REAL ( ) SIM ,,( ) sa y that Π is a secure ORE scheme with leaka g e f unction L · i f f or all p ol y nomial-size adversaries A= A 1 … A q ( ) (,,) there exists a p ol y nomial-size simulator S= S 0 S 1 S q (,,…,) such that the out p uts o f the two distributions REAL ore A (λ) andSIM ore A , S , L(λ) are com p utationall y indistin g uishable.

Remark 2.3 (Best-Possible Security). The strongest notion of simulation-security is security with respect to the leakage function that only reveals the ordering of the plain-texts. This is the minimal leakage possible from an order-revealing encryption scheme. In particular we define Lcmp,as f ollows: Lcmp(m1,…, mt)={(i, j, cmp(mi, mj) | 1 ≤ i< j ≤ t)}, where cmp is the comparison function that outputs−1 if mi< mj mi mj 0 if mi= mj and 1 if mi> mj. (,) ,

3. 小域的有序加密

可揭示顺序加密在[22]中揭示了大量信息,即两个加密明文之间第一个不同的比特位置的索引。在此工作中,我们展示了如何构造一种有序加密方案,该方案仅泄露第一个不同的 block,其中块是由一个或多个比特组成的集合。例如,我们可以构造一种有序加密方案,该方案仅揭示两个加密明文之间第一个不同的 byte,而不再泄露其他任何信息。

我们构造的起点是一种具有最佳模拟安全性的“小域”有序加密方案。其局限性在于,该有序加密方案中密文的长度随消息空间的大小线性增长,因此只能适用于小域(即多项式规模的域)。我们在第4节中展示如何扩展我们的小域有序加密,以获得适用于大域(即指数大小的域)的可揭示顺序加密方案,并且相比Chenette等人[22]的方案,泄露的信息更少。

如第1.1节所述,我们在左右框架中给出有序加密的构造,其中将ORE.Encrypt函数分解为两个函数:ORE.EncryptL和ORE.EncryptR。我们分别称它们为“左加密”和“右加密” 函数。我们特定的构造具有如下性质:只有“左密文”才能与“右密文”进行比较。注意这并不失一般性,我们只需将 ORE.Encrypt(sk m)的输出定义为元组(ORE.EncryptL(sk m), ORE.EncryptR(sk m)),即可恢复通常意义上的有序加密。

3.1 小域ORE构造

我们首先概述构造的高层思路。我们的方案定义在明文空间[N]上,其中 N= poly(λ)。首先,我们将域中的每个元素 x ∈[N]与一个加密密钥 kx相关联。值 y ∈[N]的(右)密文由对 N个比较输出 cmp(x, y)的加密组成,这些比较是在 y与域中每一个元素 x ∈[N]之间进行的,其中值 cmp(x, y) 使用 k x进行加密。值 x的左加密就是加密密钥 k x。给定 k x 以及 cmp(x, y)在 k x下的加密,评估者可以解密并获知比较比特 cmp(x, y)。其他比较比特的值则由加密方案的语义安全所隐藏。然而需要注意的是,我们仍需一种方式使得评估者能够确定 N个(右)密文中哪一个是在 k x 下加密的,而不泄露 x 的值。为确保这一点,我们在设置阶段对域[N]采样一个随机置换 π。然后根据 π对右密文中的分量进行置换,并且 x的左加密包含置换后的位置 π(x)。给定 π(x)后,评估者可得知应解密右密文中的哪一个分量,但无法获知 x的值。最后,为了展示模拟

REALore A(λ):
1. sk ←有序加密.Setup(1λ)
2. (m1,stA) ← A1(1λ)
3. c1←有序加密.加密(sk m1)
4. 对于 2 ≤ i ≤ q:
(a)(mi,状态A)←Ai(状态A, c1,…, ci−1)
(b) ci←有序加密.加密(sk mi)
5. 输出 (c1,…, cq) 和 stA

SIMore A,S,L(λ):
1. 状态S← S0(1λ)
2. (m1,stA) ← A1(1λ)
3. (c1,stS) ← S1(stS, L(m1))
4. 对于 2 ≤ i ≤ q:
(a)(mi,状态A)←Ai(状态A, c1,…, ci−1)
(b) (ci, stS) ← Si(stS, L(m1,…, mi))
5. 输出 (c1,…, cq) 和 stA

图 1:具有泄露的有序加密(ORE)的真实与理想实验(定义 2.2)。

模拟安全要求我们使用“非承诺”加密方案,为此我们依赖于随机预言机 [6].4

构造。 设 [N] 为消息空间。令 F: {0, 1}λ×{0, 1}λ→{0, 1}λ {0, 1}λ× {0, 1}λ→ Z3 H 为一个安全的伪随机函数,: 为一个哈希函数(在安全性证明中建模为随机预言机)。令 cmp 为备注2.3中的比较函数。我们的ORE方案 Π(s) ore 定义如下:

  • 有序加密.设置 (1λ)。该设置算法为 F生成一个伪随机函数密钥k ←−r{0, 1}λ,以及一个均匀随机置换π: [N]→[N]。秘密密钥sk是(k, π)这一对值。
  • 有序加密.加密L (sk x)。将sk写作(k, π)。左加密算法计算并返回元组密文ctL=(F(k, π(x)) π (x))。
  • 有序加密.加密R (sk y)。将sk写作(k, π)。首先,右加密算法采样一个随机临时值 r ←−r{0, 1}λ。然后,对于每个 i ∈[N],它计算值 vi= cmp(π −1(i), y)+ H(F(k, i), r)(mod 3). 最后,输出密文ctR=(r, v1, v2…, vN)。
  • 有序加密.比较 ( ctL, ctR)。比较算法首先解析 ctL=(k ′, h) and ctR=(r, v1, v2,…, vN), 然后输出结果 vh − H(k′, r)(模3)。

正确性。 令 sk =(k, π) ← ORE.Setup(1 λ ),并取任意 x, y ∈[N]。令 ct(x) L =(k ′ , h) ← ORE.EncryptL(sk x) 且 ct(y) R =(r, v1,…, vN) ← ORE.EncryptR(sk y),然后设置 z= ORE.Compare(ct(x) L ,ct(y) R),我们有 z= vh − H(k ′ , r) = cmp(π − 1 (h), y)+ H(F(k, h), r)− H(k ′ , r) = cmp(π − 1 (π(x)), y)+ H(F(k, π(x)), r)− H(F(k, π(x)), r) = cmp(x, y) ∈ Z3 , 注意, cmp(x, y) 提供的信息量与 1(x< y) 和 1(y< x) 相同,因此正确性成立。

空间使用。 在给出形式化的安全性分析之前,我们首先描述我们的ORE方案中密文长度的特征,该方案的消息空间大小为 N。我们方案中的左密文ct L 包含一个伪随机函数密钥和一个索引,长度均为 λ+ dlog Ne比特。右密文ct R 包含一个临时值以及 N个 Z 3 中的元素,可以使用 λ+ dN log2 3e比特表示。因此,一个完整的密文由 2λ+ dlog Ne+ dN log2 3e比特组成。然而,正如我们在下述备注中指出的,如果我们允许比较算法接收完整的密文 (ctL,ctR),而不是仅接收第一个密文的左半部分和第二个密文的右半部分,则可以获得更短的密文。因此,在将该构造用作纯ORE方案时,我们可以获得更短的密文。而在利用我们的ORE方案构建范围查询系统(第5节)时,我们将利用这样一个事实:只要给定一个密文的左分量和另一个密文的右分量,就可以执行比较。

Remark 3.1 (Shorter Ciphertexts). For a domain of size N the right ciphertexts in our ORE construction contain N elements of Z3. Suppose instead we replaced , the comparison function cmp with a function cmp′ where cmp′ x=1 if x ≤ y and 0 otherwise. Then a left encryp-(, ) , tion of y can be used to compute cmp′ of x and a right encryption x y or equivalently whether x ≤ y. If 密文ct(x) L 密文ct( y ) R (, ) ,the comparison algorithm takes as input密文ct(x) =(密文ct (x) L ,密文ct(x) R )and密文ct( y ) =(密文ct( y )L ,密文ct( y )R ), then it can compute both cmp ′ (x, y)and cmp ′ (y, x). This means that given 密文ct( x ) and密文ct( y ), the comparison algorithm can still determine if x< y, x= y or x> y. With this modification , , the right ciphertexts in our scheme have length N rather than dN 2 3e. log

在完整版本 [43], 中,我们还展示了如何将上述构造扩展以支持多项式规模域上的更一般功能(而不仅仅是比较)。

我们现在陈述我们的主要安全定理,但将正式证明推迟到完整版本中。

Theorem 3.2. The ORE schemeΠ ( s ) ore is secure with the best-possible leakage function Lcmp from Remark 2.3 assum-ing that F is a secure PRF and H is modeled as a random oracle.

4. ORE的域扩展

尽管我们在第3节中提出的小域ORE构造实现了ORE可能达到的最强安全性概念,但它仅限于多项式大小的消息空间。在本节中,我们展示如何为大域构造一个高效的ORE方案,该方案相较于现有所有针对大域的高效ORE构造具有可证明更强的安全保证。我们的构造可以看作是小域ORE构造与 Chenette等人提出的ORE方案[22]的组合。

直观上,我们可以将 Chenette 等人构造中使用的技术视为一种域扩展机制

适用于ORE。具体而言,他们的构造可被视为一种通用转换, 该转换以 k‐位有序加密方案作为输入,并输出一个 kn‐位有序加密方案,其密文扩展随 n线性增长,且安全性略有降低 (随 n而下降)。从这一角度来看,Chenette 等人的构造可 被视为将一个具有最优安全性的1位有序加密方案扩展为一个 n‐位有序加密方案。在本研究中,我们将这种通用域扩展技 术应用于第3节中的小域ORE,并展示了如何从一个 d‐位有序 加密方案出发,将其扩展为一个 dn‐位有序加密方案。通过调 整参数 n和 d,我们实现了性能‐安全权衡。总体而言,我们 的组合构造通过多个并行的(前缀相关的)小域ORE方案 Π(s) ore(来自第3节)来实现加密,每个明文块对应一个实例。利用Chenette 等人[22],的技术,从前缀中导出一个盲化因子,并用于掩盖该块的 Π(s) ore密文。我们在定理4.1中给出了该构造的精确泄露信息。

构造。 固定一个安全性参数 λ ∈ N、消息空间大小 N> 0以及 满足dn ≥ N的整数 d, n> 0。令 F: {0, 1}λ×[N]→{0, 1}λ为 定义在变长输入上的安全的伪随机函数,5 H: {0, 1}λ×{0, 1}λ→ Z3为一个哈希函数(建模为随机预言机), 且 π: {0, 1}λ ×[d]→[d]为一个安全的伪随机置换。对于一个 d‐ 进制字符串 x= x1x2 · · · xn,令x|i= x1x2 · · · xi表示 x的前 i 位所构成的 d‐进制字符串(即 x的长度为i的前缀),并令x|0为 空前缀。我们如下定义我们的ORE方案 Πore=(ORE.Setup, ORE.EncryptL, ORE.EncryptR, ORE.Compare)。

  • ORE.设置 (1λ)。设置算法采样伪随机函数密钥k1, k2 ←−r{0, 1} λ。主密钥为 sk =(k1, k2)。
  • ORE.加密L (sk x)。令 sk =(k1, k2)。对于每个 i ∈[n],左加密算法首先计算量 x˜= π(F(k2, x|i−1) xi),然 后设置 ui=(F(k1, x|i−1‖ x˜) x˜)。它返回密文 ctL =(u1, . . . , un)。
  • ORE.EncryptR (sk y)。令 sk =(k1, k2)。首先,右加密算法均匀采样一个临时值 r ←−r{0, 1} λ。然后,对于每个 i ∈[n] j ∗ = π −1 j ∈[d] F k2 j y|i−1 和 ,它 首先设置 ( ( , ) ),并计算 zi, j = cmp(j ∗ , yi)+ H(F(k1, y|i−1 ‖j), r)(mod 3). 然后定义元组 v i =(zi,1,…,zi,d) 并输出密文 ctR =(r, v 1 , v 2 …, v n)。
  • 有序加密.比较 (密文ctL,密文ctR)。该比较算法首先解析 ctL =(u1 ,…, un) and ctR =(r, v1 , v2 ,…, vn), 其中对于每个 i ∈[n],我们写出 u i =(k ′ i , h i) 和 v i =(zi,1 ,…,z i,d)。然后,令 为满足z i,h i − H(k ′ i , r) 6= 0(模3)的最小索引 i。如果不存在这样的 ,则输出0;否则,输出z ,h − H(k ′ ` , r) (模3)。

正确性。 正确性与第3节中小域ORE的正确性类似。我们将在完整版本 [43] 中给出完整的论证。

安全性。 在陈述我们的安全定理之前,我们首先指定我们的泄露函数 L( d ) blk 。我们方案中的每个密文块 Chenette 等人 的 ORE构造 也使用了作用于变长输入的伪随机函数。我们参考他们的构造[22, §3],以获得一种从标准伪随机函数构造作用于变长输入的伪随机函数的方法。ORE方案本质上是底层小域有序可搜索加密的密文,比较操作按块逐个进行。直观上,由于我们的小域ORE方案除了顺序外不泄露任何信息(定理3.2),我们新ORE方案的额外泄露即为两个密文之间第一个不同块的索引。具体而言,对于以 d为 基表示的消息 x= x1x2 · · · xn和 y= y1y2 · · · yn,我们定义首 个不同块函数ind(d) diff (x, y)为第一个索引 i ∈[n],使得对所 有 j< i有 xj= yj且 xi 6= yi。如果 x= y,我们定义ind(d) diff (x, y)为 n+ 1。然后,我们扩展ORE方案的泄露函数 L(d) blk 由以下给出 L(d) blk(m1,…, mt)={(i, j, blk(mi, mj)) | 1 ≤ i< j ≤
t}, 其中 blk(mi, mj)=(cmp(mi, mj), ind(d) diff (mi, mj))。通常, 我们将参数 d 称为明文空间的元数(或基),其随块长度(以 比特为单位)呈指数增长。现在我们陈述我们的主要安全定理。

Theorem 4.1. The ORE schemeΠore is secure with leak-age function Lblk assuming that F is a secure PRF and H is modeled as a random oracle.

定理4.1的证明可以看作是我们底层小域ORE的安全性证明 (定理3.2)与Chenette等人方案 [22,定理3.2] 的安全性证 明的组合。我们在完整版本中给出该证明。

空间使用。 我们新ORE方案中的密文本质上由 n个针对小域 ORE方案的密文组成(域大小为 d)。更具体地,我们新方 案中的左密文包含 n(λ+ dlog de)比特,右密文包含 λ+ ndd log2 3e比特。由于明文空间 N满足 N ≤ dn,因此我们新 ORE方案中的密文大小增长为 O((λ+ d) logd N)。

非均匀块大小。 在实际应用中,明文的某些比特可能比其他 比特更敏感。泄露这些比特的信息比泄露较不敏感比特的信 息更不可取。为了适应不同的敏感性,我们可以对密文的不 同块使用不同的输入基(例如,对更敏感的比特使用更大的 块)。所得到的方案的泄露仍然是两个消息之间不同的第一 个(可变大小)块的索引。正确性保持不变。

5. 加密范围查询

在本节中,我们形式化地定义了客户端‐服务器协议在加 密数据库上进行范围查询的性质。在我们的模型中,客户端将 加密数据库存储在服务器上。客户端可以更新数据库(例如, 通过添加或删除记录)并针对数据库发起范围查询。在范围查 询中,客户端指定一个数值区间,服务器响应返回其底层消息 落在该区间内的所有密文。

尽管我们的定义是基于数值区间的,但我们的方法广泛 适用于更一般的场景——特别是适用于任何全序域,例如英文 姓名。例如,当数据库由加密的字母数字字符串组成时,范 围查询可用于精确关键词以及前缀搜索。

我们的安全定义借鉴了可搜索对称加密(SSE)[24, 20] 的现有 定义。我们在第8节中回顾了关于SSE的一些研究工作。在我们的定 义中,我们同时考虑了在线和离线环境。在在线场景下,对手 位于服务器上,能够看到加密数据库以及客户端的查询;而在 离线场景下,对手仅获得服务器内容的转储(即,服务器状 态),但未观察到客户端所执行的任何查询的情形。针对离线 对手,我们要求加密数据库仅泄露其自身大小,这是更强的安 全性属性,也是最优的泄露程度。

Definition 5.1 ( Online Security ). For all databases D and se quences o f q ueries 1 ... q,,q, define the se quence o f states 0 … and tokens 0 ... where 0 , 0 ← st,,stt,,t(tst)RQ . 1 λ D is the out p ut o f the i th q uer y on in p ut and f or each i ∈ [ ] i i , i and i − 1 . A ran g e q uer y Setup(,),(t,st) scheme is online secure with res p ect to a leaka g e f unction L if for every efficient adversary A, there exists a simulator Swhere ∣∣Pr[A(1λ, st0,...,st , t0,…, t )= 1] − Pr[S(1λ, L(D, q1,..., q ))= 1] ∣∣= negl(λ).

Definition 5.2 (Offline Security). For all databases D and sequences of queries 1... 查询,,查询, define the sequence of states 0… and tokens 0... 状态,,状态令牌,,令牌 as in Definition 5.1 Let | \| be the bit-length of . A range query scheme is of- 状态状态 fline secure if for all efficient adversaries A, there exists anefficient simulator S where ∣ ∣ ∣ Pr[A(1λ, st )= 1] − Pr[S(1λ, \|st |)= 1] ∣∣∣ = negl(λ).

离线安全的重要性

尽管离线安全严格弱于在线安全,但它 捕捉到了攻击者入侵服务器并窃取服务器磁盘上存储的所有数 据这一现实场景。虽然公司通常能够检测并防止其服务器遭受 主动的在线篡改,但当攻击者还窃取了数据库以进行离线分析 时,事后会发生什么仍然是一个问题。当然,解决此问题的理 想方案是提供强在线安全保证的加密数据库系统。然而,具有 强在线安全性的现有系统通常需要重新设计数据库管理系统, 并实现复杂的加密协议来查询 [17, 25],或依赖于完全同态加 密[29]或不经意RAM [32]等沉重且实用性较差的工具。相反, 基于OPE的解决方案产生的方案在我们的模型中无法提供离 线安全;这是OPE及其他基于PPE的加密数据库方案易受推理 攻击的原因之一。即使我们使用具有最优安全性的(交互式) OPE方案,这种直接比较密文的能力也足以实施推理攻击。 因此,存在一个有趣的中间地带,在该领域中,我们可以构建 实现良好在线安全性的系统,同时仍能提供强大的离线安全保 证,以抵御推理攻击。

5.2 一种高效的范围查询方案

我们现在描述如何使用第4节中的ORE构造来构建一个高 效的范围查询方案。总体而言,服务器的加密数据库由每个值 的右密文组成,并按排序顺序存储。每次查询的令牌t包含查 询值的左加密。这使得服务器能够使用ORE比较算法在数据 库的加密密文中执行二分查找。因此,服务器能够高效地回答 查询,并在更新期间保持数据库的排序顺序。为了回答范围查 询,服务器执行二分查找以在加密数据库中找到与查询对应的 下界和上界。并返回位于这些边界内的所有密文。客户端随后解密这些密 文以获取响应。更正式地,我们定义我们的范围查询方案 Πrq=(RQ.Setup, RQ.Range,RQ.Insert, RQ.Delete) 如下:

  • RQ.Setup (1λ, D) →(t, st)。客户端与服务器之间的设置算 法执行如下:
  • Client (1λ, D) →(sk, t)。客户端在输入安全参数 λ和数据库 D后,生成秘密密钥sk ← ORE.Setup(1λ)。然后,客户端加密数据库 D,并对每个顺序元素 xi ∈ D,计算密文cti ← ORE.EncryptR(sk xi),并将令牌t =(ct1,…, ctM)发送给服务器。
  • Server (t) → st。服务器直接将 st设 为t。

  • RQ.Range (sk, q,st) →(t, st′)。客户端与服务器之间的范围 查询算法执行如下:

  • 客户端 (sk, q =(x, y)) → t。客户端在 输入秘密密钥sk和表示对范围[x, y]进行范围查询的查询q后,生成令牌t =(ORE.EncryptL(sk, x), 有序加密.EncryptL(sk y),该结果被发送至服务器。
  • 服务器 (st, t) →(st′,r)。服务器接收其当前状态 st=(ct1,…, ctM′)(其中 M′ 为某个整数)以及令牌 t=(ctx, cty) 作为输入。利用 ORE.Compare,执行二分查找以找出状态 st 中“不小于” ctx且“不大于”cty的密文。令 r 表示位于该区间内的密文 集合。服务器输出响应 r 以及更新后的状态 st′=st。
  • 客户端 (sk,r) → S。客户端在输入密钥sk和响应r=(ct1,…, ctm)(对于某个整数m)后,输出元组S=(ORE.Decrypt(sk, ct1).. ., ORE.Decrypt(sk, ctm))。(回顾备注2.1,任何 ORE方案均可扩展以包含解密算法。)

  • RQ.插入 (sk, q,st) →(t, st′)。客户端与服务器之间的插入算法执 行如下:

  • 客户端 (sk,q= x) → t。客户端在输入秘密密钥sk和表示插入值 x的查询后,生成令牌t =(ORE.EncryptL(sk x), ORE.EncryptR(sk x)),并将其发送给服务器。
  • 服务器 (st, t) →(st′,r)。服务器接收其当前状态 st 和令牌 t =(ct1, ct2) 作为输入。使用 ORE.Compare(ct1, ·),在数据库 st 的内容上执行二分查找,以找到插入新值的位置索引。服务器将 ct2 插入该位置,并输出更新后的数据库 st′。

  • RQ.Delete (sk, q,st) →(t, st ′ )。客户端与服务器之间的删除算法 执行如下:

  • 客户端 (sk,q= x) → t。客户端在输入秘密密钥sk和表示删除值 x的查询后,生成令牌t =(ORE.EncryptL(sk x), ORE.EncryptR( sk x)),并将其发送给服务器。
  • 服务器 (st, t) →(st ′ ,r)。服务器将其当前状态 st 和令牌 t =(ct1 , ct2) 作为 输入。使用 ORE.Compare(ct1, ·),在数据库 st 的内容 上执行二分查找,以找到 st 中等于 ct 1 的元素的索引。它删除匹配索引处的条目,并输出更新后的数据库 st′。

正确性。 根据ORE方案的正确性,服务器在每次查询后维护 的状态st是数据库中经过相应插入和删除操作后的值D在秘 密密钥sk下的右加密(已排序)列表。因此,服务器在针对范围 [x, y] 的范围查询中返回给客户端的响应 r 正是那些明文值落在范围 [x, y] 内的密文子集。正确性由 ORE解密 的正确性保证(而 ORE解密 的正确性又源于 ORE方案 的正确性)。

附加属性

除了我们希望对称范围查询方案具备的核心安全 性和正确性之外,我们还注意到,我们的构造 Πrq在客户端‐ 服务器模型中实现了若干有用的属性,以支持高效范围查询 的处理。

  • 无状态客户端与单轮协议。 客户端在查询之间无需维护状态, 每次查询仅需客户端与服务器之间的一次往返通信。我们的协议实现了最优的轮数复杂度。
  • 短查询令牌。 每个查询令牌 t 的大小是渐近最优的。它们的长度大致与生成查询时所用输 入的长度相同,并且independent与数据库大小相关。
  • 快速响应。 服务器算法的运行时间在数据库中元素总数上是 sublinear(对数级)的。

在完整版本[43],中,我们还描述了如何将我们的技术扩展到具有多 列的数据库。

在线安全。 此处,我们对范围查询方案的在线泄露进行非正 式描述。在完整版本 [43], 中,我们将给出该方案泄露的完 整且形式化的说明。

在下文的描述中,我们将泄露函数 L(d) blk(m1, m2)称为两 个等长值 m1和 m2之间的“ORE泄露”。非正式地,在我们 的设定中,“ORE泄露”指的是 m1和 m2的顺序以及 d进 制表示下 m1和 m2的首个不同数字的索引。我们的范围查询泄露函数 Lrq以数据库 D=(d1,…, dM)和一个由 个查询 q1,..., q 组成的序列为输入,并输出:

  • 对于每个 i ∈[M]和 j ∈[`],数据库值 di与查询qj之间的 ORE泄露。对于形式为q=(x, y)的范围查询,这包括两对(di, x)和(di, y)在 i ∈[M]情况下的ORE泄露。
  • 对于每个查询 qi,以及每次插入或删除查询 q′ j ,qi 与 q′ j 之间的 ORE泄露。类似地,对于形式为 qi=(xi, yi) 的范围查询, 包含两对之间的 ORE泄露:(xi, q ′ j) 和 (yi, q ′ j) 。

大致来说,我们的范围查询方案会揭示数据库中每个查询与 每条消息之间的顺序关系以及首个不同数字的索引。我们还 在范围查询与插入/删除查询之间泄露了一些信息。我们在完 整版本中对这些概念进行了形式化。

离线安全。 我们的范围查询方案 Π r q 的离线安全性(定义 5.2)直接源于以下事实:存储在服务器上的加密数据库仅包 含一组右密文,而该组右密文在仅知其集合大小的情况下是 可模拟的(即右密文是其值的 semantically secure加密)。我们在完整版本中给出了形式化证明[43]。

抵御离线推理攻击的鲁棒性。 我们协议的离线安全意味着服务 器数据库中的内容在语义上是 always安全的。因此,因此,仅密文推理攻击(如 Naveed 等人 [46], 研究的攻击)并不直接适用在。他们的模型 [46, §4.2],中,攻击者能够获取加密数据 库的“稳态”,该状态描述了数据库包含所有用于高效执行加 密搜索所需辅助信息的状态。在我们的方案中,除了ORE方案外不需要此类辅助信息,但我们仍然能够实现离线安全。相比之下,在其他现有的基于PPE的方案中,比较功能由底层的 OPE加密支持,而OPE加密易受推理攻击。因此,即使这些 方案可以被修改以满足我们对离线安全的定义,其“稳态”表 示形式仍为易受推理攻击的OPE密文。我们的方案之所以能抵 御这些仅密文推理攻击,是因为我们的稳态表示恰好就是我们 的离线表示。最后,我们注意到,我们可以始终添加额外的加 密层(例如,洋葱加密[51]),而不会损害我们范围查询方案 的安全性,这可以作为对抗一般对手的有效对策。

6. OPE的不可能性结果

在本文的完整版本中[43],,我们给出了满足最优语义安 全概念的无状态OPE方案的匹配上下界和下界。我们的结果 加强了Boldyreva 等人[9,10],给出的下界,可以非正式地表 述如下:

Theorem 6.1 (非正式. There are no efficient order-preserving encryption schemes t at satisfy best-possible se-curity on a message space containing at least 3 elements.

我们的下界表明,即使在小域设置中,强安全性也仅可能通过 有序加密实现,而无法通过OPE实现。

7. 实验评估

为了评估第4节中我们提出的顺序揭示加密方案的实用性, 我们对该方案进行了完整实现,并在广泛的参数设置下测量了其性能。然后,我们将该方案的性能与Boldyreva 等人[9] OPE方案以及Chenette 等人[22] ORE方案进行了比较。在 我们的实现中,使用了备注3.1中的技术来压缩密文。

实例化原语。 我们的实现完全使用C语言编写。我们以128位安 全性(λ= 128)运行。使用AES‐128实例化伪随机函数PRF。为 了在 2d位域上构造伪随机置换PRP(用于 d< 128),我们使用 一个三轮Feistel网络,该网络基于对 d位输入的伪随机函数 PRF [44]。在我们的实验中,我们仅考虑 d< 128,因此可以使 用AES来实例化伪随机函数PRF(其中 d位输入被填充至128位)。对于随机预言机,我们考虑两种候选构造。第一种是使用 SHA‐256,这是一种标准的密码学哈希函数,通常被建模为随机 预言机。对于我们的第二个随机预言机实例化,我们采用基于 AES的构造。这使得我们能够利用AES‐NI指令集实现对 AES的硬件加速计算。回顾第4节,我们的构造需要一个从域 {0, 1} 2λ ={0, 1} 256映射的随机预言机应用于备注3.1的修改后,对输入(k, x) ∈{0, 1}128 ×{0, 1}128, 我们将随机预言机的输出取为AES(k, x)的最低有效位。显然, 如果我们把AES建模为理想密码,则该构造实现了随机预言机。我们注意到,将AES建模为随机置换或理想密码等理想化对象 的方法已在许多其他近期工作中被使用,例如用于构造高效 的乱码电路方案[5],或Simpira置换族[36]。

在我们的实现中,我们使用了 OpenSSL [55] 实现的 AES 和 SHA‐256,以及 GMP [35] 库进行大整数运算。我们的完整实现包含约 750 行代码。对于 Boldyreva 等人 的 OPE 方案的实现,我们采用了来自 CryptDB [51],6 的 C ++ 实现;而对于 Chenette 等人 的 ORE 方案的实现,我们 使用了 C 实现 FastORE.7 在我们的基准测试中,我们将 FastORE 库中用作底层伪随机函数的 HMAC 替换为 AES。我们认为这能够更均衡地比较 Chenette 等人 方案与我们新 的 ORE 方案之间的性能权衡。

基准测试与评估。 我们在一台运行 Ubuntu 14.04、配备 2.3 GHz Intel Core i7处理器(Haswell微架构)和 16 GB内存的笔记本电脑上运行所有实验。尽管我们的加密算法很容易 实现并行化,但在基准测试中并未利用并行计算。该处理器支 持 AES‐NI指令集,因此我们尽可能基于 AES 构建各种基础 原语。表1 总结了我们对加密和比较32位整数的微基准测试结 果。在 图2 中,我们比较了不同方案在不同大小消息空间下 的加密成本。

从表1可以看出,比较两个ORE密文所需的时间与在 OPE环境中比较两个整数所需的时间相似。因此,尽管在加密 数据库系统中部署ORE需要在数据库管理系统中实现自定义 比较器,但实际上这只会带来很小的计算开销。

与OPE相比,我们的新型ORE方案显著更快。例如,在 处理字节大小的块时,加密单个32位值仅需超过 50 µs的计 算时间,且比普通OPE快65倍以上。即使基于SHA‐256的实 现也比OPE快约10倍。此外,如[22,备注2.6和 §4]所示,一 种泄露两个加密消息之间第一个不同的比特的ORE方案,其 安全性被证明高于任何表现如同真正随机的保序函数的OPE 方案。由于我们的新型ORE方案泄露的信息严格少于 Chenette等人的方案,因此我们得出结论:与OPE方案相比, 我们的新型ORE方案既更安全又更快。当然,与[22],中的逐 比特构造相比,我们的新型ORE方案要慢得多。然而,作为 交换,我们的新型ORE方案提供了更强的安全性,并且非常 适合用于构建对推理攻击具有鲁棒性的范围查询系统。

我们的新ORE方案的一个主要限制是密文大小的增加。 OPE和Chenette等人提出的ORE方案都能够实现较小的密文其中开销是消息长度的加性或(较小的)乘性因子。在我们 的设定中,由于主要构造严重依赖于提供最优安全性的 小域 ORE 方案,而现有的 小域ORE 方案 的 密文 长度随 消息空 间 大小线性增长,因此我们组合方案中的 密文 大小随 块大 小 快速增加。尽管如此,在逐字节 加密 时,对一个 32位整 数 进行 加密 仅需 224字节,这对于许多实际应用来说已相当 适中。一个有趣的 未来工作 方向是构造具有最优安全性的更 紧凑 的 小域ORE。通过应用我们在 第4节 中提出的技术,这 种构造可扩展为具有 更短的密文 的 大域ORE。

8. 相关工作

在本节中,我们调研了有关有序加密和保序加密的一些 文献,以及在加密数据上进行搜索的现有工作。

OPE 和 有序加密

序保持加密的概念最初由阿格拉瓦尔等人 [2], 提出,他们探索了将 OPE 应用于执行加密数据库查询的场景。首个明确的 OPE 构造是在 Boldyreva 等人 [9],的开创性工作中 形式化的,并在此后被大量研究工作进一步扩展 [10, 48, 50, 54, 41, 40, 45, 52, 8] [10, 54]。其中一些研究专注于探讨序保持加密的安全属性;另一些研究 [50, 41, 40, 52, 8]则考虑了有状态或交互式 OPE 方案,这些方 案能够避开 [9, 10, 50]中的下界限制以及我们在第6节中提出的 加强的下界。然而,在分布式大规模执行环境中进行状态同步和 协调多轮交互通常十分困难,因此几乎所有现有序保持加密部署 (例如 Sky‐High Networks、CipherCloud)都采用无状态序 保持加密变体来对加密数据进行排序和过滤。近年来还提出了许 多临时序保持加密方案 [7, 38],但它们通常缺乏形式化安全分 析。

可揭示顺序加密的概念最初由Boneh 等人[12],提出,他 们给出了一个基于多线性映射的构造,满足最优安全性。更一 般地,ORE是多输入函数加密(MIFE)[33]的一个特例。迄 今为止,通用MIFE的唯一构造依赖于不可区分性混淆[4, 28] 等重量级原语,效率极低而无法实际部署。Chenette 等人 [22]最近提出了一种高效的ORE方案,我们在本文中对其进 行了改进和推广。在小域设置下,可以通过对称加密或公钥加 密[3, 16]或多线性映射[42],来构造ORE,但与我们第3节中 仅依赖于伪随机函数的高效小域ORE相比,这些构造效率要 低得多。

在加密数据上搜索

人们已经提出了许多技术来解决在加密 数据上进行搜索和查询的一般性问题,例如可搜索对称加密 (SSE)[53, 24, 20],保性质加密(PPE)[9, 48, 21],全同态 加密(FHE)[29],隐向量加密[15],不经意RAM( ORAM)[32],以及其他方法。虽然FHE或ORAM等工具可 用于在加密数据上搜索[11, 57],,但这些方法在几乎所有现实 部署中都过于昂贵。在更实用的方面,过去15年中提出了大 量SSE方案[53, 30, 19, 24, 20, 37, 47],但这些先前的工作局 限于精确关键词搜索,通常无法高效处理在加密数据上的复 杂查询(例如 range queries)。最近,一些工作 [18, 17, 49, 25]描述了能够处理更具表达性查询的SSE方案的 构造。我们将在下文综述这些工作。

卡什等人 [18] 给出了首个支持布尔查询(在数据库大小 的次线性时间内完成)的SSE方案,该方案仅泄露少量信息, 并基于决策性Diffie‐Hellman(DDH)假设保证安全性。随 后,卡什等人 [17] 扩展了该构造,使其支持对加密数据库的 更新,并允许多个可能不诚实的客户端。处理更新要求客户端 维持少量状态(或需要额外的通信轮次并导致更多的泄露)。然而,仅支持布尔查询不足以支持范围查询,因此在另一项后 续工作中,法贝尔等人 [25] 展示了如何利用卡什等人的SSE方案来支持范围查询。他们得 到的构造会泄露有关数据库内容的一些额外信息,即落入所 请求范围内的某些子区间中的值的数量。此外,由于使用了 通用覆盖,服务器对范围查询的响应集大小可能比真实响应 集的大小最多大66%。我们尚不知道任何现有的SSE方案能够 以最优(最小)泄露高效地支持范围查询。

与卡什等人的工作同时,帕帕斯等人[49]提出了 BlindSeer,一种私有数据库管理系统,能够在加密数据库上 以亚线性时间支持多种查询。他们的构造利用了通用的两方计 算工具,例如姚氏混淆电路[56],,并且其构造在半诚实模型 中提供安全性。

与现有SSE方法的比较

最后,我们重点指出现有SSE方法与我 们的基于ORE的构造在实现加密数据库上的范围查询时的一 些关键差异:

  • 与其他基于PPE的构造类似,我们的基于ORE的构造能很好 地与 existing数据库管理系统集成——我们只需实现一个自定 义比较器。而对于SSE,我们必须部署一个新的、且通常较为 复杂的数据库管理系统。这缺乏向后兼容性,成为在现有系统 中部署的障碍。我们的方法为在加密数据上支持范围查询提供 了一种快速、简单且直接的解决方案, without无需进行重大 的基础设施更改。
  • 我们明确地对范围查询协议的泄露进行了建模和分析,假设数据库存在自适 应更新。
  • 我们的构造仅需要对称原语,而不需要更昂贵的原语,例如 公钥密码学或不经意传输。

9. 参考文献

[1] R. Abelson 和 J. Creswell。Anthem 的数据泄露事件可能预示着一种趋势。 The New York Times,2015。[2] R. Agrawal、J. Kiernan、 R. Srikant 和 Y. Xu。数值数据的保序加密。在 ACM SIGMOD 2004 中,。[3] P. Ananth 和 A. Jain。从紧凑函数加密实现不可区分性混淆。在 CRYPTO中, 2015。[4] B. Barak、O. Goldreich、R. Impagliazzo、S. Rudich、A. Sahai、S. P. Vadhan 和 K. Yang。程序混淆的(不)可能性。 J. ACM, 2012。[5] M. Bellare、V. T. Hoang、S. Keelveedhi 和 P. Rogaway。基于 固定密钥分组密码的有效混淆。在 IEEE SP中,2013。[6] M. Bellare 和 P. Rogaway。随机预言机是实用的:设计高效协议的一种范式。在 CCS中, 1993年。[7] C. Binnig、S. Hildenbrand 和 F. F¨arber。面向内存列存储的 基于字典的保序字符串压缩。在 ACM SIGMOD中,2009年。[8] T. Boelter、R. Poddar 和 R. A. Popa。用于范围查询的安全单轮索引。 Cryptology ePrint Archive,报告 2016/568,2016年。[9] A. Boldyreva、 N. Chenette、Y. Lee 和 A. O’Neill。保序对称加密。在 EUROCRYPT 中,2009年。[10] A. Boldyreva、N. Chenette 和 A. O’Neill。再探保序加 密:改进的安全性分析与替代方案。在 CRYPTO中,2011年。[11] D. Boneh、C. Gentry、S. Halevi、F. Wang 和 D. J. 吴。使用部分同态加密的 私有数据库查询。在 ACNS中,2013年。[12] D. Boneh、K. Lewi、M. Raykova、A. Sahai、M. Zhandry 和 J. Zimmerman。语义安全的可揭示顺 序加密:无混淆的多输入函数加密。在 EUROCRYPT中,2015年。[13] D. Boneh、A. Sahai 和 B. Waters。函数加密:定义与挑战。在 TCC中, 2011年。[14] D. Boneh 和 A. Silverberg。多线性形式在密码学中的应用。 Contemporary Mathematics,2003年。[15] D. Boneh 和 B. Waters。 加密数据上的合取、子集和范围查询。在 TCC中,2007年。[16] Z. Brakerski、I. Komargodski 和 G. Segev。从单输入到私钥设置下的多输入 函数加密。IACR Cryptology ePrint Archive,2015年。[17] D. Cash、 J. Jaeger、S. Jarecki、C. S. Jutla、H. Krawczyk、M. Rosu 和 M. Steiner。超大数据库中的动态可搜索加密:数据结构与实现。在 NDSS中, 2014年。[18] D. Cash、S. Jarecki、C. S. Jutla、H. Krawczyk、M. Rosu 和 M. Steiner。支持布尔查询的高度可扩展的可搜索对称加密。在 CRYPTO 中,2013年。[19] Y. Chang 和 M. Mitzenmacher。远程加密数据上的隐私 保护关键词搜索。在 ACNS中,2005年。[20] M. Chase 和 S. Kamara。结 构化加密与可控披露。在 ASIACRYPT中,第577–594页,2010年。[21] S. Chatterjee 和 M. P. L. Das。再探属性保持对称加密。在 ASIACRYPT 中,2015年。[22] N. Chenette、K. Lewi、S. A. Weis 和 D. J. 吴。具有有限 泄露的实用可揭示顺序加密。在 FSE中,2016年。[23] J. Coron、T. Lepoint 和 M. Tibouchi。整数上的实用多线性映射。在 CRYPTO中, 2013年。[24] R. Curtmola、J. A. Garay、S. Kamara 和 R. Ostrovsky。可 搜索对称加密:改进的定义与高效构造。在 ACM CCS中,2006年。[25] S. Faber、S. Jarecki、H. Krawczyk、Q. Nguyen、M. Rosu 和 M. Steiner。加密数据上的丰富查询:超越精确匹配。在 ESORICS中,2015年。[26] J. Finkle 和 D. Volz。1.91亿美国选民的数据库暴露于互联网:研究人员 报告。 Reuters,2015年。[27] S. Garg、C. Gentry 和 S. Halevi。基于理想格的候选多线性映射。在 EUROCRYPT中,2013年。[28] S. Garg、C. Gentry、S. Halevi、M. Raykova、A. Sahai 和 B. Waters。所有电路的候选不可区分性混淆与函数加 密。在 FOCS中,2013年。[29] C. Gentry。使用理想格的全同态加密。在 STOC中,2009年。[30] E. Goh。安全索引。 IACR Cryptology ePrint Archive,2003年。[31] O. Goldreich、S. Goldwasser 和 S. Micali。如何构造随机函数。 J. ACM,1986年。[32] O. Goldreich 和 R. Ostrovsky。基于隐匿RAM的软件保护与仿真。 J. ACM, 1996年。[33] S. Goldwasser、S. D. Gordon、V. Goyal、A. Jain、J. Katz、F. 刘、A. Sahai、E. 石 和 H. 周。多输入函数加密。在 EUROCRYPT中,2014年。[34] S. Goldwasser 和 S. Micali。概率加密。 J. Comput. Syst. Sci. 1984 ,。[35] T. Granlund 和 GMP开发团队。GNU MP:GNU高精度算术库。 http://gmplib.org/,2012年。[36] S. Gueron 和 N. Mouha。Simpira v2: 基于AES轮函数的高效置换族。 IACR Cryptology ePrint Archive 2016 ,。[37] S. Jarecki、C. S. Jutla、H. Krawczyk、M. Rosu 和 M. Steiner。外包 对称私有信息检索。在 ACM CCS 2013 中,。[38] H. Kadhem、T. Amagasa 和 H. 北川。一种面向关系型数据库的安全高效保序加密方案。在 KMIS中,2010年。[39] G. Kelly。eBay遭遇大规模安全漏洞,所有用户必须更改密码。 Forbes,2014年。[40] F. Kerschbaum。频率隐藏保序加密。在 ACM CCS中,2015年。[41] F. Kerschbaum 和 A. Schr¨opfer。最优平均复杂度的理想安全保序加密。在 ACM CCS中, 2014年。[42] S. 金、K. Lewi、A. Mandal、H. W. 蒙哥马利、A. Roy 和 D. J. 吴。函数隐藏内积加密是实用的。 IACR Cryptology ePrint Archive, 2016年。[43] K. Lewi 和 D. J. 吴。揭示顺序的加密:新构造、应用及下界。 IACR Cryptology ePrint Archive 2016 612, 2016 ,:。[44] M. Luby 和 C. Rackoff。如何从伪随机函数构造伪随机置换。 SIAM J. Comput. 1988 ,。[45] C. Mavroforakis、N. Chenette、A. O’Neill、G. Kollios 和 R. Canetti。模块化保序加密再探。在 ACM SIGMOD中,2015年。[46] M. Naveed、S. Kamara 和 C. V. 赖特。针对属性保持加密数据库的推理攻击。在 ACM CCS中,2015年。[47

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值