浅谈PSI隐私集合求交
1 简介
PSI全称隐私保护集合交集(Private Set Intersection, PSI),是指持有数据的两方能够计算得到双方数据集合的交集部分,而不暴露交集以外的任何数据集合信息。
PSI通常具有以下三个特点:
- 半可信场景:数据双方不愿意暴露所有数据,仅希望求得数据集合交集
- 数据最小化:除了数据集合交集以外的数据不能泄露给任意一方
- 安全双方计算:参与计算的双方需要共同实现一套安全的计算协议,以保证数据的安全性。
PSI有多种实现方式,以下是一些常见的实现方式及复杂度。
2 简单案例
根据两方选择的数据和唯一标识数据的字段(可以理解为主键,例如id、身份证、手机号),找到两方数据集共有的记录,并按一样的顺序排列存储为对齐结果。
例如:A、B两方有两张表a和b,分别为
表a 人员存款表:
姓名 |
身份证 |
银行卡存款 |
tom |
123 |
200000 |
jerry |
456 |
30000 |
hank |
789 |
5000 |
wang |
54321 |
0 |
表b 消费汇总表:
身份证 |
是否vip会员 |
年消费 |
789 |
1 |
4000 |
01234 |
0 |
500 |
11111 |
1 |
6000 |
456 |
0 |
5000 |
123 |
1 |
10000 |
双方通过身份证字段进行PSI,计算出最后共有的记录是标红的三条,结果如下:
123 |
456 |
789 |
在此过程中,A方不希望B方知道交集数据的银行卡存款,B方也不希望A方知道交集数据的年消费额等数据,同时A方也不该知道B方还有“01234”身份证的用户,反之亦然。双方应该只知道结果中的身份证是数据集合的交集。
3 技术原理
以下简单介绍一下使用伪随机函数实现的PSI。
假设有两方A、B,分别有X、Y数据id集合。
- H()是指A、B双方对自己的数据id集合做一次hash,确保两方PSI计算数据等长
- B方使用伪随机函数生成的随机因子r,乘以自己的H(Y),并发给A方
- A方使用伪随机函数生成的密钥k,分别乘以自己的H(X)和B方发送过来的B1得到A和B2,再把两个计算结果都发送给B方
- B方在使用随机因子r的逆r-1乘以B2,消去随机因子r,得到B
- A和B使用相同的密钥k加密,即可进行密文比较计算交集。
4 应用场景
- 计算广告的实际效果
线上广告是一种重要的广告形式。对于广告的有效程度的衡量的常见方法是计算所谓的转换率,也就是浏览广告的用户中有多少用户最终浏览了相应的商品页面,或是最终购买了相应的商品或是服务。一种通用的计算方法是由计算浏览广告的用户信息(由广告发送方占有)和完成相应交易的用户信息(由商家占有)的交集来计算(如计算交易总额或是总交易量等)。
- 寻找联系人
当一个用户注册使用一种新的服务(如微信、Whatsapp 等)的时候,从用户的现有联系人中寻找有哪些已经注册了同类的服务是一种在大多数情况下十分必要的操作。通过将用户的联系人发送给服务提供商可以有效地完成这项功能,但是与此同时用户的联系人信息,一种在大多数情况下被认为是隐私的信息,也被暴露给服务提供商了。因此在这种场景下,将用户的联系人信息作为一方的输入,将服务提供商的所有用户信息作为另一方的输入来进行PSI 协议可以完成发现联系人的功能,而且可以防止交集以外的信息泄露给任何一方。
- 联邦学习样本对齐
在联邦学习发起训练之前,必须基于双方的数据进行PSI,使用双方共有的用户信息(例如用户ID)找出交集,从而对应两方数据的特征和标签,在对齐的数据集上进行模型训练才有意义。
5 参考
- 隐私保护集合求交技术PSI — 晓鹿(https://blog.alienx.cn/2020/10/10/E10101535/)
- 崔泓睿,刘天怡,郁昱,程越强,张煜龙,韦韬:多方安全计算热点-隐私保护集合求交技术(PSI)分析研究报告 (https://anquan.baidu.com/upload/ue/file/20190814/1565763561975581.pdf)
- 点赞
- 收藏
- 关注作者
评论(0)