我现在还没有深入读隐私计算论文,也没有真正实现过这些协议。这篇只是先把几个经常出现的名词放到一张地图里,避免后面学联邦学习时完全陌生。

最开始我以为,联邦学习既然“不把原始数据传到服务器”,那是不是就天然安全。后来发现这个想法太粗了。

联邦学习确实减少了原始数据集中到服务器上的风险,但模型更新、梯度、参数变化这些信息本身,也可能泄露东西。

这里我会想到以前接触CTF和Web安全时的一些经验。比如一个网站不是说“密码没有明文写在页面上”就一定安全,中间还可能有中间人攻击、接口泄露、权限绕过、请求重放等问题。很多风险不是出现在最表面的数据本身,而是出现在传输过程、协议设计、权限边界和中间状态里。

联邦学习给我的感觉也有点像这样:原始数据不直接上传,只是解决了一类风险,但训练过程里还有客户端更新、服务器聚合、通信链路、参与方是否可信这些环节。如果这些地方没有保护好,攻击者仍然可能从“看起来不是原始数据”的信息里推回去。

为什么联邦学习会遇到隐私保护

联邦学习,Federated Learning,大致思路是:数据留在各个客户端,本地训练模型,再把模型更新发给服务器聚合。

这个流程比集中式训练安全一些,但不等于绝对安全。服务器虽然不直接拿原始数据,但可能看到每个客户端上传的更新。其他参与方也可能通过协议交互获得额外信息。

所以后面会遇到一些问题:

  • 能不能让服务器只看到聚合结果,而不是每个客户端的单独更新
  • 能不能在加密状态下完成一部分计算
  • 能不能让结果里看不出某一个具体样本的影响
  • 多个参与方一起计算时,能不能尽量不暴露各自输入

这些问题会引出MPC、SMPC、HE、DP和Secure Aggregation。

MPC和SMPC

MPC,Multi-Party Computation,多方安全计算,可以先理解成:多个参与方一起完成一个计算,但尽量不直接暴露各自的原始输入。

比如几个人想算一个总和,但每个人又不想把自己的具体数字告诉别人。MPC关心的就是类似问题。

SMPC,Secure Multi-Party Computation,安全多方计算,通常更强调安全协议设计。它的目标也是让多方在不泄露私有输入的情况下完成计算。

我现在先把MPC和SMPC放在一起理解:它们都和“多方一起算,但不直接暴露各自数据”有关。具体协议细节我还没展开学。

它们的代价也比较明显:协议复杂,通信成本可能比较高。

HE:加密状态下计算

HE,Homomorphic Encryption,同态加密,是一个听起来很神奇的概念:数据加密以后,仍然可以在密文上做某些计算;最后解密时,能得到对应的计算结果。

我现在的直觉理解是,它想保护明文数据。也就是说,计算方不一定需要看到原始数据,也可以参与某些计算。

但它不是免费的。密文计算通常比明文计算重很多,而且不同类型的同态加密支持的计算能力也不一样。这部分我还没深入,现在只先记住它大概解决什么问题:尽量不要暴露明文。

DP:降低单个样本被看出来的风险

DP,Differential Privacy,差分隐私,是通过加入噪声等方式,降低单个样本信息被反推出的风险。

它和MPC、HE不太一样。MPC和HE更像是在计算或通信过程中保护输入;DP更关注结果里能不能看出某一个样本的影响。

我现在可以这样粗略理解:如果一个人的数据在不在训练集中,最终结果看起来差别都不大,那这个人的隐私风险就会下降。

但DP也有代价。噪声太少,保护可能不够;噪声太多,模型效果可能下降。所以它后面肯定会涉及隐私强度和模型精度之间的平衡。

Secure Aggregation

Secure Aggregation,安全聚合,在联邦学习里很常见。

它的目标是让服务器拿到聚合后的更新,而不是每个客户端的明文更新。

如果客户端直接上传自己的模型更新,服务器可能看到每个客户端的梯度或参数变化。安全聚合希望服务器最后只知道“大家合起来的结果”,而不是每个人分别传了什么。

这和FedAvg能接上。FedAvg需要把多个客户端的模型更新做平均,而安全聚合关心的是:这个平均过程能不能不暴露单个客户端的更新。

先放一张表

方法 我现在的理解 主要保护什么 可能代价
MPC / SMPC 多方一起算,但不直接暴露各自数据 原始输入 协议复杂、通信成本高
HE 加密状态下计算 明文数据 计算开销大
DP 给结果或训练过程加噪声 单个样本信息 精度可能下降
Secure Aggregation 服务器只看聚合结果 单个客户端更新 协议和通信更复杂

这张表肯定还很粗,但对我现在有用。它至少先把几个名词放在不同位置上,不至于全都混成“隐私保护”四个字。

我现在容易混淆的点

第一,联邦学习不等于自动安全。它只是让数据不集中到服务器,但模型更新本身也可能泄露信息。

第二,这些方法保护的位置不一样。有的保护原始输入,有的保护明文计算,有的保护单个样本影响,有的保护客户端更新。

第三,隐私保护通常都有代价。通信、计算、精度和实现复杂度都可能受影响。

第四,我现在只是知道它们大概做什么,还不能说自己会实现。后面如果真要做实验,还是要回到论文、代码和具体威胁模型。

小结

这篇先到这里。我的目标只是先建立一张入门地图:MPC/SMPC、HE、DP和Secure Aggregation分别大概在保护什么。

后面继续学联邦学习时,我需要把这些概念和FedAvg、客户端本地训练、服务器聚合、模型更新泄露风险联系起来。到那个时候,这些名词应该就不会只是缩写了。