隐私集合求交PSI

隐私集合求交PSI

原理:双方各自都加密,不泄露明文数据,交换加密数据后,(执行同态加密运算)求两者的交集集合/个数,而不泄露非交集合给任何一方

场景1:Chrome Password Checkup密码检查插件
目的:我的数据在不在你的DB中?即交集

实现效果:

1
2
3
4
5
6
1、云端几十G的数据,没有全部发送给client,模糊匹配后只发送了几M的数据
2、DB不在client端,有更新的问题
3、云端不知道你的原始数据,同时也不会知道你的实际数据
4、浏览器本地找出了交集结果,同时也没发送pwd,云端不需要知道交集
5、中间使用了EDCH加密算法的一个变体,核心算法就是ck(sk(hash)) = sk(ck(hash))
6、上述流程,client端可开放给其他公司合作,并不会泄露云端DB原始的密码库,只需要双方保持算法一致

要求不高的话,可以不用key加密散列的密码,即不发送Ⅱ(client端不上传密码),云端直接返回几M的明文hash(username,pwd)。但次数多了,client端是可以拿到全量的DB库

场景2:

机器学习


机器学习期间,理论上只需要知道误差的值,来调整参数,不需要知道原始数据的

联邦学习

目的:公司有自己的机器学习模型,对大量数据进行训练,期望联合其他公司的数据来更新模型

横向联邦学习:两个数据集中,用户特征字段交集较多,用户ID重叠较少,想拉新用户
纵向联邦学习:两个数据集中,用户ID交集较多,但用户特征字段重叠较少,想扩展老用户的特征+标签

联邦学习的安全问题:恶意的联邦成员,利用建模阶段所需的大量中间值,推算出对应的原始数据
联邦学习的特点:加密中间数据,非原始数据

采用隐私保护技术(见下文)来提升联邦学习的安全性。

隐私保护技术

主要思想是对训练模型过程的中间结果进⾏某种变换,以掩盖原始数据或改变其数据特性,从⽽使得恶意联邦成员的破解技术失效,同时还能保证诚实的联邦成员依然可以从数据中学习到经验。
相当于数据提供方将数据放入保险箱中进行传输,其他联邦成员无法打开箱子看到真实数据,但却可以在不解锁的情况下,对保险箱中的数据完成训练所需的操作;当训练完成后,数据提供方再开箱取出计算结果即可。
这种理想的功能需要我们使用特殊的技术进行实现,其中常⽤技术包括差分隐私、同态加密等。

K-匿名

你要想公开某些批量信息,要对多列数据进行抽象/模糊化、泛化处理,对某个属性字段的范围变大,形成K个等价类

  • 假名化 将身份ID重命名,映射可逆的
  • 去标识化 删除身份ID相关的信息
  • 匿名化 攻击者无法“识别”具体一条记录

以上三种方法对数据可用性依次降低,但隐私保密性越来越高

差分隐私算法

为了防止联邦学习的模型推导出原始的用户数据,可以使用差分隐私或加密计算
即原始数据集中加入了噪声,并不影响对数据集的统计分析。例如将年龄从50改为46或者51

场景:

  • 对小量数据添加噪声,无法保证统计分析结果的准确性,故只能用于大量的数据,一般用在有共性统计的数据分析
  • 添加噪声后,分析结果的准确性下降,故对结果不能很严格

同态加密

同态加密允许直接对加密数据执行某些类型的计算,而无需先对其解密,从而保留了原始数据的私密性。
个人敏感信息直接加密,然后在密文数据上直接统计与机器学习,计算过程中无需解密,对结果进行解密

零知识证明

安全多方计算

Q&A


Q:联邦学习和PSI有啥关系?
A:在利用联邦学习建立模型之前,不共享数据的前提下怎么知道双方的重叠数据?这就需要PSI,俗称ID对齐


Q:联邦学习的目标,是拿到对方的数据?
A:不恰当,在本地数据建模训练后,把训练结果而非原始数据上传云端,再进行模型聚合,目标是提升模型预测的准确性
A:两方/三方之间传递的是中间参数,必须加密(如同态加密)
A:联邦学习的目标是预测/期望label标签那一列更加准确


Q:啥是特征,啥是标签?
A:特征是某些固有属性,标签是根据固有属性产生/推导出的认知,一个结论,并不一定是事物本身所具有的属性
A:所以标签可能会变/实时更新