会议来源:IEEE TRANSACTIONS ON INFORMA TION FORENSICS AND SECURITY , VOL. 17, 2022
背景原因
1.分布式机器学习在海量数据上实现了更大模型的训练,但仍然容易受到安全和隐私泄露的影响
2.保护隐私的联邦学习方案之一是使用同态加密方案(如Paillier),对局部梯度进行加密,但局部梯度难以计算和传输,开销大(由于Paillier只能对整数进行加密,支持对单个数据进行加密,因此需要先对梯度进行量化,然后逐个加密,这大大增加了计算和通信开销)
3.保护隐私的FL(联邦学习)方案仍然容易受到中毒攻击
4.保护隐私的FL(联邦学习)方案遭受恶意服务器聚合和单点故障威胁
解决方案
我们提出了一个基于区块链的隐私保护拜占庭鲁棒联邦学习(PBFL)方案。具体来说,我们采用余弦相似度作为惩罚恶意客户端的方法。与之前使用余弦相似度机制的方案不同,我们的方案要求服务器收集一个小而干净的根数据集,并为数据集维护一个模型。在确定恶意梯度之前,服务器会考虑本地更新和服务器模型更新,这依赖于可信根,而不是像前面的工作那样只依赖本地更新。与FLTrust一致。在此基础上,采用同态加密技术,在此基础上增加了隐私保护机制。此外,我们使用区块链来促进透明的流程。
工作贡献成果
我们采用全同态加密(FHE)方案CKKS提供了一种隐私保护训练机制,不仅大大减少了计算和通信开销,还防止了攻击者窥探客户端的本地数据。
1.我们提供了一个可信的全局模型,通过余弦相似度去除恶意梯度,从而抵抗中毒攻击。
2.我们使用区块链促进透明的流程和法规的执行。服务器进行链下计算,并将结果上传到区块链,实现了效率和可信度。
3.我们使用两个著名的数据集演示了广泛的实验,并将我们的方案与以前最先进的方案进行了比较。结果表明,该方案具有良好的鲁棒性和效率。
预备知识
联邦学习
在标准的联邦学习设置中,假设我们有一个中央服务器和n个客户端{C1, C2,……Cn},本地数据集D j , j = 1, 2, 3, . . . , n, D = {D1, D2,…Dn}表示联合数据集, 客户的目标是在不泄露本地数据的情况下合作训练一个全局模型。
投毒攻击
投毒攻击: 在投毒攻击中,攻击者通过控制κ客户端来操纵局部模型,最终影响全局模型的准确性
投毒攻击分类
投毒攻击分类:定向攻击,非定向攻击
1.定向攻击: 有针对性的攻击,如缩放攻击,只针对数据集中的一个或多个数据类别,而保持其他类别数据的准确性
2.非定向攻击: 无目标攻击,如Krum攻击、Trim攻击,是一种无差别攻击,目的是降低所有数据类别的准确性。
数据投毒和模型投毒攻击
1.在数据毒害攻击(即标签翻转攻击)中,攻击者通过毒害设备的本地数据间接地毒害全局模型
标签反转攻击:改变样本的标签(给样本使用我们规定的)
标签干净标签攻击:改变样本的输入(将样本的内容修改,标签不变)
2.模型投毒攻击: 在模型投毒攻击中,攻击者可以直接操纵和控制设备与服务器之间通信的模型更新, 直接影响全局模型的准确性
同态加密
同态加密是一种基于数学计算的加密技术。HE满足对明文的加法或乘法等价于对密文的相应运算的性质。完全同态加密是一个既满足加性同态又满足乘性同态的加密函数,可以进行任意次的加法和乘法运算。
本文应用的全同态加密技术ckks(Homomorphic Encryption for Arithmetic of Approximate Numbers),因为该文其中一个实验结果表明,CKKS算法更有效,更适合处理大尺度向量和多参数网络模型
系统模型
请注意,求解器、计算器和客户需要向智能合约支付定金,我们省略了图中的过程
模型设计:
1.KGC (Key Generation Center):为客户端和服务器生成和分发公私钥对的可信机构。
2.客户端:作为数据所有者,客户端拥有KGC提供的公钥/私钥对(pkx, skx),并旨在从通用的全球模型中受益。
3.求解器:一个拥有小型干净数据集D0的中央服务器负责聚合客户端提交的所有梯度。
4.Verifier:一个非合谋的中央服务器,并与求解器合作执行计算。Verifier有一对KGC生成的公钥/私钥(pkv, skv)。
5.区块链系统:为了避免自私行为,中心服务器需要在SC上存入押金以获得潜在的惩罚。此外,还需要将结果上传到区块链,以便进行透明的计算过程。
威胁模型
1.投毒攻击:恶意客户端的目标是在不被检测的情况下影响全局模型的性能。恶意客户端可以通过多种方式发起投毒攻击。例如,他/她改变了数据的标签,并上传了在有毒数据上训练的梯度。
2.数据泄露:由于梯度是客户端本地数据的映射,如果客户端直接上传明文梯度,攻击者可以在一定程度上推断或获取诚实客户端的原始信息,从而导致客户端数据泄露。
3.推理攻击:在我们的方案中,Solver和Ve交换一些中间结果进行协作,以完成本地更新的聚合。因此,他们可能试图从中间结果中推断敏感信息
核心系统算法
PBFL由局部计算、归一化判断和模型聚合三个过程组成
局部计算
局部梯度
归一化判断
我们的聚合规则基于余弦相似度策略。为了使聚合规则适用于密文,在加密前对局部梯度进行归一化处理
因为用ckks加密所以本文向量内积:
向量
[
[
g
~
i
j
]
]
p
k
v
=
[
[
p
1
,
p
2
,
.
.
.
.
.
,
p
n
∗
]
]
p
k
v
向量 [[ \widetilde g^{j}_{i}]]_{pk_{v}} = [[p_{1},p_{2},.....,p_{n^{*}}]]_{pk_{v}}
向量[[g
ij]]pkv=[[p1,p2,.....,pn∗]]pkv
首先将两个加密向量相乘
:
[
[
p
1
2
,
p
2
2
,
.
.
.
.
.
,
p
n
∗
2
]
]
p
k
v
首先将两个加密向量相乘 : [[p^{2}_{1},p^{2}_{2},.....,p^{2}_{n^{*}}]]_{pk_{v}}
首先将两个加密向量相乘:[[p12,p22,.....,pn∗2]]pkv
旋转向量
[
[
p
1
2
,
p
2
2
,
.
.
.
.
.
,
p
n
∗
2
]
]
p
k
v
−
>
[
[
p
2
2
,
p
3
2
,
.
.
.
.
p
n
∗
2
,
p
1
2
]
]
p
k
v
旋转向量 [[p^{2}_{1},p^{2}_{2},.....,p^{2}_{n^{*}}]]_{pk_{v}}->[[p^{2}_{2},p^{2}_{3},....p^{2}_{n^{*}},p^{2}_{1}]]_{pk_{v}}
旋转向量[[p12,p22,.....,pn∗2]]pkv−>[[p22,p32,....pn∗2,p12]]pkv
重复(
n
∗
−
1
)次
重复(n^{*}-1)次
重复(n∗−1)次
可以得到
[
[
r
1
,
r
2
,
r
3
,
.
.
.
.
r
n
∗
]
]
p
k
v
r
1
=
p
1
2
+
p
2
2
+
,
.
.
.
.
.
,
+
p
n
∗
2
可以得到 [[r_{1},r_{2},r_{3},....r_{n^{*}}]]_{pk_{v}} \quad\quad r1=p^{2}_{1}+p^{2}_{2}+,.....,+p^{2}_{n^{*}}
可以得到[[r1,r2,r3,....rn∗]]pkvr1=p12+p22+,.....,+pn∗2
最后我们两个向量相乘
[
[
r
1
]
]
p
k
v
=
[
[
r
1
,
r
2
,
r
3
,
.
.
.
.
r
n
∗
]
]
p
k
v
乘
[
1
,
0
,
0
,
.
.
.
.
,
0
]
最后我们两个向量相乘 [[r_{1}]]_{pk_{v}}= [[r_{1},r_{2},r_{3},....r_{n^{*}}]]_{pk_{v}} 乘[1,0,0,....,0]
最后我们两个向量相乘[[r1]]pkv=[[r1,r2,r3,....rn∗]]pkv乘[1,0,0,....,0]
[
[
r
1
]
]
p
k
v
=
[
[
g
~
i
j
]
]
p
k
v
⊙
[
[
g
~
i
j
]
]
p
k
v
[[r_{1}]]_{pk_{v}}= [[ \widetilde g^{j}_{i}]]_{pk_{v}} \odot [[ \widetilde g^{j}_{i}]]_{pk_{v}}
[[r1]]pkv=[[g
ij]]pkv⊙[[g
ij]]pkv
梯度权重
具体来说,我们的聚合规则依赖于可信根数据集D0及其对应的模型w0,它们用于确定全局模型更新的更“有希望”的方向。局部模型更新,更类似于g的方向,有更高的权重,而被聚合。与前面的工作一样,Solver可以通过手动标记收集可信的根数据集D0。例如,谷歌可以招募其员工输入Gboard在下一个单词预测的联邦任务中创建根数据集。在第VII节中,我们展示了我们只需要一个小的根数据集D0(例如200个数据点),并且数据集的分布可以与客户端的分布不同。因此,对于Solver来说,收集可信根数据集D0和手动标记的成本通常是负担得起的。
方法:余弦相似度
Solver在数据集D0上训练得到梯度更新
g
i
0
g^{0}_{i}
gi0,然后使用
g
~
i
0
=
g
i
0
/
∣
∣
g
i
0
∣
∣
\widetilde g^{0}_{i} = g^{0}_{i} /|| g^{0}_{i}||
g
i0=gi0/∣∣gi0∣∣
对
g
i
0
g^{0}_{i}
gi0进行归一化。求解器加密它得到梯度
[
[
g
~
i
0
]
]
p
k
v
[[ \widetilde g^{0}_{i}]]_{pk_{v}}
[[g
i0]]pkv 然后我们计算这两个向量之间的余弦相似度,其中客户端
C
j
C_{j}
Cj得到
g
~
i
j
=
[
p
1
,
p
2
,
.
.
.
.
.
,
p
n
∗
]
\widetilde g^{j}_{i}=[p_{1},p_{2},.....,p_{n^{*}}]
g
ij=[p1,p2,.....,pn∗],
g
i
0
=
[
q
1
,
q
2
,
.
.
.
.
.
,
q
n
∗
]
g^{0}_{i} =[q_{1},q_{2},.....,q_{n^{*}}]
gi0=[q1,q2,.....,qn∗]加密后的梯度为
[
[
g
~
i
j
]
]
p
k
v
=
[
[
p
1
,
p
2
,
.
.
.
.
.
,
p
n
∗
]
]
p
k
v
,
[
[
g
~
i
0
]
]
p
k
v
=
[
[
q
1
,
q
2
,
.
.
.
.
.
,
q
n
∗
]
]
p
k
v
[[ \widetilde g^{j}_{i}]]_{pk_{v}}=[[p_{1},p_{2},.....,p_{n^{*}}]]_{pk_{v}}, [[ \widetilde g^{0}_{i}]]_{pk_{v}}=[[q_{1},q_{2},.....,q_{n^{*}}]]_{pk_{v}}
[[g
ij]]pkv=[[p1,p2,.....,pn∗]]pkv,[[g
i0]]pkv=[[q1,q2,.....,qn∗]]pkv
[
[
c
s
i
j
]
]
p
k
v
=
[
[
g
~
i
0
]
]
p
k
v
⊙
[
[
g
~
i
j
]
]
p
k
v
=
[
[
p
1
q
1
+
p
2
q
2
+
.
.
.
.
+
p
n
∗
q
n
∗
]
]
p
k
v
[[cs^{j}_{i}]]_{pk_{v}}= [[ \widetilde g^{0}_{i}]]_{pk_{v}} \odot [[ \widetilde g^{j}_{i}]]_{pk_{v}}=[[p_{1}q_{1}+p_{2}q_{2}+....+p_{n^*}q_{n^*}]]_{pk_{v}}
[[csij]]pkv=[[g
i0]]pkv⊙[[g
ij]]pkv=[[p1q1+p2q2+....+pn∗qn∗]]pkv
s
.
t
.
,
∣
∣
g
~
i
0
∣
∣
=
∣
∣
g
~
i
j
∣
∣
=
1
s.t., || \widetilde g^{0}_{i}||=|| \widetilde g^{j}_{i}||=1
s.t.,∣∣g
i0∣∣=∣∣g
ij∣∣=1
由于归一化,两个向量之间的余弦相似度可以转化为内积。
c
s
i
j
cs^j_{i}
csij的负值意味着局部梯度
g
~
i
j
\widetilde g^{j}_{i}
g
ij的方向与
g
~
i
0
\widetilde g^{0}_{i}
g
i0的方向相反,这对全局模型产生了负面影响。一个典型的解决方案是在聚合期间丢弃恶意梯度,从而尽可能减少这些梯度的影响。因此,在第i次迭代中,客户端
C
j
C _{j}
Cj的评分
S
i
j
S ^j_{i}
Sij由如下定义:
S
i
j
=
R
e
L
U
(
c
s
i
j
)
S ^j_{i}=ReLU(cs^j_{i})
Sij=ReLU(csij)
R
e
L
U
=
{
x
,
i
f
x
>
0
0
,
i
f
x
<
0
ReLU = \begin{cases} x, ifx>0 \\ 0 , ifx<0 \end{cases}
ReLU={x,ifx>00,ifx<0
ReLU函数是明文情况下使用的,在密文情况下不适用
下列算法给出了在[0,1]范围内同态密码比较的一种数值方法。两个向量的余弦相似度为[−1,1],这使得我们不能直接将比较方法应用于
[
[
c
s
i
j
]
]
和
[
[
0
]
]
[[cs^j_{i}]]和[[0]]
[[csij]]和[[0]] 。解决方法之一是将余弦相似度转换为允许的范围。要做到这一点,我们首先加
[
[
1
]
]
到
[
[
c
s
i
j
]
]
[[1]]到[[cs^j_{i}]]
[[1]]到[[csij]],使结果的明文落在[0,2]上,然后我们将结果乘以
1
2
\frac{1}{2}
21。因此,最终结果满足要求。请注意,通过我们的转换,值0对应于值
1
2
\frac{1}{2}
21。因此,我们将ReLU函数转换为ReLU’。我们在算法4中调用Max来描述同态比较方法。
R
e
L
U
′
(
[
[
c
s
i
j
]
]
)
=
{
1
2
(
[
[
c
s
i
j
]
]
+
[
[
1
]
]
)
,
i
f
1
2
(
[
[
c
s
i
j
]
]
+
[
[
1
]
]
)
>
[
[
1
2
]
]
[
[
1
2
]
]
,
i
f
1
2
(
[
[
c
s
i
j
]
]
+
[
[
1
]
]
)
<
[
[
1
2
]
]
ReLU' ([[cs^j_{i}]])= \begin{cases} \frac{1}{2}([[cs^j_{i}]]+[[1]]), if \quad \frac{1}{2}([[cs^j_{i}]]+[[1]])>[[\frac{1}{2}]] \\ [[\frac{1}{2}]] , \quad \quad \quad \quad \quad if \quad \frac{1}{2}([[cs^j_{i}]]+[[1]])<[[\frac{1}{2}]] \end{cases}
ReLU′([[csij]])={21([[csij]]+[[1]]),if21([[csij]]+[[1]])>[[21]][[21]],if21([[csij]]+[[1]])<[[21]]文章来源:https://www.toymoban.com/news/detail-767014.html
聚合算法
在获得客户端的所有分数后,Solver与Verifier一起工作,以获得模型聚合所需的值,而不会泄露隐私。具体来说,为了获得分数的原始值,求解器设置
[
[
S
i
j
]
]
p
k
v
′
=
2
⋅
[
[
S
i
j
]
]
p
k
v
−
[
[
1
]
]
p
k
v
[[S^j_{i}]]_{pk_{v}}' = 2·[[S^j_{i}]]_{pk_{v}}−[[1]]_{pk_{v}}
[[Sij]]pkv′=2⋅[[Sij]]pkv−[[1]]pkv。求解器计算
[
[
s
u
m
]
]
p
k
v
=
∑
f
=
1
∣
C
∣
[
[
S
i
j
]
]
p
k
v
′
[[sum]]_{pk_{v}}=\sum_{f=1}^{|C|}{[[S^j_{i}]]_{pk_{v}}' }
[[sum]]pkv=∑f=1∣C∣[[Sij]]pkv′ ,然后Solver随机选择一个
n
∗
{n^*}
n∗维向量
V
n
∗
和
V
~
V^{n^*}和\widetilde V
Vn∗和V
,得到
V
n
∗
⋅
[
[
g
~
i
j
]
]
p
k
v
和
V
~
⋅
[
[
S
i
j
]
]
p
k
v
′
V^{n^*}· [[ \widetilde g^{j}_{i}]]_{pk_{v}}和\widetilde V·[[S ^j_{i}]]'_{pk_{v}}
Vn∗⋅[[g
ij]]pkv和V
⋅[[Sij]]pkv′。最后,求解器发送
[
[
s
u
m
]
]
p
k
v
,
V
n
∗
⋅
[
[
g
~
i
j
]
]
p
k
v
和
V
~
⋅
[
[
S
i
j
]
]
p
k
v
′
[[sum]]_{pk_{v}} ,V^{n^*}· [[ \widetilde g^{j}_{i}]]_{pk_{v}}和\widetilde V·[[S ^j_{i}]]'_{pk_{v}}
[[sum]]pkv,Vn∗⋅[[g
ij]]pkv和V
⋅[[Sij]]pkv′到区块链。Veifier得到它们并用skv解密,然后Veifier用pkx加密
V
n
∗
⋅
g
~
i
j
和
V
~
⋅
S
i
j
′
V^{n^*}· { \widetilde g^{j}_{i}}和\widetilde V·{S ^j_{i}}'
Vn∗⋅g
ij和V
⋅Sij′ ,并发送求和(sum),
[
[
V
n
∗
⋅
g
~
i
j
]
]
p
k
x
和
[
[
V
~
⋅
S
i
j
′
]
]
p
k
x
[[V^{n^*}· { \widetilde g^{j}_{i}}]]_{pk_{x}}和[[\widetilde V·{S ^j_{i}}']]_{pk_{x}}
[[Vn∗⋅g
ij]]pkx和[[V
⋅Sij′]]pkx到区块链。
该文章大概内容就是这样
其他以后有时间再补文章来源地址https://www.toymoban.com/news/detail-767014.html
到了这里,关于论文笔记:Privacy-Preserving Byzantine-Robust Federated Learning via Blockchain Systems的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!