《Practical Secure Aggregation for Federated learning on User-Held Data》论文阅读

本文设计了用于用户持有数据联合学习的实用安全聚合协议,考虑在联邦学习模型中训练深度神经网络,使用安全聚合保护用户模型梯度隐私。介绍了五种协议,包括使用一次性密码掩码、防止恢复、双重屏蔽、高效交换秘密和最小化信任等,逐步改进协议的容错性、安全性和通信效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Practical Secure Aggregation for Federated Learning on User-Held Data

Overview

题目:用于用户持有数据联合学习的实用安全聚合

设计了一种高效通信的高维数据安全聚合协议

在这项工作中,我们考虑在联邦学习模型中训练深度神经网络,在移动设备上的用户持有的训练数据上使用分布式梯度下降,使用安全聚合来保护每个用户模型梯度的隐私。

我们继续为高维数据设计一种新颖的、通信高效的安全聚合协议,该协议最多可容忍 1/3 的用户未能完成该协议。

对于16bit输入值,我们的协议为210个用户和220维向量提供1.73×通信扩展,为214个用户和224维向量提供1.98×扩展。

Secure Aggregation for Federated Learning

DuD_{u}Du训练示例的私有集

虽然每次更新是短暂的,并且包含的信息少于原始DuD_{u}Du,用户可能仍然想知道还保留了什么信息。

有证据表明,经过训练的神经网络的参数有时允许重建训练示例

**参数更新是否会受到类似的攻击?**例如,如果输入 x 是一个对最近输入的单词进行one-hot编码的词汇长度向量,则常见的神经网络架构将在每个单词 w 的 θ 中包含至少一个参数θwθ_{w}θw,使得∂Lf∂θw\frac{\partial L_{f}}{\partial θ_{w}}θwLf不为零仅当 x 编码 w 时。

因此,通过检查更新δutδ_{u}^{t}δut的非零条目,可以揭示中DuD_{u}Du最近输入的单词集。然而,服务器不需要检查任何单个用户的更新;它只需要∑u∈U∣Du∣\sum_{u \in U}|D_{u}|uUDu∑u∈Uδut\sum_{u \in U}δ_{u}^{t}uUδut之和。使用安全聚合协议将确保服务器仅了解 UUU 中的一个或多个用户写了单词 w,而不了解哪些用户。

联邦学习系统面临着一些实际挑战:

  • 参与每个更新步骤的 UUU组是不可预测的,并且系统必须对用户退出具有鲁棒性。
  • θ 可能包含数百万个参数,所以更新δutδ_{u}^{t}δut可能很大,代表用户在计量网络计划上的直接成本
  • 移动设备通常还不能与其他移动设备建立直接通信通道(依赖于服务器或服务提供商来调解此类通信),也不能本地验证其他移动设备。

联邦学习激发了对安全聚合协议的需求,该协议:

  1. 在高维向量上运行;
  2. 即使在每个实例上都有一组新的用户,通信效率也很高;
  3. 对用户丢弃具有鲁棒性;
  4. 在服务器介导的、未经身份验证的网络模型的约束下提供尽可能最强的安全性。

A Practical Secure Aggregation Protocol

在我们的协议中,有两种参与方:单个服务器 SSS 和 n 个用户 UUU 的集合。每个用户u∈Uu \in UuU 持有一个维度为 k 的私有向量xux_{u}xu 。 对于一些已知的R1R^1R1,我们假设 xux_{u}xu∑u∈Uxu\sum_{u \in U} x_{u}uUxu 的所有元素都是范围 [0,R)上的整数。正确性要求,如果各方都是诚实的,SSS 将为用户的某个子集Uˉ⊆U\bar U \subseteq UUˉU学习xˉ=∑u∈Uˉxu\bar x = \sum_{u \in \bar U} x_{u}xˉ=uUˉxu,其中KaTeX parse error: Undefined control sequence: \abs at position 1: \̲a̲b̲s̲{\bar U} \ge \f…。安全性要求 (1) SSS 除了从 xˉ\bar xxˉ 推断出的内容之外不学习任何内容,并且 (2) 每个用户u⊆Uu \subseteq UuU不学习任何内容。

