笔记分享 | 组队学习密码学(3)——隐私求交的关键路径及其应用

528 阅读11分钟

[开放隐私计算]

00.jpg

****前言

在传统的数据共享和数据分析中,往往需要多个参与方共享他们的数据集以进行计算或分析。例如在社交网络中,两个用户希望找到他们之间的共同好友,而不想分享他们完整的好友列表。再比如市场调研中,两个公司希望比较他们的客户数据库中的共同客户,以了解他们之间的重叠。

然而,由于隐私和安全的考虑,参与方通常不希望直接将他们的数据集共享给其他方。因此,隐私求交(Private Set Intersection, PSI)应运而生,PSI可以用于在两个或多个数据集之间查找共同的元素,而不需要泄露数据集的详细信息。

目前,隐私求交被广泛应用于隐私保护场景下的数据共享和数据分析任务。为了增强隐私保护,隐私求交协议通常会使用加密技术和安全多方计算协议。这些技术确保了数据在传输和处理过程中的保密性和安全性,以防止未经授权的访问和信息泄露。

近期,来自华东师范大学的在读博士研究生杨赟博在OpenMPC社区组对学习里分享了隐私求交的关键路径及其应用,以下是分享全文:

10.png

1

****PSI简介

本次课程将从以下几个方面进行讲解,如果本次课程无特殊说明均为半诚实模型,在半诚实模型下,参与方诚实地执行协议,但是想要去获得其他参与方的隐私数据。

11.png

在隐私求交协议中,有两个参与方,Bob和Alice,他们想要在不透露自己集合元素的情况下,求出交集信息,交集外的数据不能被另外一方获得。

PSI主要可以分为三个技术路径实现,分别为混淆电路,基于不经意传输构造的不经意的伪随机函数和全同态加密。

12.png

2

******基于混淆电路的构造
**

首先,先介绍一下布隆过滤器,布隆过滤器可以将一系列的数据编码为一个比特向量,随后判断特定元素是否在布隆过滤器中。在初始化阶段,参与方选择两个哈希函数(映射函数),并将相应的数据随机映射到随机的位置中。

13.png

预处理阶段时,生成一个长度为m的全0向量,即其中每个元素都是0,在插入阶段,首先计算x的两个哈希值,并对相应得到的结果置为1。比如将元素x哈希至如下两个位置,并在对应位置置为1。

14.png

随后我们介绍查询阶段,在查询阶段中,首先对元素进行哈希,然后取出相应位置的元素,如果所有位置均为1,那么该元素会以很大概率存在于布隆过滤器中,当任一位置为0时,那么说明该元素肯定不在布隆过滤器中。

15.png

16.png

17.png

接下来我们介绍一种基于混淆电路和布隆过滤器构造的隐私求交协议。首先双方各自根据自己的集合元素,生成相同长度的布隆过滤器。

18.png

19.png

20.png

随后两个参与方调用AND电路,计算仅含有交集的布隆过滤器,随后获得结果的参与方利用自己的集合元素,在结果中进行查询,输出交集。在协议执行过程中,双方构造的布隆过滤器都可以得到充分的保护。

21.png

3

******基于全同态加密的构造
**

接下来,我们来讲一下基于全同态加密构造的隐私求交协议,首先各参与方先将各自的集合元素编码为一个多项式,每个元素都是这个多项式的一个根。

22.png

23.png

24.png

我们可以发现当x在交集时,那么x是两个多项式和的根,如果x不在交集时,那么x就不是两个多项式和的根。我们接下来可以使用同态加密,对其中一个参与方的系数进行加密,并将加密后的系数发送给另外一个参与方,计算加法。

25.png

26.png

27.png

得到加和多项式的一方,利用自己本地的数据代入,并判断是否是0的密文,如果是,则说明对应元素在交集中。当然该方案只是个框架,并不安全,协议执行过程中需要同步考虑使用掩码掩盖系数,以确保安全性。

28.png

29.png

4

******各方案优缺点的比较
**

接下来我们比较一下这些技术路径,可以发现不经意的伪随机函数在通信复杂度和计算复杂度中达到了一个很好的平衡,并广泛用于隐私求交的构造中,接下来,我们重点基于不经意的伪随机函数构造的隐私求交协议。

30.png

5

****不经意伪随机函数(OPRF)的框架

下图是基于不经意的伪随机函数的技术框架,OPRF允许一个参与方获得密钥,另一个参与方获得密钥下的特定值的伪随机函数,接下来我们重点来讲一下OPRF的构造。

31.png

接下来我们将从以下几个方面来引入不经意的伪随机函数。

32.png

6

****基础不经意传输(OT)的构造在基础OT协议中,Bob持有两个消息,Alice持有一个选择向量,Alice想要从两个消息中选择一个,同时Bob不知道Alice具体会选择哪个。

33.png

我们接下来来介绍一种简单的构造方式,Alice生成一把公私钥对,并随机选择一个随机数,并按照如下的顺序进行放置,Bob使用Alice生成的公钥进行加密,同时Alice仅对一个消息具有解密能力,正确性显而易见。在该方案中,我们可以使用任意的公钥加密算法来实例化该算法。

34.png

35.png

36.png

37.png

7

****OT扩展(OT Extension)的构造

但是基础OT协议都是公钥操作,如果需要传输大量消息,那么会导致巨大的计算开销。我们希望使用少量的公钥操作来实例化大量的对称操作,这也是OT扩展协议设计的初衷,接下来我们来介绍IKNP03的协议。

38.png

39.png IKNP03中有两个参与方,Bob具有选择向量r,并对其进行扩展,得到两个秘密分享的矩阵,具体的构造如下所示:

