【论文笔记】FEDML-HE_AN EFFICIENT HOMOMORPHIC-ENCRYPTION-BASED PRIVACY-PRESERVING FEDERATED LEARNING SYSTEM
Thursday, January 25, 2024
本文共1391字
3分钟阅读时长
⚠️本文是作者P3troL1er原创,首发于https://peterliuzhi.top/posts/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0/%E9%9A%90%E7%A7%81%E4%BF%9D%E6%8A%A4/%E8%AE%BA%E6%96%87%E7%AC%94%E8%AE%B0fedml-he_an-efficient-homomorphic-encryption-based-privacy-preserving-federated-learning-system/。商业转载请联系作者获得授权,非商业转载请注明出处!
概述
性质
这是一篇关于联邦学习中如何保证分布式机器的隐私安全的文章
相较于先前方案解决的问题
先前的方案
- 差分隐私(Differential Privacy):向模型中增加噪声,但是会影响模型的精度
- 安全聚合(Secure Aggregation):在聚合分布模型阶段保证中央服务器无法访问各个分布服务器的隐私信息,但是不够鲁棒
- 同态加密(Homomorphic Encryption):直接在加密的信息上进行计算,并且(假如)解密得到的计算结果和在明文上计算得到的结果一致,但是耗费计算资源过大
解决的问题
解决了同态加密中耗费过大的问题
基于同态加密的先前方案与本文方案的对比
可以看到,本文的方案同时具有以下四个特性:
- Homomorphic Encryption:允许在密文上进行运算
- Threshold Key Management:需要 一定数量的成员(阈值) 合作才能实现特定的敏感操作(比如解密)
- Selective Parameter Encryption:只选择模型的一部分参数进行加密
- Encrypted Foundation Model Training:训练加密的基础模型
同时,之前的方案只能用于小尺度的模型训练,缺乏扩展性,本文提出的方案耗费的计算资源小的多
FedML-HE的流水线
- 加密密钥交换:使用分布式的Threshold Key或者第三方提供的single key
- 加密掩码计算:每一个客户端都使用自己的本地数据集计算一个本地模型敏感度分布图(local model sensitivity map),并最后聚合成一个加密掩码
- 加密联邦学习:每一个客户端都使用加密掩码保护本地模型的上传,保证服务器虽然能够聚合每一个本地模型,但是无法访问敏感的本地模型
本文的贡献
- 第一个实际可行的联邦学习同态加密方案,极大地降低了加密训练的成本
- 提出了选择参数加密方案
- 通过理论分析证明了在针对Threshold Key和single key的攻击下,加密最敏感的那些参数可以确保更高数量级的安全性
威胁模型
假设有一个semi-honest的攻击者$\mathcal{A}$:
- 遵守协议(一半的诚实)
- 希望学习到尽可能多的信息(一半的恶意)
我们希望:
- 只有当$\mathcal{A}$腐化了足够多的客户端(a subset of clients),它才能获取隐私信息
- 当$\mathcal{A}$腐化了聚合服务器时,它学习不到任何来自全局模型和本地模型的隐私信息
算法
符号表
符号 |
含义 |
$\mathcal{A}$ |
攻击者 |
$N$ |
客户端的数量 |
$i \in [N]$ |
每一个客户端 |
$\mathcal{D}_i$ |
每一个客户端的本地数据集 |
$W_i$ |
每一个客户端的本地模型 |
$w_m$ |
模型的参数 |
$\alpha_i$ |
聚合权重因子 |
$(p_k,s_k)$ |
公钥私钥对 |
$M$ |
加密掩码 |
$t \in [T]$ |
交流轮次 |
$[]$ |
部分加密 |
$[![]!]$ |
完整加密 |
$p \in [0, 1]$ |
用于选择加密的参数的ratio |
$b$ |
差分隐私参数 |
算法流程
对模型进行部分加密
首先需要将数据输入模型从而计算敏感度,对每一个客户端的模型都如此计算,然后聚合到一起变成一张全局的隐私位图,再通过设置选择加密因子后就得到了加密掩码,使用这个加密掩码就能计算部分加密的模型
计算敏感度是通过对每一个数据点都计算loss函数对模型参数的偏导数对真实标签的偏导数的绝对值得到的
然后再通过上式对所有敏感度进行完整加密,也就是如下流程:
然后,为了选择出最敏感的参数进行加密,要对隐私位图应用比值p,从而计算出加密掩码。这个加密掩码会发送给每一个客户端作为联邦学习的配置之一
在每一个交流轮次,聚合服务器都执行:
也就是说,对每一个客户端上传的模型,用加密掩码选中模型的一部分进行完整加密再乘以聚合权重因子,而剩下的部分不进行加密但是要乘以聚合因子,全部加起来就得到了部分加密的全局模型
扫码阅读此文章
点击按钮复制分享信息
点击订阅