我们考虑三种不同的威胁模型。在所有这些中,所有用户都诚实地遵循协议,但服务器可能会尝试以不同的方式学习额外信息:

  1. 服务器是诚实但好奇的,即它诚实地遵循协议,但尝试学习尽可能多地从用户收到的消息中获取信息。
  2. 服务器可以在哪些其他用户退出的问题上对用户撒谎,包括在不同用户之间不一致地报告退出情况。
  3. 服务器可以谎报退出者(如 2),并且还可以访问某些有限数量的用户(他们自己诚实地遵循协议)的私有内存。 (在此,隐私要求仅适用于其余用户的输入。)

“Input perturbations”(输入扰动)是指对输入数据进行微小的、有意义的变化或调整。这种技术通常用于数据隐私、安全性或机器学习中的应用。它的主要目的是增加数据的复杂性,以降低对数据的分析和反推的可能性,同时保持数据的有用性。

扰动值 puv=suv−svup_{uv} = s_{uv} - s_{vu}puv=suvsvu

协议 0:使用一次性密码进行掩码

Masking with One-Time Pads

在执行协议的下一步之前,每对用户需要进行协商或协议,以确定一种输入扰动。这两个用户之间的输入扰动是相互匹配或协调的,可能是一对相关的修改、变化或随机性添加到他们要交换的数据中。

用户 uuu[0,R)k[0,R)^k[0,R)k 中为每个其他用户 vvv 统一采样向量 su,vs_{u,v}su,v。用户 u 和 v 通过其安全通道交换 suvs_{uv}suvsvus_{vu}svu 并计算扰动 pu;v=su;v−sv;u (mod R)p_{u;v} = s_{u;v} − s_{v;u} \space (mod \space R)pu;v=su;vsv;u (mod R), 注意到 **$p_{u,v} = −p_{v,u} \space (mod\space R) $并在 u=vu=vu=v 时取 pu,v=0p_{u,v} = 0pu,v=0。每个用户 uuu 向服务器发送:yu=xu+∑v∈Upu,v(mod R)y_u = x_u + \sum_{v \in U}{p_{u,v}} (mod\space R)yu=xu+vUpu,v(mod R)。服务器简单地对扰动值求和:$ \bar x = \sum_{u \in U}{y_u} \space (mod \space R)。正确性得到保证,因为∗∗。正确性得到保证,因为 **。正确性得到保证,因为y_u$ 中的配对扰动(u,v; v,u)相互抵消
xˉ=∑u∈Uxu+∑u∈U∑v∈Upu,v=∑u∈Uxu+∑u∈U∑v∈Usu,v−∑u∈U∑v∈Usv,u=∑u∈Uxu \bar x = \sum_{u \in U}{x_u}+\sum_{u \in U}{\sum_{v \in U}{p_{u,v}}}=\sum_{u \in U}{x_u}+\sum_{u \in U}{\sum_{v \in U}{s_{u,v}}}-\sum_{u \in U}{\sum_{v \in U}{s_{v,u}}}=\sum_{u \in U}{x_u} xˉ=uUxu+uUvUpu,v=uUxu+uUvUsu,vuUvUsv,u=uUxu
Protocol 0保证用户完美的隐私;因为用户添加的su,vs_{u,v}su,v因子是均匀采样的,所以 yuy_uyu 值对服务器来说是均匀随机的,受到$ \bar x = \sum_{u \in U}{y_u} (mod \space R)$的约束。事实上,即使服务器可以访问某些用户的内存,剩下的用户仍保留隐私。


