趋近智
安全多方计算 (SMC) 采用加密方法实现隐私,与通过添加噪声实现隐私的差分隐私等方法形成对比。SMC 在联邦学习中的主要目标是允许中心服务器计算客户端更新的聚合值(通常是求和或加权平均),而无需获知任何单个客户端的更新。设想有多个参与方,每个方持有一个私密输入(其模型更新 ui),它们希望计算一个联合函数(例如总和 ∑ui),同时又不向彼此或聚合服务器公开其输入。
许多用于安全聚合的实用SMC协议都依赖于秘密共享的想法。大致思路是将每个客户端的私密更新向量 ui 分割成多个片段,称为份额。这些份额的分配方式如下:
一种常见且相对高效的安全求和技术是加性秘密共享。下面我们介绍一个简化的协议,它涉及 N 个客户端和一个服务器,旨在计算 S=∑i=1Nui,同时服务器不获知任何 ui。
成对掩码生成: 在发送更新之前,每对客户端 (i,j)(其中 i<j)需要协商确定一个大的随机数(或向量)mij。此掩码必须仅客户端 i 和 j 知晓。这可以通过使用诸如迪菲-赫尔曼密钥交换等技术来实现,以建立成对的对称密钥,然后这些密钥为两个客户端的伪随机数生成器(PRNG)提供种子,从而独立生成相同的 mij。
客户端侧掩码: 每个客户端 i 使用其与其他客户端共享的成对掩码来掩盖其更新向量 ui。它计算一个掩码更新 ui′:
ui′=ui+j>i∑mij−j<i∑mji(modM)此处,M 是一个大整数,定义了进行计算的有限域或环。对于向量,加法和减法通常是按元素进行的。本质上,客户端 i 添加它与具有较高索引的客户端生成的掩码,并减去与具有较低索引的客户端生成的掩码。
发送到服务器: 每个客户端 i 只将其掩码更新 ui′ 发送给服务器。
服务器侧聚合: 服务器简单地对其接收到的掩码更新进行求和:
S′=i=1∑Nui′(modM)掩码抵消: 让我们分析总和 S′。当服务器对 ui′ 求和时,每个掩码 mij(其中 i<j)恰好出现两次:一次在 ui′ 中为正(来自项 +∑k>imik),一次在 uj′ 中为负(来自项 −∑k<jmjk)。因此,所有掩码在最终总和中相互抵消:
S′=i=1∑N(ui+j>i∑mij−j<i∑mji)=i=1∑Nui+i=1∑Nj>i∑mij−i=1∑Nj<i∑mji(modM)由于每个 mij 都出现一次正数和一次负数,总和简化为:
S′=i=1∑Nui=S(modM)服务器获得了准确的总和 S,而无需查看任何单个的 ui。
使用加性秘密共享实现安全聚合的交互流程。客户端建立成对秘密(虚线),在本地掩盖其更新,并将掩码更新(蓝色箭头)发送到服务器。服务器对这些更新求和,掩码相互抵消,仅公开聚合总和(黄色箭头)。
这种加性共享方案针对诚实但好奇的服务器提供安全性。服务器正确遵循协议,但可能会尝试从其接收到的消息(即 ui′)中推断信息。由于 ui′ 实际上是 ui 加上服务器未知的随机值之和/差(因为每个 mij 都涉及客户端 j=i),因此假设掩码是密码学安全的随机数, ui′ 不会向服务器公开任何有关 ui 的信息。
然而,这种基本方案存在局限性:
沙米尔秘密共享 (SSS) 是另一种适用于 SMC 的基础技术。在 (t,n)-SSS 中,一个秘密被分割成 n 个份额,其中任意 t 个份额可以重建秘密,但 t−1 个份额不透露任何信息。这可以通过让客户端使用 SSS 共享其更新来用于聚合。聚合可以在份额上执行(由于 SSS 中使用的多项式插值的同态性质)。SSS 提供了针对多达 n−t 个掉线的固有稳定性(如果 t 个客户端成功提交份额),以及针对多达 t−1 个参与方串谋的安全性。然而,与简单的加性共享相比,SSS 通常涉及更复杂的操作(多项式求值/插值)。
"设计基于SMC的实用联邦学习系统,需要仔细权衡安全保障与计算和通信成本,并处理客户端掉线等实际问题。"
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造