隐私求交| Simple, Fast Malicious Multiparty Private Set Intersection

本文详细解读了CCS2021年一篇关于隐私求交(Private Set Intersection, PSI)的论文,探讨了如何构建恶意可拓展的PSI协议,主要涉及 Oblivious Programmable PRF (OPPRF) 和 Oblivious Key-Value Store (OKVS) 技术。文章介绍了从无合谋到有合谋情况下的PSI协议设计,包括递归构造、ZeroXOR协议及其在抵抗合谋攻击中的应用。内容适合对多方安全计算感兴趣的读者。" 120022154,627765,SwiftUI教程:Text视图填充属性详解,"['swift', 'swiftui', 'UI设计', '界面开发', '图形用户界面']

开放隐私计算

隐私求交(Private Set Intersection, PSI)是多方安全计算中的常见例子之一,本文来源于知乎用户云波的投稿,对CCS2021年的一篇论文进行整理解读,原文可以点击文末的“阅读原文”访问。小伙伴们有什么不懂的地方也可以在留言区留言,大家相互交流,互相学习。

1

Introduction

Private Set Intersection即隐私集合求交集,简写为PSI,是安全多方计算中常见的一种协议,用于多个参与方共同完成求得各自隐私集合的交集。简单地说,现在有个参与方,每一方都有一个私有集合,这个参与方希望得知他们的集合里有哪些公共元素。在某些应用里也会有寻找共同好友之类的服务,但往往会直接用私有集合求交集,这并不是参与方们可接受的,他们的诉求是在不暴露自己隐私集合的前提下,求出这个集合的交集,即。

两方PSI随着多年的发展已十分成熟,许多协议能达到的速度已经比肩通过交换哈希值来求交集的朴素但不安全的办法。因此文章将重点放在多方PSI的研究上,以合谋问题为主线,给出了从原始协议到最终协议的完整构造过程。此外,文章对于其他优秀多方PSI方案的梳理也是十分详尽的。

2

Overview of the Techniques

文章的目标是构造一个恶意的可拓展PSI协议,使用的主要工具是oblivious programmable PRF (OPPRF) 和 oblivious key-value store (OKVS)。协议的核心组件是OKVS,故对其进行简要的介绍。

现有两方和,手头上有一个包含个键值映射的集合,(同)表示key,一般是有实际意义的;(同)则是(伪)随机值,可以带入python的字典进行理解。希望能够得到这个映射集合,但他并不想暴露自己所选用的。

key-value store(KVS)是一种数据结构,它提供了两个算法,名曰和。能够将转化为一个object (或以可忽略的概率输出);则可以使用和一个key 来得到一个输出值,满足性质:若有,则;否则是一个随机值。如果将看成一个点集,将其进行拉格朗日插值可以得到一个阶多项式,即为多项式的系数,自然地,有。当然,实际应用时并不会使用这种方式,更多细节可以参考PaXoS[^1],文章的实现也基于PaXoS(一种具体的OKVS实现)完成。

现在考虑这个映射集合的取值,选用随机值能够确保他人在获取后无法判断的选取情况,从上面的例子可以看出,会因为的随机性而变为一条随机的曲线。用更为形式化的语言来描述,考虑实验:

  1. 对于:均匀选取。

  1. 返回https://mmbiz.qpic.cn/mmbiz_svg/tqRiaNianNl1ntricSudaLTJP7d7icYJ7GMhfRZf7vj9msODYIKfRzklTf9U33H7iaSOxofaCFxuJvhdXcz88xDotqQVrwZZmQBbu/0?wx_fmt=svg

如果对于任意两个大小为的和任意的PPT敌手,有

https://mmbiz.qpic.cn/mmbiz_svg/tqRiaNianNl1ntricSudaLTJP7d7icYJ7GMhdJmOoFGy5ZHuAmzR8RSFNPgwFYDRPURdjKiaKQT1gURJCN0J1lOoPnoYV4bhecj2q/0?wx_fmt=svg

则称一个KVS是不经意的(oblivious)。