根据论文,协议0的工作流程如下:

  1. 每对用户uuuvvv在安全通道上协商生成随机向量suvs_{uv}suvsvus_{vu}svu
  2. 计算扰动量puv=suv−svup_{uv} = s_{uv} - s_{vu}puv=suvsvu
  3. 每个用户u计算掩码输入yu=xu+Σvpuvy_u = x_u + Σ_v p_{uv}yu=xu+Σvpuv
  4. 服务器计算汇总结果∑uyu∑_u y_uuyu

协议0的特点:

  • 假设存在点对点安全通道和所有用户都参与汇总。
  • 使用一时间密钥的扰动puvp_{uv}puv完美保护了每个用户的隐私。
  • 服务器只能看到掩码后的聚合值,无法获取任何单个用户的原始输入。

协议0的问题:

  • 不容错。任何一个用户未发送yuy_uyu,汇总结果就会出错。
  • 需要O(kn2)O(kn^2)O(kn2)通信量。
  • 没有考虑服务器可能存在恶意行为。

综上,协议0提供了基本的安全聚合框架,但没有处理实际系统中用户掉线和服务器不可信等问题。后续的协议在此基础上进行了扩展和改进。

协议 1:使用sharing防止恢复

Dropped User Recovery using Secret Sharing

不幸的是,协议 0 未能满足我们的几个设计标准,包括鲁棒性:如果任何用户 uuu 未能完成协议,向服务器发送了她的 yuy_uyu,那么产生的总和将被 yuy_uyu 本已取消的扰动所掩盖。(if any user u fails to complete the protocol by sending her y_u to the server, the resulting sum will be masked by the perturbations that y_u would have cancelled.)

为了实现鲁棒性,我们首先向协议添加初始轮,其中用户 uuu 生成公钥/私钥对,并通过成对通道广播公钥。未来从 u 到 v 的所有消息都将由服务器中介,但使用 v 的公钥加密,并由 u 签名,从而模拟出一个安全的认证通道。这使得服务器能够保持一致的视图,知道哪些用户成功通过了每一轮协议。 (我们暂时假设服务器忠实地传递用户之间的所有消息。)

签名是一种数字或电子方式的认证机制,用于确认某个信息、文件或数据的完整性和来源。签名通常用于保护数据的安全性,确保数据在传输或存储过程中没有被篡改或伪造。

数字签名的基本原理包括以下步骤:

  1. 创建摘要:首先,使用哈希函数对要签名的数据进行处理,生成一个固定长度的摘要或哈希值。这个摘要是根据数据内容计算的,即使数据发生微小的改变,摘要也会大幅度改变。
  2. 私钥签名:签名者使用自己的私钥对生成的摘要进行加密,创建数字签名。只有持有相应私钥的人才能够生成有效的数字签名。
  3. 公钥验证:接收者获取数字签名和原始数据后,使用签名者的公钥来解密数字签名,得到摘要。
  4. 摘要比对:接收者再次对接收到的原始数据使用相同的哈希函数生成一个摘要。
  5. 比对摘要:接收者将第4步生成的摘要与第3步解密得到的摘要进行比对。如果两者一致,说明数据完整且未被篡改,签名有效。

在选定 su;vs_{u;v}su;v 值之后,我们还增加了一轮用户间的秘密共享。在这一轮中,每个用户使用 (t,n)(t,n)(t,n) 门限方案计算每个扰动 pu;vp_{u;v}pu;vnnn 个shares[???],例如沙米尔秘密共享,对于某个 t>n2t > \frac{n} {2}t>2n。对于用户 uuu 持有的每个秘密,她用每个用户 vvv 的公钥加密一个共享,然后将所有这些共享发送给服务器。服务器从用户 U1⊆UU_1 ⊆ UU1U 的子集收集至少 ttt 大小的共享(例如,等待一段固定时间),然后认为所有其他用户都被丢弃。服务器向每个用户 v∈U1v \in U_1vU1 发送为该用户加密的秘密共享;现在 U1U_1U1 中的所有用户都从收到的共享集合中推断出对存活用户集 U1U_1U1 的一致看法。当用户计算 yuy_uyu 时,她只包含与存活用户相关的扰动,即 yu=xu+∑v∈U1pu;v(modR)y_u = x_u + \sum_{v \in U_1}p_{u;v} (mod R)yu=xu+vU1pu;v(modR)[u→server→v][u \to server \to v][userverv]

