Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记

提出了一种安全聚合算法,Secure Aggregation算法,可以使得在多方学习(如联邦学习)中各方client在不暴露各自梯度的情况下实现梯度的聚合。

实验

我们提出了安全计算向量之和的算法,它满足常数迭代轮次、低通信代价、对故障具有鲁棒性、且有一个可信度受限的server。server有两种角色:一是想其他参与方发送信息,二是计算最终结果。
鉴于联邦学习系统的缺点(对于隐私的要求以及终端不同步的问题),急切需要一种安全聚合算法来解决这些问题:

  1. 操作高维数据;
  2. 提高通信效率;
  3. 对终端用户的失联的鲁棒性;
  4. 在以server为中心且不被授权的网络模型中实现尽可能强的安全性。

密码学

分别讲了秘密共享、密钥协商、认证加密、伪随机数生成、数字签名、公钥基础设施的知识。
几个算法介绍:
S S . s h a r e ( s , t , U ) : \bold{SS.share}(s,t,\mathcal{U}): SS.share(s,t,U):共享算法,输入为秘密 s s s,代表用户ID的 n n n个域元素的集合 U \mathcal{U} U,和一个阈值 t ≤ ∣ U ∣ t\le |\mathcal{U}| tU,输出为共享 s u s_u su的集合,其中 u ∈ U u\in \mathcal{U} uU
S S . r e c o n ( { ( u , s u ) } u ∈ V , t ) : \bold{SS.recon}(\{(u,s_u)\}_{u\in \mathcal{V}}, t): SS.recon({(u,su)}uV,t):,重构函数,输入为阈值 t t t,参与共享的用户子集 V ⊆ U \mathcal{V}\subseteq \mathcal{U} VU且满足 ∣ V ∣ ≥ t |\mathcal{V}|\ge t Vt,输出为域元素 s s s

K A . p a r a m ( k ) : \bold{KA.param}(k): KA.param(k):生成一些公共参数 p p pp pp
K A . g e n ( p p ) : \bold{KA.gen}(pp): KA.gen(pp):参与方 u u u根据 p p pp pp生成私-公密钥对 ( s u S K , s u P K ) (s_u^{SK}, s_u^{PK}) (suSK,suPK)
K A . a g r e e ( s u S K , s u P K ) : \bold{KA.agree}(s_u^{SK}, s_u^{PK}): KA.agree(suSK,suPK):用户使用自身的私钥 s u S K s_u^{SK} suSK和所有其他用户 v v v的公钥 s u P K s_u^{PK} suPK生成 u u u v v v之间的私有共享密钥 s u , v s_{u,v} su,v
在DH密钥协商中使用了哈希函数的密钥协商方案。
A E . e n c : \bold{AE.enc}: AE.enc:认证加密的加密算法,输入为密钥 k e y key key和消息 m e s s a g e message message,输出为密文 c i p h e r t e x t ciphertext ciphertext
A E . d e c : \bold{AE.dec}: AE.dec:认证加密的解密算法,输入为密文 c i p h e r t e x t ciphertext ciphertext和密钥 k e y key key,输出为原始明文或者是错误一个符号。
P R G ( b ) : \bold{PRG}(b): PRG(b): b b b为随机种子的伪随机数生成算法。

S I G . g e n ( k ) : \bold{SIG.gen}(k): SIG.gen(k):以安全参数 k k k作为输入,输出为一个私钥 d S K d_{SK} dSK和一个公钥 d P K d^{PK} dPK
S I G . s i g n ( d S K , m ) : \bold{SIG.sign}(d^{SK}, m): SIG.sign(dSK,m):以私钥 d S K d^{SK} dSK和消息 m m m作为输入,输出为签名 σ \sigma σ
S I G . v e r ( d P K , m , σ ) : \bold{SIG.ver}(d^{PK},m,\sigma): SIG.ver(dPK,m,σ):输入为公钥 d S K d^{SK} dSK,消息 m m m和签名 σ \sigma σ,验证签名的合法性。

技术直觉

S \mathcal{S} S是服务器, U \mathcal{U} U n n n个client的集合,每个client u ∈ U u\in \mathcal{U} uU m m m维的向量 x u x_u xu。要计算 ∑ u ∈ U x u \sum_{u\in \mathcal{U}}x_u uUxu。为了简化运算,是在模 R R R剩余系中进行计算。

一次一密掩码

假设对于每对用户 ( u , v ) (u,v) (u,v) u < v u\lt v u<v,他们之间有一个随机向量 s u , v s_{u,v} su,v。那么
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第1张图片
y n y_n yn求和也即是对 x n x_n xn求和。
但是有两个缺点,一是两两进行 s u , v s_{u,v} su,v的交换有通信成本。二是如果client u u u在交换 s u , v s_{u,v} su,v之后,计算 y n y_n yn之前掉队了,那么他的向量掩码仍会被计算。

高效通信并处理掉队用户

不使用掩码 s u , v s_{u,v} su,v但是使用公共种子进行伪随机数生成会减少通信代价。使用DH算法进行计算。

双向掩码保护安全

Sec Agg算法细节

算法在一个server和 n n n个users集之间运行,包含有 4 4 4个轮次。每个用户有长度为 m m m的输入向量 x u x_u xu
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第2张图片
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第3张图片

Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第4张图片
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第5张图片
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第6张图片
在这里插入图片描述
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第7张图片
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第8张图片
Practical Secure Aggregation for Privacy-Preserving Machine Learning论文阅读笔记_第9张图片

你可能感兴趣的:(机器学习)