隐私计算 2.9 秘密共享应用于横向联邦学习

1 简介

1.1 横向联邦学习

横向联邦学习也称为按样本划分的联邦学习,主要应用于各个参与方的数据集有相同的特征空间和不同的样本空间的场景,例如两个地区的城市商业银行可能在各自的地区拥有非常不同的客户群体,所以他们的客户交集非常小,并且数据集有不同的样本ID,然而他们的业务模型却非常相似,因此他们的数据集的特征空间是相同的。由此,这两家银行就可以联合起来进行横向联邦学习以构建更好的风控模型。

1.2 相关工作

谷歌联邦学习研发团队在ACM CCS 2017学术大会上提出的一种高效的安全聚合方法,利用秘密共享技术使服务器能够安全地聚合来自不同用户的梯度,同时单个用户的梯度不会被泄露。

1.3 密码学基础知识

分别讲了秘密共享、密钥协商、认证加密、伪随机数生成、数字签名、公钥基础设施的知识。 几个算法介绍:

    SS.share ⁡ ( s , t , U ) operatorname{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 leq|mathcal{U}| t≤∣U∣ ,输出为共享 s u s_{u} su 的集合,其中 u ∈ U u in mathcal{U} u∈U。 SS.recon ⁡ ( { ( u , s u ) } u ∈ V , t ) operatorname{SS.recon}left(left{left(u, s_{u} ight) ight}_{u in mathcal{V}}, t ight) SS.recon({ (u,su)}u∈V,t):重构函数,输入为阈值 t t t ,参与共享的用户子集 V ⊆ U mathcal{V} subseteq mathcal{U} V⊆U 且满足 ∣ V ∣ ≥ t |mathcal{V}| geq t ∣V∣≥t ,输出为域元素 s s s。 KA.param ⁡ ( k ) operatorname{KA.param} (k) KA.param(k):生成一些公共参数 p p p p pp。 KA.gen ⁡ ( p p ) operatorname{KA.gen} (p p) KA.gen(pp) :参与方 u u u 根据 p p p p pp 生成私-公密钥对 ( s u S K , s u P K ) left(s_{u}^{S K}, s_{u}^{P K} ight) (suSK,suPK)。 KA.agree ⁡ ( s u S K , s u P K ) operatorname{KA.agree} left(s_{u}^{S K}, s_{u}^{P K} ight) KA.agree(suSK,suPK):用户使用自身的私钥 s u S K s_{u}^{S K} suSK 和所有其他用户 v v v 的公钥 s u P K s_{u}^{P K} suPK 生成 u u u 和 v v v 之间的私有共享密钥 s u , v s_{u, v} su,v 。 在DH密钥协商中使用了哈希函数的密钥协商方案。 AE.enc ⁡ operatorname{AE.enc} AE.enc:认证加密的加密算法,输入为密钥key和消息message,输出为密文ciphertext。 AE.dec ⁡ operatorname{AE.dec} AE.dec:认证加密的解密算法,输入为密文ciphertext和密钥key,输出为原始明文或者是错误一个符号。 P R G ( b ) mathbf{P R G}(b) PRG(b):以 b b b 为随机种子的伪随机数生成算法。 SIG.gen ⁡ ( k ) operatorname{SIG.gen} (k) SIG.gen(k):以安全参数 k k k 作为输入,输出为一个私钥 d S K d_{S K} dSK 和一个公钥 d P K d^{P K} dPK 。 SIG.sign ⁡ ( d S K , m ) operatorname{SIG.sign} left(d^{S K}, m ight) SIG.sign(dSK,m):以私钥 d S K d^{S K} dSK 和消息 m m m 作为输入,输出为签名 σ sigma σ 。 SIG.ver ⁡ ( d P K , m , σ ) operatorname{SIG.ver} left(d^{P K}, m, sigma ight) SIG.ver(dPK,m,σ) :输入为公钥 d P K d^{P K} dPK ,消息 m m m 和签名 σ sigma σ ,验证签名的合法性。

2 安全聚合协议

经验分享 程序员 微信小程序 职场和发展