服务器从至少 t 个用户 U2⊆U1U_2 ⊆ U_1U2U1 处接收到 yuy_uyu 后,进入新一轮解除屏蔽,同时考虑放弃所有其他用户。服务器向 U2U_2U2 中剩余的用户请求由 U1/U2U_1 / U_2U1/U2 中被放弃的用户产生的所有秘密份额。只要 KaTeX parse error: Undefined control sequence: \abs at position 1: \̲a̲b̲s̲{U_2} > t,每个用户都会回应这些份额。一旦服务器收到至少 t 个用户的共享,它就会重建 U1/U2U_1 / U_2U1/U2 的扰动并计算总值:KaTeX parse error: Undefined control sequence: \textbackslash at position 64: …\sum_{v \in U_1\̲t̲e̲x̲t̲b̲a̲c̲k̲s̲l̲a̲s̲h̲ ̲U_2}{p_{u,v}}} …。只要至少有 t 个用户完成协议,就能保证 Uˉ=U2\bar{U} = U_2Uˉ=U2 的正确性。在这种情况下,总和 xˉ\bar xxˉ 包含至少 t>n2t > \frac{n} {2}t>2n 个用户的值,所有扰动都会抵消:
KaTeX parse error: Undefined control sequence: \textbackslash at position 111: …\sum_{v \in U_1\̲t̲e̲x̲t̲b̲a̲c̲k̲s̲l̲a̲s̲h̲ ̲U_2}{p_{u,v}}}=…
然而,安全性已经丧失:如果服务器错误地从 U2U_2U2 中省略 uuu,无论是无意(例如 yuy_uyu 到达稍晚)还是出于恶意, U2U_2U2 中的诚实用户将向服务器提供删除所有 U2U_2U2 所需的所有秘密共享。扰动掩盖了yuy_uyu中的xux_uxu。这意味着即使针对诚实但好奇的服务器(威胁模型 1),我们也无法保证安全。[???]


根据论文,协议 1 的工作流程如下:

  1. 每个用户生成公私钥对,并通过服务器广播公钥,建立 simulate 安全通道。
  2. 每对用户 uuuvvv 随机生成标量秘密 suvs_{uv}suvsvus_{vu}svu,并交换以计算扰动值 puv=suv−svup_{uv} = s_{uv} - s_{vu}puv=suvsvu
  3. 每个用户 uuu 使用 (t, n) 门限方案将每个 puvp_{uv}puv 分成 n 个 shares。
  4. 用户将其他用户的 shares 加密后通过服务器发送。
  5. 服务器收集至少 t 个用户的 shares,认定其他用户已掉线。
  6. 在线用户计算掩码输入 yu=xu+Σvpuvy_u = x_u + Σ_v p_{uv}yu=xu+Σvpuv,仅包含在线用户的扰动。
  7. 服务器从在线用户收集掉线用户的 shares,还原掉线用户的 puvp_{uv}puv,计算汇总结果。

相比基本协议,协议 1 增加了:

  • 公私钥机制,允许服务器检测掉线用户。
  • 秘密分享,可以重构掉线用户的扰动,使协议容错。

协议 1 的问题:

  • 如果服务器恶意排除某用户,可获取该用户的 puvp_{uv}puv 重构输入,破坏安全性。
  • 通信量为 O(kn2)O(kn^2)O(kn2),不够高效。

所以协议 1 通过秘密分享增加了容错性,但未解决服务器欺骗问题,通信量也较大。这促使后续协议的改进。

协议 2:双重屏蔽以阻止恶意服务器

Double-Masking to Thwart a Malicious Server