使用OKVS就能完成他的目的,他可以将得到的同时发给若干个人,以达到某种程度上对于的共享。

文章的主线是关于合谋问题的讨论,具体地可以分为无合谋(即腐化方人数 )和有合谋(即腐化方人数)两种情况。我们主要介绍的是半诚实的协议,恶意的协议在半诚实协议的基础上直接添加随机预言机就行了,也就是在所有使用集合元素的地方,都用来替换。

我们先从无合谋时开始进行分析,现假设有三方,他们分别有三个集合记为,大小均为。随机生成一个PRF的密钥,并根据自己的集合https://mmbiz.qpic.cn/mmbiz_svg/tqRiaNianNl1ntricSudaLTJP7d7icYJ7GMh8RcgEuHYAj3dA1Dau56d5J8oyT2iaQF59XXlbfjBA5ibIf9kTjCh0KXwWspnrPWSuM/0?wx_fmt=svg(这里集合中元素的上标表示它所属的参与方,即,下标表示在集合中的位置)生成一个键值对集合https://mmbiz.qpic.cn/mmbiz_svg/tqRiaNianNl1ntricSudaLTJP7d7icYJ7GMhaCX4WnWNBV6BLl7MO9z5dicybSicPiaosqxRUkwE30sbdHsQp593yDUUrDQibBtLRZEp/0?wx_fmt=svg,拉出来单个键值对看,就是集合中的每个元素映射到它自身的伪随机函数值,那么可以用OKVS的算法将转换为一个object 。现在,选择将交给,将交给。到目前为止,各方对于的了解程度是怎样的?只知道一个密钥,对一无所知;好像比知道的多一些,因为他得到的是由和有密切关系的生成的,但所限于OKVS这一结构,不会暴露键的取值,故而也无从得知的信息。

继续往下,会用对自己的集合进行一次转换,以得到新集合;则会用算法对集合进行一次转换,得到新集合https://mmbiz.qpic.cn/mmbiz_svg/tqRiaNianNl1ntricSudaLTJP7d7icYJ7GMhibBE6xtl3CF1WN9GKhsLfavXSHmGexI2BnfQjurgNibkiaEys1PRJYDnOcpouRRxf3t/0?wx_fmt=svg。我们以一个在交集中的元素的视角分析,它在中会变为,在中会变为,由推知,可以看出,交集中的元素以另一种形式被保存在两个新集合中并且仍属于两个新集合的交集。那么很自然地,只要对两个新集合再求一次交集,得到的交集结果形如,再求一次逆就得到了原本的模样,而现有的两方PSI是十分成熟和高效的。

这就是整篇文章中所有协议的雏形,自然存在不少问题,之后的改进都据此展开,所谓“见微知著,识人心智”,这里看懂了,后面的也就水到渠成了,但是这个渠是怎么通的,也是文章一步步带着我们思考的一条线。

我们试着用这个简单的协议来解决有合谋的状况。假设合谋,则可以将交给。当域的范围很小时,会尝试猜测中是否有某个元素,他可以计算和,如果二者相等则有,即使不在交集中,但它的存在仍被所获知,当整个域被遍历后,便可以得到。除此之外,还有一些漏洞在后续改进时会提到。

3

PSI with no collusion

3.1 A Recursive Construction with 𝑂(𝑛) rounds

我们先看如何将这个原始的三方协议扩展至n方的情形。原始协议是将三方PSI转化为两方PSI,那么对于n方PSI,可以试着将其用类似的方式转化为n-1方PSI。对于,可以将OKVS的给他们,这样他们只需要和执行相同的操作就行,后续转化为再利用新集合交集,如图1所示。

图 1

上述简单的方案有一个明显的问题,假设是恶意敌手,它在生成OKVS时可以使用一个假的键值对,其中且。这样会使得在求交集时,会出现在交集集合中,但其实并不是交集中的元素。一个简单的例子如图2所示,可以看到使用了这个键值对,这导致原本和中应该出现的变为了,最后会得出是交集中元素的错误结果,这让获知了他不应该知道的两条信息:①.中有元素;②.和中有元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值