其中有N个client,victim代表受害者,第t次迭代的共享模型表示为Mt,
u
t
k
u^k_t
utk表示第t次迭代,第k个client的更新。其中利用client的更新计算出client representatives,然后将辅助数据集aux的representatives、other client的representative和representative of victim 放入鉴别器D和生成器G进行训练,其中辅助数据将是server判断收敛的真实数据集(小部分)。
被动攻击是隐蔽的,因为server只需要获取client的更新即可。而主动攻击是将victim与其他client进行隔离,即除了恶意的server还包含一个管理的server。这个关联server只连接victim client,只接收他的更新,就做到了隔离。其中共享的模型不再是
M
t
M_t
Mt而是
M
i
s
o
M^{iso}
Miso。
M
i
s
o
M^{iso}
Miso只受到victim跟新的影响。这个关联server也只在victim上执行mGAN-AI攻击。初始化的时候和被动攻击一样,
M
i
s
o
M^{iso}
Miso =
M
0
M_0
M0=D.
通过遵循与被动攻击类似的训练方案,在附属服务器上训练mGAN AI,生成器将生成具有更高质量和更可区分身份的样本,因为mGAN是纯基于目标victim数据训练的,不会受到其他数据的影响。而且鉴别器将不用进行身份鉴别和代表数据计算。恶意server会主动向victim发送
M
i
s
o
M^{iso}
Miso进行更新,违反了FL初始规则,但不会影响FL。
从匿名更新
U
1
∗
U^{*}_1
U1∗中计算出X1(应该是一组client表示),并随机附上身份标签。就是每个身份id的Q都有了对应的K个X,因为后面来了新的
X
t
+
1
X_{t+1}
Xt+1进行比较的时候要进行K次投票,每次投票就是将
X
t
+
1
X_{t+1}
Xt+1与Q中的一个X进行相似度计算,最后哪个相似度最大,哪个Q代表的身份就是
X
t
+
1
X_{t+1}
Xt+1的身份。
经过之前投票机制和相似度计算求出
X
t
+
1
X_{t+1}
Xt+1的身份后,将
X
t
+
1
X_{t+1}
Xt+1更新到
Q
i
d
Q_{id}
Qid中,之前需要把之前的X出队。