本内容涉及隐私保护技术大体上包含的方面和各领域的初步介绍。由于内容来源较为复杂,引用上仅包含了MPC的论文出处,如有需要添加更多来源信息请私信我。
论文:
SoK: Training Machine Learning Models over Multiple Sources with Privacy
概念
隐私保护计算(Privacy-Preserving Computation)
指在提供隐私保护的前提下,实现数据价值挖掘的技术体系。面对数据计算的参与方或意图窃取信息的攻击者,隐私保护计算技术能够实现数据处于加密状态或非透明状态下的计算,以达到各参与方隐私保护的目的。隐私保护计算并不是一种单一的技术,它是一套包含人工智能、密码学、数据科学等众多领域交叉融合的跨学科技术体系。隐私保护计算能够保证满足数据隐私安全的基础上,实现数据“价值”和“知识”的流动与共享, 真正做到“数据可用不可见。
简单来说,就是既要发挥数据价值,又要保护数据隐私的技术。
隐私保护技术
1. 联邦学习
联邦机器学习是一个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。其主要解决的是多机构之间数据孤岛的问题。
横向联邦
核心是增加样本量,适用于维度类似情形,优点是容易实现,问题是存在数据异构的情况。
纵向联邦
核心是增加数据维度,适用于人群重叠但维度不同的情形。优点是提升模型效果较为明显,问题是实现困难且目标变量仅存在一家机构,不容易形成合作。
联邦迁移学习
核心是迁移学习,适用于场景类似但是一个拥有数据,一个没有数据的场景。迁移的方式使用的类似纵向联邦,可以实现从无法建立模型到完成模型搭建的过程。问题是实现较为困难,模型效果一般,使用范围较小。
主要平台
微众的FATE平台。其余联邦学习平台较为初级,实现的话也一般仅实现了横向的数据聚合功能。目前业内属于各自搭建各自平台,但是大多数没有完善自身的盈利模式。
2. 同态加密(HE)
同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。
简单来说就是一种加密之后还能对加密后的内容进行运算,运算的结果进行解密还能还原成正确的结果。
即
其中D()代表解密,E()代表加密。
根据数学运算的不同,同态加密有以下区分
加法同态加密
Paillier算法是1999年提出的一种基于合数剩余类问题的公钥加密算法,也是目前最为常用且最具实用性的加法同态加密算法,已在众多具有同态加密需求的应用场景中实现了落地应用,同时也是ISO同态加密国际标准中唯一指定的加法同态加密算法。此外,由于支持加法同态,所以Paillier算法还可支持数乘同态,即支持密文与明文相乘。
乘法同态加密
在实际应用中,密文乘法同态性的需求场景不多,因此乘法同态性通常偶然存在于已有的经典加密算法中。满足乘法同态特性的典型加密算法包括1977年提出的RSA公钥加密算法和1985年提出的ElGamal公钥加密算法等。
全同态加密(FHE)
满足任意运算同态性的加密算法称为全同态加密。由于任何计算都可以通过加法和乘法门电路构造,所以加密算法只要同时满足乘法同态和加法同态特性就称其满足全同态特性。
PS: 只实现某些特定函数的同态加密(SWHE)
问题
计算开销极大,可满足安全性,但是实用性很低,计算效率极低。
解决办法
一般会结合较为成熟的 Paillier 算法和多方安全计算(MPC)结合使用。
3. 差分隐私(DP)
差分隐私(英语:differential privacy)是密码学中的一种手段,旨在提供一种当从统计数据库查询时,最大化数据查询的准确性,同时最大限度减少识别其记录的机会
简单来说,就是往从数据中加入随机值,使得统计结果理论上不变,但是具体到某一个值很可能不是原值。
例如: 拉布拉斯机制,指数机制等。
这些都是随机噪声生成的办法。
优点:易于实现,防止数据溯源
缺点:加入大量随机值容易导致数据可用性下降明显
4. 多方安全计算(MPC)
MPC:Secure Muti-Party Computation
也有叫 SMPC的 是一个东西
安全多方计算的研究主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。安全多方计算是电子选举、门限签名以及电子拍卖等诸多应用得以实施的密码学基础。
MPC的核心关键点在于 加密本身的安全性和协议效率。
其中协议效率的关键在加密算法的速度和通讯成本。
不经意传输(OT)
不经意传输是一个密码学协议,在这个协议中,消息发送者从一些待发送的消息中发送一条给接收者,但时候对接收者收到的具体是哪条信息不知道。
混淆电路(GC)
混淆电路是一种密码学协议。遵照这个协议,两个 party 能在互相不知晓对方数据的情况下计算某一能被逻辑电路表示的函数。
什么叫能被逻辑电路表示的函数?
就是将函数本身拆解为电路能识别的,与或非三种运算来表示。
这种电路能识别的逻辑链 叫做 逻辑电路。
简单来说,就是将函数变成逻辑电路,再加上混淆的逻辑。
注意:这里的例子是两方的混淆电路,也就是传统的姚氏混淆电路
-
姚氏混淆电路
两方的混淆电路,特点是使用了OT和真值表 -
GMW协议
- 适用于任意数量的当事人。
- 基于秘密共享,数据准备阶段可以离线完成加密计算。
- 通信轮数取决于电路中的与门数和电路的深度。
- 仅需要使用OT来支持与门计算。
-
BGW协议
- 适用于3+方计算
- 使用基于秘密共享的shamir函数
- 需要诚实多方的假设
-
BMR协议
基于OT和真值表,但是削减通信轮数,将通讯轮数固定为常数
零知识证明
SNARKs 是 succinct non-interactive arguments of knowledge
零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
简单来说就是利用多项式函数,提供随机抽样点+同态加密实现的。
秘密共享(SS)
有地方也叫作秘密分享,一个意思
秘密共享的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。更重要的是,当其中任何相应范围内参与者出问题时,秘密仍可以完整恢复。
门限秘密共享的概念:(k,n)门限秘密共享表示把秘密信息分成n份无意义的子秘密,只有拥有至少k份子秘密才能恢复秘密信息
-
shamir算法
- 共N方 可实现任意K方可解开秘密
- 半诚实模型,基础为多项式函数
-
SPDZ
- 适用多方
- 在线使用GMW协议,离线使用只支持部分函数的全同态(SWHE)
- 与GMW相比增加了一致性校验,所以增加了开销
-
BGW和GMW
- 使用秘密共享和混淆电路结合的方式
-
ABY3
- 计算逻辑为与或非门的逻辑电路
- 分发秘密的方式为秘密共享
- 乘法与加法分别有自己的逻辑。
技术对比
其中SC代表安全计算
基础算法对比
[40] [44] [58] 都是线性回归的变种
下面都是算法相应论文:
FLASH: Flash: fast and robust framework for privacy-preserving machine learning
Falcon: Honest-majority maliciously secure framework for private deep learning
其他一些未列出来的协议可以看论文,图表来源为论文。
各隐私保护平台对比
这里的 半诚实多方指的不是shamir。CRYPTEN使用的是数字加密和二进制加密两种实现的加法与乘法的基础操作。
各技术实现时间表
如有问题欢迎指出。