40.png

41.png

42.png

43.png

Alice在这个使用得到了0,1对应的密钥,Bob获得了其中的一个密钥,即具有其中一个消息的解密能力。

44.png

45.png

以下是基于的DH密钥协商协议构造不经意的伪随机函数的一个示例,但是我们会发现基于DH的算法需要很多次公钥加密操作,实际场景中非常难使用。

46.png

47.png

48.png

49.png

50.png

51.png

接下来我们来看一下如何使用IKNP03的思路来构造OPRF,下图是主要构造的方式,在KKRT16中发表,需要说明的一点是,q,s是Alice的伪随机函数密钥,r是Bob对该轮的查询。

52.png

8

****PSI的性能优化方式

之前所讲的所有方案都是需要对元素一个个比较,这需要平方次数的比较,接下来我们介绍一种优化方法,使得复杂度从平方次降到线性次。

53.png

Bob使用布谷鸟哈希,Alice使用普通哈希,对集合元素进行分组,这样两个参与方只需要对特定的桶进行比较操作即可。

54.png

55.png

56.png

我们发现Bob每个桶里只有一个元素,Alice每个桶里有若干个元素,Bob只需要对Alice同理的元素进行固定次比较即可,大大降低了比较次数,具体的优化请参见Benny Pinkas在2015年发表的论文。

57.png

9

****隐私求交协议的变体协议

如下是PSI的其他变体,PSI的这些变体是PSI协议本身对扩展,依靠这些变体,可以很好地服务于更多的场景,在这些场景中,隐私集合仍然是一个隐私,我们需要在集合之上进行特定运算,以达到相应目的。

我们介绍几个常用的隐私求交变体协议:

(1). PSI with cardinality: 输出集合的交集元素总个数,经典工作有: [2], [4]

(2). Delegated PSI: 客户端将大量的运算工作外包给一个算力极强的不可信服务器,最终客户端得到交集信息,经典工作有: [3], [4]

(3). Labeled PSI: 除了输出交集信息外,同时还需要输出交集信息相关的其他属性信息,经典工作有: [5]

(4). Circuit PSI: 各参与方之间获得交集的分片,只要收集到了所有的交集分片,则可以直接恢复相应交集,主要用于基于秘密分享的安全多方计算场景,经典工作有: [2]

(5). Multiparty PSI: 多个参与方之间联合计算交集,各参与方只能知道整体交集,不能知道部分交集(如任意两个参与方的交集信息),经典工作有: [1]

58.png

10

****隐私求交协议的应用

接下来讲一下PSI的应用,其中之一是联邦学习数据集的处理,

在联邦学习中,我们首先需要对数据进行对齐,PSI及其变体可以在联邦学习的数据对齐的过程中,在不透露给对方额外信息的情况下对齐数据,并保护隐私。

59.png

PSI的第二个应用是在可搜索加密场景中保护查询模式和访问模式,我们的方案已发表于CCF B类的期刊中,接下来讲重点讲解一下这个工作的具体内容。

60.png

61.png

可搜索加密允许用户将加密数据上传后,向不可信的服务器发起查询请求,在密文环境中进行搜索,并保证查询的正确性和数据的安全性。

可搜索加密主要分为四步,前两步为预处理阶段,后两步为查询阶段:

(1). 数据持有者加密数据;

(2). 数据持有者上传加密数据;

62.png

(3). 用户发起查询请求,用户和服务器进行交互,服务器返回最后的结果;

(4). 用户解密服务器返回的密文结果,得到最终的查询结果。

63.png

在交互过程中或多或少会泄漏一些查询模式和访问模式,目前许多工作表明,只要有部分的查询模式或访问模式,并对数据库有一部分的先验知识,就可以恢复用户的查询隐私或最终的结果,具体的查询模式和访问模式的定义如下:

64.png

为了保护查询模式和访问模式,我们在IXT中引入PSI的一种变体,称之为labeled PSI算法,在labeled PSI算法中,我们返回的不仅是交集,同时包括文件标识符,即只有在交集中的元素,才可以得到对应的标识符。

同时基于隐私求交的安全性,服务器得不到任何的查询请求和搜索结果的敏感信息,从而保护了查询模式和访问模式,具体构造请参见IXT论文。

65.png

66.png

67.png

11


参考文献

[1]. Kolesnikov V, Matania N, Pinkas B, et al. Practical multi-party private set intersection from symmetric-key techniques[C]//Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. 2017: 1257-1272.

[2]. Garimella G, Mohassel P, Rosulek M, et al. Private set operations from oblivious switching[C]//Public-Key Cryptography–PKC 2021: 24th IACR International Conference on Practice and Theory of Public Key Cryptography, Virtual Event, May 10–13, 2021, Proceedings, Part II. Cham: Springer International Publishing, 2021: 591-617.

[3]. Abadi A, Terzis S, Dong C. Feather: lightweight multi-party updatable delegated private set intersection[J]. Cryptology ePrint Archive, 2020.

[4]. Duong T, Phan D H, Trieu N. Catalic: Delegated PSI cardinality with applications to contact tracing[C]//Advances in Cryptology–ASIACRYPT 2020: 26th International Conference on the Theory and Application of Cryptology and Information Security, Daejeon, South Korea, December 7–11, 2020, Proceedings, Part III 26. Springer International Publishing, 2020: 870-899.

[5]. Uzun E, Chung S P, Kolesnikov V, et al. Fuzzy Labeled Private Set Intersection with Applications to Private Real-Time Biometric Search[C]//USENIX Security Symposium. 2021: 911-928.