多方安全计算:隐私保护集合求交技术

1,514 阅读4分钟

​​摘要:PSI 全称隐私保护集合交集(Private Set Intersection, PSI),是指持有数据的两方能够计算得到双方数据集合的交集部分,而不暴露交集以外的任何数据集合信息。

本文分享自华为云社区《浅谈PSI隐私集合求交》,原文作者:tics 神奇海螺 。

PSI 全称隐私保护集合交集(PrivateSet Intersection, PSI),是指持有数据的两方能够计算得到双方数据集合的交集部分,而不暴露交集以外的任何数据集合信息。

PSI 通常具有以下三个特点:

1. 半可信场景:数据双方不愿意暴露所有数据,仅希望求得数据集合交集;

2. 数据最小化:除了数据集合交集以外的数据不能泄露给任意一方;

3. 安全双方计算:参与计算的双方需要共同实现一套安全的计算协议,以保证数据的安全性。

PSI 有多种实现方式,以下是一些常见的实现方式及复杂度。

1、简单案例

根据两方选择的数据和唯一标识数据的字段(可以理解为主键,例如 id、身份证、手机号),找到两方数据集共有的记录,并按一样的顺序排列存储为对齐结果。

例如:A、B 两方有两张表 a 和 b,分别为

表 a 人员存款表:

​表 b 消费汇总表:

双方通过身份证字段进行 PSI,计算出最后共有的记录是标红的三条,结果如下:

在此过程中,A 方不希望 B 方知道交集数据的银行卡存款,B 方也不希望 A 方知道交集数据的年消费额等数据,同时 A 方也不该知道 B 方还有“01234”身份证的用户,反之亦然。双方应该只知道结果中的身份证是数据集合的交集。

2、技术原理

以下简单介绍一下使用伪随机函数实现的 PSI。

假设有两方 A、B,分别有 X、Y 数据 id 集合。

1. H()是指 A、B 双方对自己的数据 id 集合做一次 hash,确保两方 PSI 计算数据等长

2. B 方使用伪随机函数生成的随机因子 r,乘以自己的 H(Y),并发给 A 方

3. A 方使用伪随机函数生成的密钥 k,分别乘以自己的 H(X)和 B 方发送过来的 B1 得到 A 和 B2,再把两个计算结果都发送给 B 方

4. B 方在使用随机因子 r 的逆 r-1 乘以 B2,消去随机因子 r,得到 B

5. A 和 B 使用相同的密钥 k 加密,即可进行密文比较计算交集

3、应用场景

  • 计算广告的实际效果

线上广告是一种重要的广告形式。对于广告的有效程度的衡量的常见方法是计算所谓的转换率,也就是浏览广告的用户中有多少用户最终浏览了相应的商品页面,或是最终购买了相应的商品或是服务。一种通用的计算方法是由计算浏览广告的用户信息(由广告发送方占有)和完成相应交易的用户信息(由商家占有)的交集来计算(如计算交易总额或是总交易量等)。

  • 寻找联系人

当一个用户注册使用一种新的服务(如微信、Whatsapp 等)的时候,从用户的现有联系人中寻找有哪些已经注册了同类的服务是一种在大多数情况下十分必要的操作。通过将用户的联系人发送给服务提供商可以有效地完成这项功能,但是与此同时用户的联系人信息,一种在大多数情况下被认为是隐私的信息,也被暴露给服务提供商了。因此在这种场景下,将用户的联系人信息作为一方的输入,将服务提供商的所有用户信息作为另一方的输入来进行 PSI 协议可以完成发现联系人的功能,而且可以防止交集以外的信息泄露给任何一方。

  • 联邦学习样本对齐

在联邦学习发起训练之前,必须基于双方的数据进行 PSI,使用双方共有的用户信息(例如用户 ID)找出交集,从而对应两方数据的特征和标签,在对齐的数据集上进行模型训练才有意义。

4、参考

点击关注,第一时间了解华为云新鲜技术~