Part2:Privacy of Federal Learning:FL中的隐私保护问题
1.Secure Multi-party Computation
简称SMC,安全多方计算。
大致模型如上图所示,含义为:由多方提供的数据在加密的条件下经过网络训练时,既不影响结果也能保证数据安全。
在这里我们看一个经典的SMC模型:
姚式混淆电路
上图为姚式混淆电路的经典分析图,但我在初学的时候理解这张图却不是很透彻,所以我找到了下图:
首先,Alice和Bob都持有数据集,分别为x,y。这两个数据集需要共同输入进函数f(x,y),以达到训练参数的目的。
姚氏混淆模型的思路为:
1.Alice把函数f转换为等价的电路C;
2.Alice选择Lable加密C得到GC电路,在这里我们对GC电路和C电路进行解释:GC可以理解为一个新的函数f',它是由函数f得来的,相当于f' = g(f(x,y))。
3.将GC以及x对应的Label发送给Bob:在我看来,这就相当于把一个二元函数的一个函数自变量带入之后,再将这个模型发给Bob。由于这个二元函数f'和f的操作是不可逆的,所以Bob并不能通过得到的模型推测出Alice具有的数据集x。此时,Bob需要操作的函数为f'(a,y),其中a是一个常数(Alice已经带入了)
4.运行OT,获取和y相关的Label:我们知道,Alice在带入参数的时候,参数已经经过加密。那Bob在带入的时候自然也需要加密,这一步就是获取Bob即将对他的data加密所用的密钥。OT,全称为Oblivious transfer不经意传输,就是Alice将很多满足要求的Label同时传输,在经过OT之后,会得出一个Label*传给Bob,而Alice并不知道Bob使用的是哪个Label,这样就避免了在Bob带入数据之后,Alice从结果反推Bob的数据。
获取Label之后,Bob利用Label将y进行加密y'。
5.解密GC电路,得到输出结果;
6.返回结果给Alice。
综上所述,A不能通过中间步骤对B的数据有了解,B也相同,这就是SMC需要实现的关键。
2.Differential Privacy
差分隐私,其中比较经典的是k-anonymity(k-匿名)。
差分隐私,又可理解为泛化,就是将数据泛化,使得攻击者即使获得信息,也无法精确定位到某一个用户,间接或直接地保护了用户隐私。k-anonymity指的是,对于任意一行记录,其所属的相等集内记录数据的数量 > k,也就是说,攻击者攻击时至少面对k条类似(类)数据。
3.Homomorphic Encryption
同态加密
上图是云计算的一张很常见也很好理解的图,我希望得到我想要的结果但是我不想云知道我的信息,于是我采用加密的形式传输。其实在之前我们提到的SMC中姚式混淆模型,也使用了同台加密。
相信有这两张图,同态加密的原理就很清晰了。
目前在ML中使用较成熟的是加法同态,而我们常见的公钥密码算法RSA则具有乘法同态的特点。
4.Indirect information leakage
最后一方面,讲的是恶意参与者的问题。试想一下,如果网络的参与者之一是恶意用户,SMC的简单加密并不能拦住他获取其他用户的数据,又有什么方法可以防御呢?
这部分笔者学习较少,只能提几篇类似主题的论文供大家参考,希望之后有时间我也能去看看:
<1>Privacy-Preserving Deep Learning via Additively Homomorphic Encryption.
SGD等常见方法没有安全保证
<2>How To Backdoor Federated Learnng.
插入后门是有可能的
<3>Inference Attacks Against Collaborative Learning.
可能的潜在漏洞
<4>Securing Distributed Machine Learning in High Dimensions.
对不同参与者的梯度交换所带来的安全问题
<5>On-Device Federated Learning via Blockchain and its Latency Analysis.
区块链:块链式联邦学习BlockFL的体系结构。其中移动终端设备的本地学习模型更新通过利用区块链进行交换和验证