(阅读笔记)基于秘密分享和梯度选择的高效安全联邦学习

动机

  1. 联邦学习中,各用户上传梯度给协作服务器以进行梯度聚合,恶意敌手可以基于梯度推测出用户的隐私信息甚至数据,因此传输梯度需要采用安全算法,例如同态加密、安全多方计算等。
  2. 用户上传所有梯度意味着大量的通信开销,为了提高协同训练效率、压缩通信开销,常结合梯度量化、梯度选择等。
  3. 服务端可能存在劫持的风险,若恶意敌手篡改聚合梯度并分发给各用户,(诚实)用户如何验证梯度是否被更改,常结合消息验证码的性质。
  • 本文提出两种安全模型(半可信模型和恶意模型)下的联邦训练方案,半可信模型下,本文结合加法秘密共享和TOP-K梯度选择以确保梯度隐私和通信效率;恶意模型下,还存在服务器端被腐蚀的风险,在半可信模型下的基础上,本文还采用消息验证码MAC实现梯度验证。

基础知识

联邦学习

所有的用户共享同一个模型架构θ.每个用户都和参数服务器建立安全信道

  1. 用户训练,获得并上传梯度;
  2. 服务器加法聚合梯度,并下发;
  3. 用户计算聚合梯度的均值,更新参数;
  4. 停止训练或执行下一轮训练;

TOP-K梯度选择

已知梯度向量 → \rightarrow 求梯度绝对值 → \rightarrow 降序排序 → \rightarrow 保留前K个最大的梯度(以及相应的索引)。

加法秘密共享

( t − n ) (t-n) (tn)门限秘密共享, t ≤ n t \le n tn
加法秘密共享, t = n t = n t=n,少于n个用户无法重构出秘密信息。
在这里插入图片描述
可加性:在这里插入图片描述

消息验证码

消息验证码方案由三元组(G,Sign,Verify),G 是密钥生成算法,Sign是认证算法MAC=Sign(sk, x),Verify是验证算法,Verify(sk, x,MAC)=Accept是否成立。

设计模型

n个服务器:n≥2;m个用户:m≥3;
不超过n-1个服务器被腐蚀; 不超过m-2个用户被腐蚀;

半可信模型下的联邦训练

输入:用户私密数据集 D i D_i Di、统一的初始化模型θ;
输出:训练得到的模型θ.
① 每个用户和每个服务器之间建立安全信道
② 每个用户 在 本 地 生 成 随 机 数(用于生成n-1组梯度向量份额);
③ 用户在本地训练模型,计算梯度;
④ 用 户 调 用TOP-K梯 度 选 择 算 法,选 择 出TOP-K 的梯度元素;
⑤ 用户针 对TOP-K 梯度元素调用秘密分享,得到梯度分享份额(n份)
⑥ 用户将索引信息(每份梯度的索引相同)和梯度份额分享上传到对应的服务器(n台);
⑦ 服务器依照索引信息,根据秘密分享的加同态性质聚合梯度 ∑ m \sum_m m)(聚合梯度索引数量≥K);
⑧ 用户下载服务器的聚合梯度分享份额,并调用秘密恢复算法恢复聚合梯度; ⑨ 用户更新本地模型;
⑩ 进行下一轮训练跳转③,或者停止训练。

  • 在不超过n-1个服务器和 m-2个用户被半诚实敌手腐化的前提下,协议能够保证敌手无法获得关于诚实用户梯度值的任何私密信息。
  1. 劫持不超过n-1个服务器,敌手获得不超过n-1份(用户局部)梯度份额,无法恢复出完整的梯度;
  2. 劫持不超过 m-2个用户,敌手已知加法聚合梯度和不超过 m-2个用户的梯度,至多能获得多于两个诚实用户的梯度的和值,无法获得任何一个诚实用户的梯度。
    在这里插入图片描述

恶意模型下的联邦训练

恶意模型下,恶意敌手可能篡改服务器端的梯度份额,加法聚合后,则会影响聚合梯度结果;为了防止敌手恶意篡改,即诚实用户可以检测或验证出这一行为,本文添加消息验证码MAC模块,利用梯度索引和梯度值生成每个用户的MAC以及聚合的MAC(开销与梯度总数量无关)。

注:恶意模型下的协议与半可信模型下的协议类似,仅增添MAC的认证和验证计算。

  1. 用户执行梯度选择、秘密共享、索引和梯度份额上传;
  2. 用户计算 M A C = ∑ i n d i n d × g [ i n d ] m o d    2 l MAC=\sum_{ind} ind \times g[ind] \mod 2^l MAC=indind×g[ind]mod2l,并上传MAC给所有服务器;
  3. 每个服务器接收到所有用户的MAC后,计算聚合的 M A C s = ∑ i m M A C i m o d    2 l MAC_s = \sum_i^m MAC_i \mod 2^l MACs=imMACimod2l,将 M A C s MAC_s MACs发送给每个用户;
  4. 服务器协同聚合梯度,并将梯度份额和索引信息( I N D s = ∪ I N D i IND_s = ∪ IND_i INDs=INDi)分发给用户。
  5. 用户选择停止训练或继续下一轮训练。

(诚实)用户验证 M A C s MAC_s MACs

  1. 所有的 M A C s MAC_s MACs(n个服务器为每个用户下发n个)都相等;
  2. 用户计算 M A C s ′ = ∑ i n d ∈ I N D s i n d × g s [ i n d ] m o d    2 l MAC'_s = \sum_{ind \in IND_s} ind \times g_s[ind] \mod 2^l MACs=indINDsind×gs[ind]mod2l g s [ i n d ] g_s[ind] gs[ind]表示索引ind的聚合梯度值,验证 M A C s ′ = M A C s MAC'_s = MAC_s MACs=MACs是否成立。
  • 公式推导
    在这里插入图片描述

  • 解释:服务器端,恶意敌手有三种篡改可能:

  • (1)不更改梯度 g s g_s gs的份额,更改(某服务器的) M A C s MAC_s MACs【验证1不成立,验证2成立】;
    (表示仅该服务器下发的 M A C s MAC_s MACs被篡改,因此与其他 M A C s MAC_s MACs相比不同)

  • (2)更改梯度 g s g_s gs的份额,不更改 M A C s MAC_s MACs【验证1成立,验证2不成立】
    (更改梯度 g s g_s gs的份额,表示 g s g_s gs被更改,意味着 g s [ i n d ] g_s[ind] gs[ind]被更改,即 M A C s ′ ≠ M A C s MAC'_s \ne MAC_s MACs=MACs

  • (3)更改(某服务器的)梯度 g s g_s gs的份额和 M A C s MAC_s MACs【验证1和2均不成立】;

实验结果

模拟2个参数服务器和10用户端;
采用MINIST数据集,每轮通信迭代更新1次;
梯度选择1%、5%、10%的梯度;

  1. 准确率与迭代次数、梯度选择、安全模型的关系
    在这里插入图片描述

  2. 一轮(通信)迭代的通信开销与梯度选择、安全模型的关系
    在这里插入图片描述

  3. 一轮(通信)迭代时间开销与梯度选择、安全模型的关系

  • 预处理:建立安全信道、预生成随机数
  • 用户端:用户训练、梯度计算、梯度选择、MAC计算、加法秘密共享、恢复秘密、梯度更新;
  • 传输阶段:传输梯度
  • 服务器端: M A C s MAC_s MACs计算、聚合梯度
    在这里插入图片描述

参考文献

基于秘密分享和梯度选择的高效安全联邦学习,计算机研究与发展,2020.

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值