为了保证安全性,我们引入了双重屏蔽结构,即使服务器可以重建 uuu 的扰动,也可以保护 xux_uxu

首先,每个用户 uuu 在生成 su;vs_{u;v}su;v 值的同一轮期间从 [0,R)k[0,R)^k[0,R)k 均匀地采样附加随机值 bub_ubu 。在秘密共享回合中,用户还生成 bub_ubu 的shares并将其分发给其他每个用户。在生成 yuy_uyu 时,用户还添加了这个辅助掩码:yu=xu+bu+∑v∈U1pu;v(modR)y_u = x_u + b_u + \sum_{v \in U_1}{p_{u;v}} (mod R)yu=xu+bu+vU1pu;v(modR)。在unmasking轮次期间,服务器必须针对每个用户 u∈U1u \in U_1uU1 做出显式选择:从每个幸存成员 v∈U2v \in U_2vU2 中,服务器可以请求共享与 u 相关的 pu;vp_{u;v}pu;v 扰动,或者共享为你服务;诚实的用户 vvv 仅在 KaTeX parse error: Undefined control sequence: \abs at position 1: \̲a̲b̲s̲ ̲{U_2} > t 时才会响应,并且永远不会透露同一用户的两种shares。在为所有 KaTeX parse error: Undefined control sequence: \textbackslash at position 10: u \in U_1\̲t̲e̲x̲t̲b̲a̲c̲k̲s̲l̲a̲s̲h̲ ̲U_2 收集至少 t 份 pu;vp_{u;v}pu;v 以及为所有 u∈U2u \in U_2uU2 收集 t 份 bub_ubu 后,服务器重建秘密并计算聚合值: ¯x = P u2U2 yu − P u2U2 bu − P u2U2 P v2U1nU2 pu;v (mod R)。

我们现在可以保证威胁模型 T1 中 t>n2t > \frac{n} {2}t>2n 的安全性,因为 xux_uxu 始终被 pu;vp_{u;v}pu;vbusb_usbus 屏蔽。可以看出,在威胁模型T2和T3中,阈值必须相应提高到 2n3\frac {2n}{3}32n4n5\frac{4n}{5}54n


根据论文,协议 2 的工作流程如下:

  1. 每个用户uuu随机生成一个k维向量bub_ubu,以及与每个其他用户v的标量秘密su;vs_{u;v}su;v
  2. 用户将bub_ubu和每个pu;vp_{u;v}pu;v使用(t, n)门限秘密分享方案分成n个shares。
  3. 用户通过服务器将加密的shares发送给对应的其他用户。
  4. 每个用户计算掩码输入: yu=xu+bu+Σv∈U1pu,v(modR)y_u = x_u + b_u + Σ_{v∈U_1}{p_{u,v}} (mod R)yu=xu+bu+ΣvU1pu,v(modR),其中 pu;vp_{u;v}pu;v 是从su;vs_{u;v}su;v派生的随机向量。
  5. 服务器收集至少t个用户的yuy_uyu,认定其他用户已掉线。
  6. 对于掉线用户uuu,服务器从在线用户收集 pu;vp_{u;v}pu;v 的shares以移除uuu的掩码。
  7. 对于在线用户uuu,服务器收集bub_ubu的shares以移除uuu的掩码。
  8. 服务器利用收集到的shares移除所有掩码,计算结果汇总值。

协议2相比协议1的优点:

  • 使用双掩码机制,即使服务器恶意重构某用户的 pu;vp_{u;v}pu;v ,该用户的输入xux_uxu仍受bub_ubu保护。
  • 通过选择合适的ttt值,可以防范不同级别的威胁模型。

协议2的安全性分析:

  • 在威胁模型1下,恶意但遵守协议的服务器无法获取任何用户的原始输入,只能看到加密后的聚合值。
  • 在威胁模型2下,服务器可以欺骗用户其他用户的在线状态。设置 t>2n3t > \frac{2n} {3}t>32n 可以防范此威胁。
  • 在威胁模型3下,服务器还可以读取少数用户的内存。设置 t>4n5t > \frac{4n} {5}t>54n 可以防范此威胁。

