Fast Private Set Intersection from Homomorphic Encryption
基于同态加密的快速隐私保护集合求交
隐私保护集合求交(PSI)是一种加密技术,它允许双方在不透露任何东西的情况下计算他们的集的交集,除了交集。我们使用完全同态加密来构建一个快速的 PSI 协议,其通信开销很小,当两个集合中的一个比另一个小得多时,该协议特别好用,并且对半诚实的对手是安全的。
计算效率最高的 PSI 协议是使用哈希函数和不经意传输等工具构建的,但这些方法的一个潜在限制是通信复杂度,它与较大集合的大小呈线性扩展。当在一个持有小集合的受限设备(手机)和一个大型服务提供商(如 WhatsApp)之间执行 PSI 时,这是一个特别值得关注的问题,例如在私人联系人发现应用中。
我们的协议的通信复杂度与小集合的大小成线性关系,而与大集合成对数关系。更确切地说,如果集合的大小是
1 介绍
1.1 隐私保护集合求交
隐私保护集合求交(PSI)指的是这样一种情况:双方各自持有一个私有项目集,并希望在不透露任何信息的情况下学习他们的集合的交集,除了交集本身。在过去的几年里,由于一长串的出版物,例如 [9, 18, 37, 39, 46, 48-50, 53],PSI 已经成为真正实用于各种应用。最有效的协议是由 Pinkas 等人 [50] 和 Kolesnikov 等人 [37] 提出。虽然这些协议非常快,但它们的通信复杂度在两个集合的大小上是线性的。当一个集合明显小于另一个集合时,与非私有解决方案相比,通信开销变得相当大,后者的通信量与较小集合的大小呈线性关系。
1.2 全同态加密
全同态加密是一个强大的加密原语,它允许算术电路直接在加密的数据上进行评估,而不是先解密数据。尽管其基本思想很古老 [54],但在 2009 年才由 Craig Gentry [25] 给出第一个构造。虽然早期的全同态加密方案是不切实际的,但在短短几年内,研究人员设法构建了更有效的方案(例如 [8, 12, 13, 21, 28, 41]),使实际应用接近于现实 [26, 29, 45]。
乍一看,使用完全同态加密来实现 PSI 中的低通信成本似乎很容易。拥有较小集合的一方将其加密的集合发送给另一方,后者以同态方式评估交集电路,并将加密的结果发回给第一方进行解密。总的通信量只有
1.3 相关工作
Meadows [44] 提出了最早的安全 PSI 协议之一,后来 Huberman、Franklin 和 Hogg 在 [34] 中对其进行了全面描述。这种方法是基于公钥密码学,并利用了 Diffie-Hellman 密钥交换的乘法同构特性。虽然这些方案具有相对较好的通信成本,但由于需要对两个集合中的每一项进行多次的模块化指数化,当集合大小变得很大时,运行时间可能会很漫长。
自 [34] 以来,人们考虑了其他一些范式。Freedman 等人 [23] 提出了一个基于不经意多项式评估的协议。这种方法利用了部分同态加密,后来在 [15, 31, 32] 中被扩展到恶意设置。另一种方法是由 Hazay 等人 [30] 提出的,并基于所谓的不经意式 PRF。
最近,人们发明了基于不经意传输(OT)的更有前途的方法 [35, 46]。当时,到目前为止,最有效的方案是由 Pinkas 等人提出的 [49],后来在 [37, 46, 50] 中得到改进。我们将用发送方和接收方来表示参与 PSI 协议的两方,并坚持认为在协议执行后,接收方会了解到集合的交集,而发送方则不会了解到任何信息。基于 OT 的协议的高层次想法是,接收方与发送方进行许多 OT,并为其集合中的每个项目忘我地学习随机编码,而不透露哪些值被编码。然后,发送方可以对其项目进行本地编码,并将其发送给接收方,接收方在编码上计算出明文交集。由于编码是随机的,它们不会透露任何超出交集的信息。这种方法的一个固有属性是,由于需要对所有的编码进行编码和发送,通信在两个集合的大小上都是线性的。我们采取的方法是类似的,只是我们使用完全同态加密来代替不经意传输。
然而,另一种基于 OT 的方法是由 Dong 等人引入的 [18],它建立在一个被称为布鲁姆过滤器的数据结构上。这种数据结构允许通过在一个长的位阵列中设置特定的位来进行有效的成员测试。重要的是,两个布隆过滤器的位和本身就是两个原始集合的交集的有效布隆过滤器。通过对这一想法进行一些修改,就可以构建一个安全的协议,允许其中一方通过使用 OT 来学习两个布隆过滤器的位 - 明智和。这种方法比 Pinkas 等人 [49] 介绍的方法需要更大的通信量,并且导致性能下降。
通常引用的 PSI 的解决方案是使用通用的安全多方计算协议来计算交集。Huang 等人 [33] 是第一个使用乱码电路实现这种协议的人,后来 [49] 对此进行了改进,并提供了一个实现。他们表明,与基于 OT 的方法相比,乱码电路方法需要明显更多的通信。对于实际方法的更完整的调查,我们提请读者参考 [50]。
Kamara 等人也提出了一个非常有效的服务器辅助协议 [36]。在这种情况下,假设存在一个非拥挤的服务器。其基本思想是,在双方之间取样一个随机函数,将其应用于各自集合中的元素。然后,这些编码被发送到服务器,由其报告相交情况。虽然在概念上很简单,而且非常有效,但对这种服务器的依赖是不可取的。此外,通信的复杂性在两个集合的大小上是线性的。
在上述所有协议中,都假定在协议开始时,集合的大小(或上界)是公开的。Ateniese 等人 [6] 介绍了一个基于 RSA 累加器的协议 [7],它通过隐藏接收者的集合大小来放松这一假设。这个协议的工作原理是让接收方为其集合构建并发送一个 RSA 累加器。然后,发送方可以为其每个项目构建一个响应,这使得接收方可以测试它们是否包含在 RSA 累加器中。RSA 累加器的一个重要属性是它的大小很小,而且与接收方的集合大小无关。因此,当接收方有一个比发送方大得多的集合时,这个协议是最有趣的。在后续工作中,Bradley 等人 [10] 将该协议扩展到对累加器中的项目数量施加一个上限,从而防止接收方的所谓 "全域攻击"。
1.4 贡献和路线图
正如我们的讨论所示,所有先前的 PSI 协议都要求双方在网络上编码并发送与他们整个集合成比例的数据。然而,琐碎的不安全的解决方案只要求发送较小的集合。我们通过构建第一个安全实用的、具有低通信开销的、基于平坦的全同态加密方案的 PSI 协议来解决这一差距。
我们的基本协议需要在较小的集合中进行线性通信,实现与天真的解决方案相同的最佳通信。然后,我们结合一系列的优化,以显著减少通信规模、计算成本和同态电路的深度,同时只增加通信的对数开销。总而言之,我们
- 提出一个基于全同态加密的基本 PSI 协议。
- 结合各种优化措施,大大降低计算和通信成本。
- 使用微调的全同态加密参数进行同态计算,以避免昂贵的引导操作 [25, 26],并获得良好的性能。
- 用 C++ 开发一个原型实现,并证明比以前最先进的协议减少 38-115 倍的通信量。
在第 2 节中,我们回顾了我们用来建立协议的设置和工具:PSI 设置和它的安全定义,以及关于(平坦的)完全同态加密的初步知识。在第 3 节,我们提出了我们的基本草根 PSI 协议。然后,在第 4 节中,我们应用优化方法来大大改善草根协议,并使其实用。第 5 节介绍了优化协议的形式描述,以及安全证明。在第 6 节中,我们对我们的实现进行了性能分析,并将我们的性能结果与 [50] 和 [37] 进行比较。
2 初步了解
2.1 符号
在本文中,我们将使用符号
是发送方和接收方的集合,每个集合的大小为 。 表示哈希表的大小, 表示要插入哈希表的项目数。 表示第 2.3 节中描述的加密参数。 表示第 4.2 节中用于布谷鸟散列的哈希函数的数量。 表示第 4.2 节中描述的简单散列方案的桶大小。 表示第 4.3.1 节所述的窗口化参数。 表示第 4.3.2 节中描述的分区参数。
2.2 隐私保护集合求交
我们使用标准的符号,把参与 PSI 的两方称为发送方和接收方。发送方持有一个大小为
2.2.1 发现隐私关联
我们的 PSI 协议的一个特别有趣的应用是私人联系人发现。在这种情况下,一个服务提供商,例如 WhatsApp,有一组几百万的用户。这些用户中的每个人都拥有自己的联系人集,并希望了解其中哪些人也使用该服务。这个问题的不安全解决方案是让用户把他们的联系人集合发送给服务提供商,然后由服务提供商代表用户进行交集。虽然这保护了服务提供者的隐私,但却将用户的私人联系人泄露给服务提供者。 虽然 PSI 为这个问题提供了一个自然的解决方案,但将现有的协议应用到这个环境中的一个潜在问题是,双方的通信和计算复杂性在更大的集合中是线性的。因此,一个可能只有几百个联系人的用户必须接收和处理与该服务的用户数量成线性关系的数据,这导致了对受限硬件(如手机)的次优协议。这个问题最初是由 Open Whisper Systems 的 Moxie Marlinspike 在一篇文章中提出的 -- 该公司开发了流行的安全信息应用 Signal-- 当时他们正试图部署 PSI 用于联系人发现 [43]。我们的 PSI 协议通过允许受限设备处理和接收仅与它们的集合大小成线性关系,而仅与服务提供商的集合大小成对数关系的数据来解决这个问题。此外,计算的主要部分可以由服务提供者在处理能力相对便宜的大型数据中心进行,而用户只进行轻微的计算。
2.3 分级的全同态加密
全同态加密方案是允许算术电路直接在密码文上进行评估的加密方案,理想情况下可以实现强大的应用,如隐私数据的外包计算 [25, 54]。为了提高性能,加密参数通常被选择为只支持一定深度的电路(分级全同态加密),我们在实现中使用了这一点。
本文介绍的许多技术和算法与正在使用的确切的完全同态加密方案无关,但为了简单起见,我们将其限制在基于环容错学习问题 (ring learning with errors, RLWE) 的密码系统,使用整数的 2 次方环 [42]。在这种密码系统中,明文空间是
一个分级的全同态加密方案可以由以下一组随机算法来描述。
:给定一个安全参数 ,输出一组加密参数 。 :输出一个密匙 和一个公钥 。可以选择输出一个或多个计算密钥 。 :给定信息 ,输出密文 。 :给定密文 ,输出信息 。 :给定一个有 条输入线的算术电路 ,以及输入 ,其中 ,输出一个密文 ,使得 。我们还要求 的输出大小不超过 的多项式,与 是什么无关(紧凑性)(见例如 [4])。
我们说,如果一个完全同态的加密方案是 IND-CPA 安全的,并且是弱循环安全的,这意味着即使对手得到了秘密密钥的比特的加密,该方案仍然是安全的。如果任何固定的同态评估的输出分布与明文输出的新加密分布不可区分,那么一个完全同态的加密方案就实现了电路隐私。通过这种方式,可以有效地隐藏在加密数据上评估的电路。我们请读者参考 [4,12,19] 以了解更多细节。
3 基本协议
我们在图 1 中把我们的基本协议描述为一个稻草人协议。接收方对其每个项目
输入:接收者输入大小为
的集合 ;发送者输入大小为 的集合 。两个集合都由长度为 的比特串组成。 是公开的。 输出:接收者得到集合
和集合 的交集 ;发送者什么也没能得到。 步骤:
设置:发送方和接收方共同商定一个全同态加密方案。接收方生成一对公私钥,并保存私钥。
加密:接收方对其集合
中的每个元素 进行加密,并将密文 发送给发送方。 计算交集:发送者对于每个
执行: 采样一个随机的非零明文元素
。 同态计算:
发送方将密文
返回给接收方。 回复提取:接收者对密文
进行解密并输出:
更准确地说,我们从现在开始假设我们的 FHE 方案中的明文模数
关于基本协议的安全性和正确性,我们有以下非正式定理。
定理 3.1(非正式):图 1 中描述的协议在半诚实的安全模型中安全而正确地计算了
证明:接收者的安全是直接的:接收者发送一个密码文数组,在发送者看来是伪随机的,因为全同态加密方案是 INDCPA 安全的。对于发送方的安全,我们注意到,接收方的观点由密码文数组组成。从电路隐私中可以看出,接收方只知道这些密码文本的解密,而没有其他。
对于一个固定的指数
这种基本协议效率极低:它要求发送方进行
4 优化
4.1 并行
我们提高性能的第一步是通过使用并行处理,这是完全同态加密中众所周知的强大技术,可以对密码文进行 SIMD(单指令、多数据)操作。我们在这里做一个简单的解释,并请读者参考 [11, 26, 29, 38, 55] 以了解更多细节和应用实例。
对于明文模数
我们可以应用批处理来减少基本协议的计算和通信成本,具体如下。接收方将其项目分组为长度为
批量技术允许发送方同时对接收方的
4.2 哈希
即使有了第 4.1 节的并行处理技术,发送方仍然需要将其每个集合元素编码为单独的明文,并单独与接收方的项目进行比较。相反,如果发送方也能利用批处理的优势,那就更好了。我们将通过使用散列技术来实现这一点。具体来说,我们将批处理与布谷鸟散列和基于置换的散列结合起来使用,这些技术已经在 PSI 的背景下被详细开发和探讨过,例如 [48, 49]。
在进入布谷鸟散列和基于置换的散列的技术问题之前,我们先从高层次解释为什么散列在我们的环境中是有益的。假设两方使用某种商定的确定性散列函数将其集合中的项目散列到两个散列表中。现在他们只需要对每个仓进行一次 PSI,因为不同仓中的项目必然不同。
有一点很重要,那就是所有的桶都必须被填充到一个固定的尺寸以保持安全。请注意,填充前的桶会有不均匀的负载,特定的桶的负载(映射到桶中的物品数量)可以揭示出交叉点以外的额外信息。为了克服这个问题,我们需要用假的物品填充每个仓,直到预先确定的最大尺寸。
刚才描述的简单散列技术大大降低了我们协议的复杂性。众所周知,将
4.2.1 布谷鸟哈希
布谷鸟散列 [16, 22, 47] 是一种通过使用
为了将布谷鸟散列应用于我们的 PSI 协议,我们必须确保逐个桶地比较将总是产生正确的交集。这是通过让接收方用
我们的默认假设是,发送方(执行简单散列的人)有一个更大的集合,所以
4.2.2 基于置换的散列
独立于精确的散列方案,基于置换的散列 [3] 是一种优化,通过将一个项目的一部分编码到桶索引中来减少存储在散列表中的项目的长度。为了简单起见,我们假设
我们将在布谷鸟散列中使用它。此外,我们没有像常规布谷鸟散列那样将整个元组
在应用基于置换的散列法后,PSI 协议的正确性仍然成立。原因是如果对于
图 2:哈希程序
输入:接收者输入大小为
的集合 ;发送者输入大小为 的集合 。两个集合都由长度为 的比特串组成。 是公开的。双方都输入整数 和一组哈希函数, , 。位置函数, , , , 是相对于 的 而定义的。输出:接收者输出一个基于置换的布谷鸟哈希表,其中插入了
中的项目,或 。发送者输出一个基于置换的哈希表,并使用简单哈希和所有位置函数插入 中的项目,或 。步骤:
[发送方]:令
为一个由 个桶组成的数组,每个桶的容量为 ,值为 。对于每个 和 ,发送者对 进行采样,同时 ,并设置 。如果由于一个仓已满而导致抽样失败,发送者输出 。否则,它输出[接收者]:令
是一个由 个桶组成的数组,每个仓的容量为 ,值为 。对于每个, ,接收者- 设置
, 以及 。 - 定义并调用函数
:将 与 的条目交换。如果得到的 ,则递归调用 ,其中 。
如果对任何
来说,对 的递归调用超过了系统的极限,则接收方停止并输出 。否则,它输出 。- 设置
4.2.3 哈希失败
在不太可能发生的情况下,布谷鸟散列算法失败了,它可能会将接收方的一些信息泄露给发送方。为了防止这种情况,我们必须确保布谷鸟散列算法以压倒性的概率成功。虽然存在一些估计布谷鸟散列失败概率的渐进结果 [17, 24],但隐藏的常数很难精确确定。相反,为了获得最佳参数,我们选择使用经验方法来确定失败概率。我们使用的一般技术与 [50] 相似,但有两个例外:第一,我们省略了一个被称为储藏室的辅助数据结构,因为它与完全同态加密方法不兼容;第二,我们在实验中主要关注
我们首先固定了由
在我们的实验过程中,我们观察到,当 h=2 时,没有储藏室的布谷鸟散列的表现非常差,这在 [50] 中也观察到并详细讨论过,这就是为什么我们将重点转移到
表 1:失败概率为
4.2.4 假项
为了使发送方的简单哈希表均匀地被填满,我们需要在哈希运算后用假项填充每个桶。我们让发送方和接收方从
4.2.5 哈希到一个较小的表示
在许多情况下,项目的总数
更确切地说,当总共
现在我们将基于置换的布谷鸟散列法应用于压缩后的字符串,进一步将字符串长度减少到
此外,我们还需要在明文空间中为第 4.2.4 节中讨论的假值多保留两个值。因此,通过选择加密参数
我们可以在我们的 PSI 协议中容纳任意长的字符串。
4.2.6 与并行处理相结合
将本节介绍的散列技术与第 4.1 节的批处理技术相结合是很简单的。在接收方将其项目散列到一个大小为
4.3 减少电路深度
通过第 4.1 节和第 4.2 节中讨论的优化,我们的协议已经实现了非常低的通信成本:通常只有几个同态加密的密码文。不幸的是,需要进行同态评估的算术电路的深度仍然是
我们使用两个技巧 -- 窗口和分区 -- 来大大减少这种深度。为了简化论述,我们将讨论这两个技巧如何在基本协议上发挥作用,并简要说明如何将它们与之前的优化结合起来。
4.3.1 窗口化
我们使用标准的窗口技术来降低发送方需要对接收方的同态加密数据进行评估的算术电路的深度,从而实现了有价值的计算 - 通信权衡。
回顾一下,在基本协议中,对于每个项目
这种技术使电路深度大大降低。为了看到这一点,我们写道
如果发送方只有
窗口化的代价是增加通信量。从接收方到发送方的通信量增加了
将批处理和散列法与窗口法结合起来是很容易的。唯一的区别是,批处理和散列法能有效地将发送者的集合大小减少近
最后,我们注意到,窗口技术的安全性是由底层全同态加密方案的 IND-CPA 安全性保证的。
4.3.2 分区
另一种减少电路深度的方法是让发送方将其集合划分为
分区可以自然地与窗口化结合起来,这样做还有一个好处,就是减少同态操作的数量。回顾一下第 4.3.1 节,发送方需要为接收方的每个项目
我们可以通过以下方式将批处理和散列与分区相结合。发送方像往常一样执行它的那部分散列程序(图 2),但是把它的桶(每个大小为
我们要注意的是,为了维护发送方的安全,在使用简单的散列法将其项目插入散列表后,发送方必须以统一的随机方式对桶的内容进行分割,包括值为
4.4 通过模数转换减少回复大小
最后,我们采用模数转换(见 [12]),有效地减少了响应密码文的大小。模数转换是基于格的全同态加密方案中一个著名的操作。它是一个公开的操作,它将一个加密参数为
5 完整的协议和安全证明
5.1 正式的描述
我们在图 4 中详细介绍了完整的协议,给定了一个安全的全同态加密方案和电路隐私。该协议的理想功能在图 3 中给出。
我们在标准的基于半诚实的模拟范式中证明安全性。宽泛地说,我们说图 4 的协议
- 参数:两方分别表示为发送方和接收方,其项目集的比特长度为
。接收方的集合大小为 ;发送方的集合大小为 。 表示协议实例的会话 ID。 - 功能:从接收方输入
,从发送方输入 ,其中 。该功能将, 发送给接收方,而不发送给发送方。
输入:接收方输入尺寸为
的集合 ;发送方输入尺寸为 的集合 , , 和 都是公开的。 和 分别表示计算和统计安全参数。输出:接收方输出
;发送方什么也不输出。步骤:
进行散列:哈希参数
、 和 是商定的,这样简单的哈希 个球进入 个仓,最大容量为 ,同时使用布谷鸟哈希 个球入仓,成功概率大于等于 。- 哈希到较短的字符串:令
。如果 ,那么双方都把他们的集合哈希到一个较小的表示。首先,对随机哈希函数 进行采样。令: , , , 。用 代替 执行协议的其余部分,并输出 , 中的相应项目作为交集。 - 哈希到桶中:双方以参数
、 和 和随机抽样的哈希函数 作为输入,执行图 2 的哈希程序。发送方用集合 执行步骤 1,得到 ,接收方用集合 执行步骤 2,得到 。即执行布谷鸟哈希。
- 哈希到较短的字符串:令
选择 FHE 参数:双方就具有电路隐私的 IND-CPA 安全 FHE 方案的参数
达成一致。他们选择 足够大,以便 。选择电路深度参数:双方就窗口参数
和分区参数 达成一致,以最小化整体成本。发送方预处理集合
:- 分区:发送方将其表
纵向(即按列)划分为 个子表 ,每个表都有 列。 - 计算系数:对于每个子表的每一行
,发送者用多项式 的系数替换行 ,即用 替换 。 - 批处理:对于从上一步得到的每个子表,发送方将其每一列解读为一个长度为
的矢量,其元素在 中。然后,发送方将每个向量批处理为 个明文多项式。结果是,第 个子表被转化为 个多项式 。
- 分区:发送方将其表
接收方加密集合
:- 批处理:接收方将
解释为一个长度为 的矢量,元素在 中。它把这个向量分成若干个明文多项式 。 - 窗口化:对于在步骤
中计算的每个分批明文多项式 ,接收方计算分量的第 次幂 ,其中 。( ) - 加密:接收者使用
对每个这样的幂进行加密,获得 个密文集合 。接收方将这些密文发送给发送方。
- 批处理:接收方将
发送方计算交集:
同态计算所有幂的加密:对于每个密文集合
,发送者同态地计算一个矢量 ,其中 是一个同态的密文加密 。最后,发送方获得 个向量 。同态计算点积:发送方同态计算
可选择对密文
进行模数转换以减少其大小,并将其送回给接收方。
解密并获得结果:对于每个
,接收方对其收到的所有密文进行解密,并将 个结果向量串联成一个长度为 的向量 。最后,接收方输出
定理 5.1:图 4 中的协议是半诚实环境下
证明:很容易看出,该协议正确计算交集的条件是散列程序成功,这以压倒性的概率
我们从一个腐败的接收者开始,并证明
腐败的发送者的情况是直接的。模拟器
5.2 讨论
5.2.1 功能隐私
虽然我们的协议(图 4)假设了一个具有电路隐私的全同态加密方案,但在实践中,用分级全同态加密来实例化它要有效得多(回顾第 2.3 节),即选择足够大的加密参数来避免昂贵的引导操作。 这并不改变协议的安全属性,因为加密参数的选择纯粹是基于公共参数
虽然电路隐私可以通过使用例如 [19] 的技术在完全同态加密中实现,但在实践中,稍弱的(统计)函数隐私概念 [27] 就足够了,而且在使用重新随机化和噪声淹没的平坦设置中更容易实现,其中发送者通过同态地添加一个具有非常大噪声的零的加密来重新随机化输出密码文 [19,25]。一个标准的 "污点定理"(见例如 [5])意味着,为了在不同执行的输出密码文之间实现
5.2.2 恶意行为
当考虑到恶意行为时,我们的协议面临几个挑战。最值得注意的是,发送方有能力在接收方的同态加密数据集上计算一个任意的函数。虽然发送方不能直接从密码文本中学习额外的信息,但它能够恶意地影响输出的正确性,例如强迫交集 / 输出为接收方的全集,或者更普遍的是
对于恶意接收者的情况,我们只需要考虑接收者可能引起的潜在泄漏(发送者没有输出)。首先,由于接收器有能力填补布谷鸟哈希表的空位,因此它可能提供一个大小大于
5.2.3 当接收者持有较大的集合时
到目前为止,我们已经做了一个假设,即接收方的集合大小比发送方的集合大小小很多。在此我们指出,我们的协议可以稍作修改,以处理相反的情况,即接收方持有较大的集合。我们的想法是,双方可以在执行我们的协议时互换角色,直到最后一步。在这一点上,接收方(现在一直扮演发送方的角色)持有一个向量
6 执行和绩效
6.1 性能成果
我们实现了图 4 中描述的 PSI 协议。对于完全同态加密,我们使用 SEAL v2.1 [38],它在 C++ 中实现了 Fan-Vercauteren 方案 [21]。我们使用的 SEAL 的参数在表 2 中给出,还有它们的计算安全等级
我们在表 3 中给出了我们的协议在 4、16 和 64 个线程的单线程和多线程执行中的详细计算性能结果。由于接收方的计算量与发送方的计算量相比通常较小,因此我们限制了接收方的单线程执行。不过,值得指出的是,如果有多线程,接收方的计算也会大大受益。表 4 给出了我们实验中的通信成本。我们选择了一个统计安全级别
该基准机有两个 18 核英特尔至强 CPU E52699 v3 @ 2.3GHz 和 256GB 的内存。我们使用这台单机进行所有测试,并使用 Linux tc 命令模拟网络延迟和带宽。具体来说,我们考虑一个局域网设置,双方通过本地主机连接,吞吐量为 10Gbps,往返时间(RTT)为 0.2ms。我们还考虑了三种广域网设置,分别为 100Mbps、10Mbps 和 1Mbps 带宽,每一种都有 80ms 的往返时间。所有时间都是以 10 次试验的平均值报告的。
表 2:SEAL v2.1 的加密参数集。安全性估计是基于 [1,2]
表 3: 我们的协议在
表 4:我们协议的通信成本(MB);
6.2 与 Pinkas 等人的比较
我们的主要比较点是 Pinkas 等人的 PSI 协议 [50],在该协议中,作者同时考虑了对称集合大小的情况,以及接收方的集合明显小于发送方的情况。虽然我们的协议可以很容易地处理对称集的大小,但与 [50] 相比,我们的主要优势在于非对称设置,也就是我们现在关注的。为了更容易比较这两个协议,我们在同一台机器上运行它们,并在表 5 中总结了并列的总运行时间。我们选择评估
在比较这两个协议时,我们发现,当发送者的集合大小大于
当在单线程局域网设置中计算大小为
由于我们的协议在非对称集大小的设置中实现了比 [50] 更低的通信量,所以随着我们减少网络带宽,我们获得了更好的性能。为了清楚地证明这一点,我们考虑了其他几个模拟广域网设置的网络环境。特别是,我们将各方限制在一个 100Mbps、10Mbps 和 1Mbps 的网络中,往返时间为 80ms。在这些环境中,我们的协议除少数例外情况外都优于 [50]。也就是说,在单线程的 100Mbps 设置中,
我们还考虑了当发送方使用 4 个以上的线程时,我们协议的运行时间。当在局域网设置中允许 16 个线程时,我们的运行时间在
我们协议的一个重要特性是接收方所需的工作量相对较小。在许多应用中,接收方的计算能力明显低于发送方。这在发现联系人的应用中最为明显,在这种应用中,接收方可能是一部手机,而发送方可以在一个计算能力不高的大型数据中心运行。例如,表 3 中的参数
6.3 与 Kolesnikov 等人比较
我们还将我们的协议与 Kolesnikov 等人 [37] 的协议进行比较,后者优化了不经意传输的使用。虽然他们的结果确实改善了大项目对称集的运行时间,但我们发现,当应用于我们的设置时,他们的改进没有提供什么好处,而且被 [50] 采用的其他优化所抵消。特别是,[50] 考虑了一个不同的不经意传输优化,它在短字符串上更有效,并且还优化了布谷鸟散列对非对称集大小的设置。
这些设计决定导致 [37] 在与参数为
与 [50] 和我们的协议相比,在广域网设置中,通信的增加转化为运行时间的增加。例如,当在 10Mbps 的连接上与
表 5:在
7 结论
尽管自 Craig Gentry 在 2009 年的开创性工作以来,全同态加密方案有了巨大的进步,但许多人仍然认为它对于实际使用情况来说太昂贵了。然而,在本文中,我们使用 Fan-Vercauteren 方案构建了一个实用的私有集相交协议,采用并结合了全同态加密和 PSI 的前沿工作的优化。我们认为我们的协议对于隐私联系人发现的使用情况特别有趣,它实现了非常低的通信开销:将一个 5 千项的集合与一个 1600 万项的集合相交,大约需要 12MB,这比以前最先进的协议要低很多。我们认为我们的工作是探索将完全同态加密应用于私有集合相交的可能性的第一步,并期待着进一步的讨论和优化。
参考文献
Martin R Albrecht. 2017. On dual lattice attacks against small-secret LWE and parameter choices in HElib and SEAL. In Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, 103–129.
Martin R. Albrecht, Rachel Player, and Sam Scott. 2015. On the concrete hardness of Learning with Errors. J. Mathematical Cryptology 9, 3 (2015), 169–203. http://www.degruyter.com/view/j/jmc.2015.9.issue-3/jmc-2015-0016/ jmc- 2015- 0016.xml
Yuriy Arbitman, Moni Naor, and Gil Segev. 2010. Backyard cuckoo hashing: Constant worst-case operations with a succinct representation. In Foundations of Computer Science (FOCS), 2010 51st Annual IEEE Symposium on. IEEE, 787–796.
Frederik Armknecht, Colin Boyd, Christopher Carr, Kristian Gjøsteen, Angela Jäschke, Christian A Reuter, and Martin Strand. 2015. A guide to fully homomorphic encryption. Technical Report. IACR Cryptology ePrint Archive (2015/1192).
Gilad Asharov, Abhishek Jain, Adriana López-Alt, Eran Tromer, Vinod Vaikuntanathan, and Daniel Wichs. 2012. Multiparty computation with low communication, computation and interaction via threshold FHE. In Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, 483–501.
Giuseppe Ateniese, Emiliano De Cristofaro, and Gene Tsudik. 2011. (If) Size Matters: Size-Hiding Private Set Intersection. In Public Key Cryptography - PKC 2011 - 14th International Conference on Practice and Theory in Public Key Cryptography, Taormina, Italy, March 6-9, 2011. Proceedings (Lecture Notes in Computer Science), Dario Catalano, Nelly Fazio, Rosario Gennaro, and Antonio Nicolosi (Eds.), Vol. 6571. Springer, 156–173. https://doi.org/10.1007/978-3-642-19379-8_10
Josh Benaloh and Michael de Mare. 1994. One-Way Accumulators: A Decentralized Alternative to Digital Signatures. Springer Berlin Heidelberg, Berlin, Heidelberg, 274–285. https://doi.org/10.1007/3-540-48285-7_24
Joppe W Bos, Kristin Lauter, Jake Loftus, and Michael Naehrig. 2013. Improved security for a ring-based fully homomorphic encryption scheme. In Cryptography and Coding. Springer, 45–64.
Tatiana Bradley, Sky Faber, and Gene Tsudik. 2016. Bounded size-hiding private set intersection. In International Conference on Security and Cryptography for Networks. Springer, 449–467.
Tatiana Bradley, Sky Faber, and Gene Tsudik. 2016. Bounded Size-Hiding Private Set Intersection. In Security and Cryptography for Networks - 10th International Conference, SCN 2016, Amalfi, Italy, August 31 - September 2, 2016, Proceedings (Lecture Notes in Computer Science), Vassilis Zikas and Roberto De Prisco (Eds.), Vol. 9841. Springer, 449–467. https://doi.org/10.1007/978-3-319-44618-9_24
Zvika Brakerski, Craig Gentry, and Shai Halevi. 2013. Packed ciphertexts in LWE-based homomorphic encryption. In Public-Key Cryptography–PKC 2013. Springer, 1–13.
Zvika Brakerski, Craig Gentry, and Vinod Vaikuntanathan. 2012. (Leveled) fully homomorphic encryption without bootstrapping. In Proceedings of the 3rd Innovations in Theoretical Computer Science Conference. ACM, 309–325.
Zvika Brakerski and Vinod Vaikuntanathan. 2014. Efficient fully homomorphic encryption from (standard) LWE. SIAM J. Comput. 43, 2 (2014), 831–871.
Ana Costache and Nigel P Smart. 2016. Which Ring Based Somewhat Homomorphic Encryption Scheme is Best?. In Cryptographers’ Track at the RSA Conference. Springer, 325–340.
Dana Dachman-Soled, Tal Malkin, Mariana Raykova, and Moti Yung. 2009. Efficient Robust Private Set Intersection. In Proceedings of the 7th International Conference on Applied Cryptography and Network Security (ACNS ’09). SpringerVerlag, Berlin, Heidelberg, 125–142. https://doi.org/10.1007/978-3-642-01957-9_8
Luc Devroye and Pat Morin. 2003. Cuckoo hashing: further analysis. Inform. Process. Lett. 86, 4 (2003), 215–219.
Martin Dietzfel 桶 ger, Andreas Goerdt, Michael Mitzenmacher, Andrea Montanari, Rasmus Pagh, and Michael Rink. 2010. Tight thresholds for cuckoo hashing via XORSAT. In International Colloquium on Automata, Languages, and Programming. Springer, 213–225.
Changyu Dong, Liqun Chen, and Zikai Wen. 2013. When private set intersection meets big data: an efficient and scalable protocol. In Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security. ACM, 789–800.
Léo Ducas and Damien Stehlé. 2016. Sanitization of FHE ciphertexts. In Annual International Conference on the Theory and Applications of Cryptographic Techniques. Springer, 294–310.
Ericsson. 2016. Ericsson Mobility Report: ON THE PULSE OF THE NETWORKED SOCIETY. Stockholm, Sweden (2016).
Junfeng Fan and Frederik Vercauteren. 2012. Somewhat Practical Fully Homomorphic Encryption. Cryptology ePrint Archive, Report 2012/144. (2012). http://eprint.iacr.org/.
Dimitris Fotakis, Rasmus Pagh, Peter Sanders, and Paul Spirakis. 2003. Space efficient hash tables with worst case constant access time. In Annual Symposium on Theoretical Aspects of Computer Science. Springer, 271–282.
Michael J. Freedman, Kobbi Nissim, and Benny Pinkas. 2004. Efficient Private Matching and Set Intersection. In Advances in Cryptology - EUROCRYPT 2004, International Conference on the Theory and Applications of Cryptographic Techniques, Interlaken, Switzerland, May 2-6, 2004, Proceedings (Lecture Notes in Computer Science), Christian Cachin and Jan Camenisch (Eds.), Vol. 3027. Springer, 1–19. https://doi.org/10.1007/978- 3- 540- 24676- 3_1
Alan Frieze, Páll Melsted, and Michael Mitzenmacher. 2009. An analysis of random-walk cuckoo hashing. In Approximation, Randomization, and Com 桶 atorial Optimization. Algorithms and Techniques. Springer, 490–503.
Craig Gentry. 2009. Fully homomorphic encryption using ideal lattices.. In STOC, Vol. 9. 169–178.
Craig Gentry, Shai Halevi, and Nigel P Smart. 2012. Homomorphic evaluation of the AES circuit. In Advances in Cryptology–CRYPTO 2012. Springer, 850–867.
Craig Gentry, Shai Halevi, and Vinod Vaikuntanathan. 2010. i-hop homomorphic encryption and rerandomizable Yao circuits. In Annual Cryptology Conference. Springer, 155–172.
Craig Gentry, Amit Sahai, and Brent Waters. 2013. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based. In CRYPTO (1) (Lecture Notes in Computer Science), Ran Canetti and Juan A. Garay (Eds.), Vol. 8042. Springer, 75–92. https://doi.org/10.1007/ 978- 3- 642- 40041- 4
Ran Gilad-Bachrach, Nathan Dowlin, Kim Laine, Kristin Lauter, Michael Naehrig, and John Wernsing. 2016. CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy. In Proceedings of The 33rd International Conference on Machine Learning. 201–210.
Carmit Hazay and Yehuda Lindell. 2008. Efficient protocols for set intersection and pattern matching with security against malicious and covert adversaries. In Theory of Cryptography Conference. Springer, 155–175.
Carmit Hazay and Kobbi Nissim. 2010. Efficient set operations in the presence of malicious adversaries. In International Workshop on Public Key Cryptography. Springer, 312–331.
Carmit Hazay and Kobbi Nissim. 2012. Efficient set operations in the presence of malicious adversaries. Journal of cryptology 25, 3 (2012), 383–433.
Yan Huang, David Evans, and Jonathan Katz. 2012. Private set intersection: Are garbled circuits better than custom protocols?. In NDSS.
Bernardo A. Huberman, Matt Franklin, and Tad Hogg. 1999. Enhancing Privacy and Trust in Electronic Communities. In In Proc. of the 1st ACM Conference on Electronic Commerce. ACM Press, 78–86.
Yuval Ishai, Joe Kilian, Kobbi Nissim, and Erez Petrank. 2003. Extending oblivious transfers efficiently. In Annual International Cryptology Conference. Springer, 145161.
Seny Kamara, Payman Mohassel, Mariana Raykova, and Seyed Saeed Sadeghian. 2014. Scaling Private Set Intersection to Billion-Element Sets. In Financial Cryptography and Data Security - 18th International Conference, FC 2014, Christ Church, Barbados, March 3-7, 2014, Revised Selected Papers (Lecture Notes in Computer Science), Nicolas Christin and Reihaneh Safavi-Naini (Eds.), Vol. 8437. Springer, 195–215. https://doi.org/10.1007/978-3-662-45472-5_13
Vladimir Kolesnikov, Ranjit Kumaresan, Mike Rosulek, and Ni Trieu. 2016. Efficient Batched Oblivious PRF with Applications to Private Set Intersection. Cryptology ePrint Archive, Report 2016/799. (2016). http://eprint.iacr.org/2016/799.
Kim Laine, Hao Chen, and Rachel Player. 2016. Simple Encrypted Arithmetic Library - SEAL (v2.1). Technical Report. Microsoft Research. https://www.microsoft.com/en-us/research/publication/ simple- encrypted- arithmetic- library- seal- v2- 1/
Mikkel Lambaek. 2016. Breaking and Fixing Private Set Intersection Protocols. Cryptology ePrint Archive, Report 2016/665. (2016). http://eprint.iacr.org/2016/ 665.
Yehuda Lindell. 2016. How To Simulate It - A Tutorial on the Simulation Proof Technique. Cryptology ePrint Archive, Report 2016/046. (2016). http://eprint. iacr.org/2016/046.
Adriana López-Alt, Eran Tromer, and Vinod Vaikuntanathan. 2012. On-the-fly multiparty computation on the cloud via multikey fully homomorphic encryption. In Proceedings of the forty-fourth annual ACM symposium on Theory of computing. ACM, 1219–1234.
Vadim Lyubashevsky, Chris Peikert, and Oded Regev. 2010. On Ideal Lattices and Learning with Errors over Rings. In Advances in Cryptology - EUROCRYPT 2010, 29th Annual International Conference on the Theory and Applications of Cryptographic Techniques, French Riviera, May 30 - June 3, 2010. Proceedings (Lecture Notes in Computer Science), Henri Gilbert (Ed.), Vol. 6110. Springer, 1–23. https://doi.org/10.1007/978- 3- 642- 13190- 5_1
Moxie Marlinspike. 2014. The Difficulty Of Private Contact Discovery. A company sponsored blog post. (2014). https://whispersystems.org/blog/ contact- discovery/.
C. Meadows. 1986. A More Efficient Cryptographic Matchmaking Protocol for Use in the Absence of a Continuously Available Third Party. In 1986 IEEE Symposium on Security and Privacy. 134–134. https://doi.org/10.1109/SP.1986. 10022
Michael Naehrig, Kristin E. Lauter, and Vinod Vaikuntanathan. 2011. Can homomorphic encryption be practical?. In Proceedings of the 3rd ACM Cloud Computing Security Workshop, CCSW 2011, Chicago, IL, USA, October 21, 2011, Christian Cachin and Thomas Ristenpart (Eds.). ACM, 113–124. https://doi.org/10.1145/ 2046660.2046682
Michele Orrù, Emmanuela Orsini, and Peter Scholl. 2017. Actively Secure 1-outof-N OT Extension with Application to Private Set Intersection. In Cryptographers’ Track at the RSA Conference. Springer, 381–396.
Rasmus Pagh and Flemming Friche Rodler. 2001. Cuckoo hashing. In European Symposium on Algorithms. Springer, 121–133.
Benny Pinkas, Thomas Schneider, Gil Segev, and Michael Zohner. 2015. Phasing: Private set intersection using permutation-based hashing. In 24th USENIX Security Symposium (USENIX Security 15). 515–530.
Benny Pinkas, Thomas Schneider, and Michael Zohner. 2014. Faster Private Set Intersection Based on OT Extension.. In Usenix Security, Vol. 14. 797–812.
Benny Pinkas, Thomas Schneider, and Michael Zohner. 2016. Scalable Private Set Intersection Based on OT Extension. Cryptology ePrint Archive, Report 2016/930. (2016). http://eprint.iacr.org/2016/930.
Martin Raab and Angelika Steger. 1998. “Balls into Bins” – A Simple and Tight Analysis. In International Workshop on Randomization and Approximation Techniques in Computer Science. Springer, 159–170.
ABI Research. 2012. Average Size of Mobile Games for iOS Increased by a Whopping 42% between March and September. London, United Kingdom (2012).
Peter Rindal and Mike Rosulek. 2016. Improved Private Set Intersection against Malicious Adversaries. Cryptology ePrint Archive, Report 2016/746. (2016). http://eprint.iacr.org/2016/746.
Ronald L Rivest, Len Adleman, and Michael L Dertouzos. 1978. On data banks and privacy homomorphisms. Foundations of secure computation 4, 11 (1978), 169–180.
Nigel P Smart and Frederik Vercauteren. 2014. Fully homomorphic SIMD operations. Designs, codes and cryptography 71, 1 (2014), 57–81.