MASKCRYPT: Federated Learning with Selective Homomorphic Encryption
来源
TDSC 2024
链接:IEEE
作者:Chenghao Hu, Member, IEEE, Baochun Li, Fellow, IEEE,
Background
- Though vanilla federated learning managed to protect privacy-sensitive data from explicit leakage, the behavior of exposing model weights still raises serious privacy concerns, as adversaries can still breach data privacy with sophisticated attacks such as membership inference and gradient inversion .//成员推断 、 梯度反演 。
- Most existing homomorphic encryption mechanisms in the context of federated learning incurred an exorbitant amount of communication overhead .//同态加密、通信开销
Contribution
- MASKCRYPT is the first federated learning system that explores the encryption
sparsity, i.e., encrypting not all but part of the model updates.//加密模型更新的一部分。MASKCRYPT对加密算法不具特定依赖;可以采用任何现有的加密机制。
- Clients may choose different encryption masks due to their own privacy concerns.
本文引入了一种特殊机制,称为掩码共识(Mask Consensus),以帮助客户端就最终加密掩码达成一致。
- We propose a gradientguided mechanism to help clients select the encryption mask.
- We have implemented and evaluated MASKCRYPT in an open-source federated learning framework called PLATO.
Threat Model
- 本文假设服务器是诚实但好奇的,这意味着服务器诚实地执行算法,但会尽可能地从客户端接收到的更新中学习,例如,对报告的模型权重进行推断攻击。
- 本文假设客户端可能会与服务器或其他客户端联合(collude),进行合谋攻击(collusion attack)。
Mask Consensus
Individual Masking
- 所谓单独掩码,就是每个客户端依据自己的模型更新来选择加密梯度的哪些部分。
- 但是这种加密是无意义的,当不同的客户端加密了不同的部分,当服务器聚合时,聚合结果几乎表现出全加密的效果。
Mask Consensus
- 如果是为了只加密梯度的一部分,依据本文应该加密相同的部分。
- 本文首先定义客户端 k k k的掩码为 m k m^k mk,并且认为 m k [ i ] m^k[i] mk[i]相比 m k [ i − 1 ] m^k[i-1] mk[i−1]更应该加密,即 m k m^k mk是一个优先级序列。
- 服务器运行算法1得出掩码共识 m ˉ \bar{m} mˉ。
算法1 Mask Consensus. 掩码共识;
输入:Mask proposals from clients m 1 , . . . , m K m^1, . . . , m^K m1,...,mK,
encrypt ratio ρ \rho ρ
输出:Final mask m ˉ \bar{m} mˉ ;
- Initialize m ′ m^′ m′ as a list of zeros of length ρ N × K \rho N \times K ρN×K;
- for k = 1 , 2 , . . . , K k=1,2,. . . ,K k=1,2,...,K do
- m ′ [ k : : M ] = m k m^′ [k :: M] = m^k m′[k::M]=mk ▷ Interleave the mask proposals //按照掩码 m i m^i mi的列为KaTeX parse error: Expected group after '^' at position 2: m^̲'序列赋值
- end for
- Remove the duplicated elements in m ′ m^′ m′ //移除KaTeX parse error: Expected group after '^' at position 2: m^̲'中的重复值
- Select top ρ N \rho N ρN elements of m ′ m^′ m′ as final mask m ˉ \bar{m} mˉ; //选取前 ρ N \rho N ρN的元素组成掩码共识 m ˉ \bar{m} mˉ;
- return m ˉ \bar{m} mˉ.
GRADIENT-GUIDED MASK SELECTION
该部分不会写的很详细,若想详细了解请阅读文献原文。
简而言之,梯度引导的掩码选择,就是计算损失函数,然后选择损失函数最小的 ρ N \rho N ρN 个元素进行加密。
- 在本文中,作者假设模型加密是一种客户端行为,旨在管理暴露给服务器或其他潜在对手的权重。这一策略最小化了经验上的安全隐患,通过决定哪些部分的模型权重应当受到保护,而其他部分则可以安全地公开。
这样做的目的是让没有训练好甚至是训练得非常差得梯度(表现为损失函数很大)被敌手截获,从而起到降低敌手端推理客户端数据的能力。
- 本文令 w exp , t k w_{\text{exp},t}^k wexp,tk 表示客户端 k k k 在第 t t t 轮中暴露的模型权重,令 w ~ exp , t k \tilde{w}_{\text{exp},t}^k w~exp,tk 表示客户端 k k k 在本轮训练开始前暴露的权重,令 w exp , t k w_{\text{exp},t}^k wexp,tk 表示客户端 k k k 在本轮训练结束后暴露的权重,
- 并且 w exp , t k = { w t k [ i ] , i ∉ m k w ~ exp , t k [ i ] , i ∈ m k w_{\text{exp},t}^k= \begin{cases} & w_t^k[i], i \notin m^k\\ & \tilde{w}_{\text{exp},t}^k[i],i \in m^k \end{cases} wexp,tk={wtk[i],i∈/mkw~exp,tk[i],i∈mk
- 本文定义 δ ( m k ) [ i ] = { w ~ exp , t k [ i ] − w t k [ i ] , i ∈ m k 0 , i ∉ m k \delta(m^k)[i]= \begin{cases} & \tilde{w}_{\text{exp},t}^k[i]-w_t^k[i],i \in m^k\\ & 0, i \notin m^k \end{cases} δ(mk)[i]={w~exp,tk[i]−wtk[i],i∈mk0,i∈/mk
- 有了 δ ( m k ) [ i ] \delta(m^k)[i] δ(mk)[i] ,就可以把 w exp , t k w_{\text{exp},t}^k wexp,tk 优化为:
- w exp , t k = w t k + δ ( m k ) w_{\text{exp},t}^k=w_t^k+\delta(m^k) wexp,tk=wtk+δ(mk)
系统架构
系统初始化
- 为了防止一个客户端的密钥被泄露而威胁到其他客户端,MASKCRYPT 在训练开始之前让每个客户端 k k k 生成一对公私钥 ( p k k , s k k ) (pk_k, sk_k) (pkk,skk),采用同态加密方案。所有客户端之间同步公钥 p k k pk_k pkk。这允许使用不同的客户端密钥对不同的权重子集进行加密。
本地训练
- 对于第 t t t 轮,服务器将当前的全局模型权重 w t − 1 w_{t−1} wt−1 发送给每个客户端 k k k。客户端 k k k 在其本地数据集 D k D^k Dk 上训练模型,获得更新后的权重 w t k w_t^k wtk。
模型权重就是客户端所用神经网络的模型参数。
掩码共识
- 客户端 k k k 分析 w t k w_t^k wtk 以确定哪些条目最为敏感,并基于当前模型计算掩码提议 m k m^k mk。客户端将提议发送至服务器进行掩码共识计算,从而生成最终掩码 m ˉ \bar{m} mˉ。
模型加密
-
客户端获得掩码共识之后,使用所有客户端的公钥对需要加密的模型权重进行加密。
-
具体而言,每个客户端 k k k 将 m ˉ \bar{m} mˉ 均匀地划分为 K K K 个子集 I 1 , . . . , I K I_1, . . . , I_K I1,...,IK,使得 ⋃ j = 1 K I j = m ˉ {\textstyle \bigcup_{j=1}^{K}}I_j = \bar{m} ⋃j=1KIj=mˉ $ 且 ∣ I 1 ∣ = ⋅ ⋅ ⋅ = ∣ I K ∣ |I_1| = · · · = |I_K| ∣I1∣=⋅⋅⋅=∣IK∣。对于每个子集 I j I_j Ij,客户端 k k k 对 w t k w_t^k wtk 的相应元素进行加密:
w t , I j k = E N C ( w t k [ i ] , p k j ) , ∀ i ∈ I j w_{t,I_j}^k = ENC(w_t^k[i],pk_j), \forall i \in I_j wt,Ijk=ENC(wtk[i],pkj),∀i∈Ij
其中 p k j pk_j pkj 是客户端 j j j 针对子集 I j I_j Ij 的公钥。这导致每个客户端 k k k 生成 K K K 个加密子集 w t , I j k w_{t,I_j}^k wt,Ijk,每个子集使用不同的公钥 p k j pk_j pkj 进行加密。 -
连同未加密的权重,这构成了客户端 k k k 发送给服务器的模型更新。
{ w t , I j k ∣ j = 1 , . . . , K } ∪ { w t k [ i ] ∣ ∀ i ∉ m ˉ } \{w_{t,I_j}^k|j=1,...,K\} \cup \{w_t^k[i]|\forall i \notin \bar{m}\} {wt,Ijk∣j=1,...,K}∪{wtk[i]∣∀i∈/mˉ} -
令 g g g 表示当前模型在本地数据集上的权重梯度,满足 g = ∇ L ( w t k , D k ) g = \nabla L(w_t^k, D^k) g=∇L(wtk,Dk)。
-
对于每个掩码 m k m^k mk ,我们可以将其对应的 δ ( m k ) \delta(m^k) δ(mk) 分为两个组成部分:
δ ( m k ) = δ ( m k ) g + δ ( m k ) ⊥ g \delta(m^k)=\delta(m^k)_g+\delta(m^k)_{\perp g} δ(mk)=δ(mk)g+δ(mk)⊥g -
因此,我们可以将掩码选择转化为以下优化问题:
优化目标可以通过以下方式计算:
-
令 δ ( 1 ) \delta(1) δ(1) 表示在所有模型权重被加密时的模型增量, v v v 表示 δ ( 1 ) \delta(1) δ(1) 与 g g g 的逐元素相乘的结果,使得:
-
然后我们有 δ ( m k ) ⋅ g = s u m i = 1 , . . . , N v [ i ] \delta(m^k) \cdot g = sum_{i=1,...,N}^{}v[i] δ(mk)⋅g=sumi=1,...,Nv[i] 。为了使其最大化,我们可以将 v v v 按降序排序,并获得排序后的索引 v i n d v_{ind} vind ,那么前 ρ N \rho N ρN 个索引代表对点积结果贡献最大的位置信息。因此,客户端可以自然地选择 v i n d v_{ind} vind 中的前 ρ N \rho N ρN 个元素作为掩码选择的解。
-
该方法被称为梯度引导的掩码选择,因为掩码是由当前轮次的梯度决定的。算法2中总结了逐步过程。
算法2 Gradient-guided mask selection. 梯度引导的掩膜选择。
输入: w ~ exp , t k \tilde{w}_{\text{exp},t}^k w~exp,tk:Exposed model weights;
w t k w_t^k wtk:Local model weights;
D k D^k Dk: Local dataset;
输出:Encryption mask m m m;
- Compute gradients g = ∇ L ( w t k , D k ) g = \nabla L(w_t^k, D^k) g=∇L(wtk,Dk);
- Compute model delta δ ( 1 ) = w ~ exp , t k − w t k \delta(1) = \tilde{w}_{\text{exp},t}^k-w_t^k δ(1)=w~exp,tk−wtk;
- Compute element-wise multiplication v = g ⊙ δ ( 1 ) v = g \odot \delta(1) v=g⊙δ(1);
- Sort v v v in descending order and obtain indices v i n d v_{ind} vind;
- Select top ρ N \rho N ρN elements of v i n d v_{ind} vind as the mask proposal m k m^k mk;
return m k m^k mk
模型聚合
- 由于加密和未加密的权重在客户端的模型更新中是对齐的,服务器可以分别对其进行聚合。它对加密权重
w
t
,
I
j
w_{t,I_j}
wt,Ij 执行同态操作,并对未加密权重
w
t
[
i
]
w_t[i]
wt[i] 进行直接操作。由此得出:
{ w t , I j ∣ j = 1 , . . . , K } ∪ { w t [ i ] ∣ ∀ i ∉ m ˉ } \{w_{t,I_j}|j=1,...,K\} \cup \{w_t[i]| \forall i \notin \bar{m}\} {wt,Ij∣j=1,...,K}∪{wt[i]∣∀i∈/mˉ}
其中 w t [ i ] ∣ ∀ i ∉ m ˉ w_t[i]| \forall i \notin \bar{m} wt[i]∣∀i∈/mˉ 包含以明文形式呈现的未加密权重的聚合结果。然而,每个 w t , I j w_{t,I_j} wt,Ij 仍然在客户端 j j j 的公钥下保持加密状态。为了获得最终的聚合权重,还需要进行一步解密。
模型解密
- 服务器将每个加密的 w t , I j w_{t,I_j} wt,Ij 发送给客户端 j j j,客户端使用 s k j sk_j skj 进行解密并返回解密后的值。
- 服务器现在持有本轮的完全聚合 w t w_t wt,这可以用于启动下一轮的学习。
总结
- 该论文提出了一种名为MASKCRYPT的联邦学习框架,旨在保护客户端的数据隐私。
- 该框架使用选择性同态加密来实现这一目标,并引入了mask共识机制来确保所有客户端都使用相同的加密掩码。具体来说,该框架首先为每个客户端生成一对公钥私钥,并在训练开始前同步这些公钥。然后,在本地训练期间,客户端根据当前模型计算出一个加密掩码,并将掩码提案发送到服务器以进行掩码共识。一旦达成共识,客户端会将其选定的权重加密并与未加密的权重一起发送到服务器进行聚合。最后,服务器将聚合后的模型发送回客户端以进行下一轮训练。
- 传统的同态加密方案通常需要在整个模型上应用加密,这会导致通信开销和计算复杂度增加。与此不同的是,MASKCRYPT采用了选择性同态加密的方式,只对一小部分模型更新进行加密处理,从而减少了通信开销和计算复杂度。此外,MASKCRYPT还引入了掩码共识机制,通过协商一致的加密掩码来确保所有客户端使用的都是相同的一小部分加密数据,进一步提高了安全性。
- 传统的联邦学习框架存在数据隐私泄露的风险,因为参与训练的所有客户端都需要将自己的原始数据上传到中央服务器进行处理。而MASKCRYPT提出的框架则可以在不暴露原始数据的情况下完成模型训练,从而有效地解决了这个问题。此外,该框架还可以通过选择性同态加密和掩码共识机制来提高安全性和减少通信开销,进一步增强了其实用性和可行性。