所以协议2通过双重掩码机制增强了安全性,可以防范更强的威胁模型。

协议3:高效交换秘密

Protocol 3: Exchanging Secrets Efficiently

虽然通过正确选择 $ t,协议2是稳健且安全的,但它需要∗∗,协议 2 是稳健且安全的,但它需要 **,协议2是稳健且安全的,但它需要 O(kn^2 )$ 通信**,我们在协议的改进中解决了这个问题。

观察到,通过使用单个秘密值作为加密安全伪随机生成器 (PRG) 的种子,可以将其扩展为伪随机值向量。因此,我们可以生成标量种子 su;vs_{u;v}su;vbub_ubu 并将它们扩展为 k 元素向量。尽管如此,每个用户与其他用户都有 (n − 1) 个秘密 su;vs_{u;v}su;v,并且必须发布所有这些秘密的共享。我们使用密钥协议来更有效地建立这些秘密。每个用户生成一个 Diffie-Hellman 密钥 sSKs ^{SK}sSK 和公钥sPKs ^{PK}sPK 。用户将其公钥发送到服务器(根据协议 1 进行身份验证);然后,服务器将所有公钥广播给所有用户,并为自己保留一份副本。每对用户$u, v $现在可以就秘密达成一致 su;v=sv;u=AGREE(suSK;svPK)=AGREE(svSK;suPK)s_{u;v} = s_{v;u} = AGREE(s^{SK}_u ; s^{PK}_v ) = AGREE(s^{SK}_v ; s^{PK}_u )su;v=sv;u=AGREE(suSK;svPK)=AGREE(svSK;suPK)。为了构造扰动,我们假设 U 上有一个全序,并且当 u<vu < vu<v 时取 pu;v=PRG(su;v)p_{u;v} = PRG(s_{u;v})pu;v=PRG(su;v),当 u>vu > vu>v 时取 pu;v=−PRG(su;v)p_{u;v} = − PRG(s_{u;v})pu;v=PRG(su;v),并且 pu;v=0p_{u;v} = 0pu;v=0对于 u=vu = vu=v(如前所述)。服务器现在只需要学习 suSKs^{SK} _usuSK 即可重建 uuu 的所有扰动;因此,你只需要在秘密共享回合中分配 suSKs^{SK} _usuSKbub_ubu 的份额。在每个不同的威胁模型中,协议 3 的安全性与协议 2 的安全性基本相同。


根据论文,协议3的工作流程如下:

  1. 每个用户生成DH密钥对,广播公钥sPKs^{PK}sPK
  2. 每对用户利用DH协议生成共享密钥suvs_{uv}suv
  3. 用户生成随机种子bub_ubu, suvs_{uv}suv,扩展为k维向量。
  4. 用户将bub_ubusuvs_{uv}suv的种子使用秘密分享分发给其他用户。
  5. 其他步骤与协议2相同。

协议3相较于协议2的改进:

  • 使用DH协议代替安全通道生成共享密钥suvs_{uv}suv,降低通信量。
  • 分发suvs_{uv}suv的shares 替代 puvp_{uv}puv
  • 计算复杂度也从O(kn2)O(kn^2)O(kn2)降低为O(n2+kn)O(n^2 + kn)O(n2+kn)

协议3的安全性与协议2相同,但通信和计算效率提高。

协议3存在的问题:

  • 需要点对点安全通道,在移动网络上不可行。
  • 用户间没有认证,存在中间人攻击风险。

后续的协议4对此进行了改进,在服务器的协助下引导建立通信通道。

所以协议3通过更高效的密钥协商和随机数生成机制,降低了通信和计算量,但是仍存在可部署性问题。

协议 4:实践中最小化信任

Protocol 4: Minimizing Trust in Practice

协议 3 不适用于移动设备,因为它们缺乏成对的安全通信和身份验证。我们建议通过用服务器介导的密钥协议替换协议 1 中描述的公钥/私钥交换来引导通信协议,其中每个用户生成 Diffie-Hellman 密钥 cSKc ^{SK}cSK 和公钥 cPKc ^{PK}cPK , 并将后者与 sPKs ^{PK}sPK 一起公布。我们立即注意到服务器现在可能会进行中间人攻击,但认为出于多种原因这是可以容忍的。首先,对于缺乏身份验证机制或预先存在的公钥基础设施的用户来说,这本质上是不可避免的。仅依赖引导轮的非恶意性也构成了信任的最小化:实现此阶段的代码很小,可以公开审核、外包给受信任的第三方,或通过提供远程证明功能的受信任计算平台来实现。此外,该协议有意义地提高了安全性(通过防止服务器主动恶意攻击以外的任何情况)并提供前向保密(在密钥交换后随时损害服务器不会给攻击者带来任何好处,即使所有数据和通信已完全记录)。

我们在表 1 中总结了该协议的性能。假设密钥协商公钥和加密秘密共享均为 256 位,并且用户的输入都在同一范围 [0,RU−1][0, R_U − 1][0,RU1],每个用户传输的数据比发送原始向量多 $ \frac{256(7n−4)+k\lceil log2 (n(RU −1)+1)\rceil+n}{ k \lceil \log _2 {R_U} \rceil}$ 数据。


根据论文,协议4的工作流程如下:

  1. 每个用户生成Diffie-Hellman密钥对,通过服务器广播公钥。
  2. 服务器收集公钥,并广播给所有用户。
  3. 用户利用收到的公钥生成共享密钥s_uv。
  4. 用户生成随机数b_u和s_uv的shares,经服务器发送给其他用户。
  5. 用户计算掩码输入 y_u。
  6. 服务器收集部分用户的shares,重构密钥/随机数,计算结果。

协议4相较协议3的变化:

  • 不再需要点对点安全通道,由服务器广播公钥。
  • 服务器可以进行中间人攻击,但协议依然提供前向安全性。
  • 通过最小化信任启动协议,降低实际部署难度。

协议4的优点:

  • 在不可信服务器和无双边认证的环境下实现安全聚合。
  • 通过shares保护用户隐私,容忍部分用户掉线。
  • 通信量为O(n+k),较协议2有显著改进。

总体而言,协议4在保持安全性的同时,进一步减少了实际部署的难度,使其更适合在大规模分布式环境中应用。这是论文提出的一个可行的安全聚合方案。

补充:

Diffie-Hellman密钥交换算法

在这里插入图片描述

DH方法针对的是以下困难的局面:Alice和Bob 想共有一个密钥,用于对称加密。但是他们之间的通信渠道是不安全的。所有经过此渠道的信息均会被敌对方Eve看到。为了防止密钥泄露,Diffie与Hellman提出以下密钥交换协议:

Alice和Bob先对p和g达成一致,而且公开出来。Eve也就知道它们的值了。
Alice取一个私密的整数a,不让任何人知道,发给Bob 计算结果:A=gamod pA=g^a mod \space pA=gamod p. Eve 也看到了A的值。
类似,Bob 取一私密的整数b,发给Alice计算结果B=gbmod pB=g^b mod \space pB=gbmod p.同样Eve也会看见传递的B。
Alice 计算出K=Bamod p=gba mod pK=B^a mod \space p=g^{ba} \space mod \space pK=Bamod p=gba mod p.
Bob 也能计算出K=Abmod p=gabmod pK=A^b mod \space p=g^{ab} mod \space pK=Abmod p=gabmod p.
Alice 和 Bob 现在就拥有了一个共用的密钥K.
虽然Eve看见了p,g, A and B, 他无法知道a和b的具体值,所以Eve就无从知晓密钥K。
————————————————
原文链接:https://blog.youkuaiyun.com/weixin_44387339/article/details/111584544

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值