联邦学习中的安全多方计算

这篇具有很好参考价值的文章主要介绍了联邦学习中的安全多方计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

联邦学习中的安全多方计算

Secure Multi-party Computation in Federated Learning

什么是安全多方计算

安全多方计算就是许多参与方需要共同工作完成一个计算任务或者执行一个数学函数,每个参与方针对这个执行构建自己的数据或份额,但不想泄露自己的数据给其他参与方。

在安全多方计算中的定义包括以下几个方面:

  • 一组有私有输入的参与者,对他们的输入执行一些联合功能。
  • 参与者希望保留一些安全属性,例如,选举协议中的隐私性和正确性。
  • 安全性必须在面对某些参与者或外部各方的敌对行为时保持不变。

研究人员通常利用真实/理想的模型范式来探索安全协议的安全性。

  • 在理想的模型中,安全性是绝对的,例如服务器是绝对可靠和可信的,并且对服务器进行成功攻击的概率为零。
  • 在真实模型中,我们也可以通过各种方式来实现理想模型的安全性。任何可以从真实模型中学习或获得的信息敌手也可以从理想模型中学习或获得。换句话说,安全性在理想模型和真实模型之间是不可区分的

举个例子:在理想模型中,假设有一个可信服务器能够聚合各参与方并且产生正确预期输出;在真实模型中,不存在可信服务器,参与方可以通过点对点方式交换输入和信息来达到这种形式。

安全多方计算中有三个安全模型:

  • 半诚实敌手模型:被腐化的参与方忠实执行既定协议;而敌手尽可能收集所有信息以获得额外的机密信息
  • 恶意敌手模型(强安全模型):腐化参与方可能在任何时候根据敌手指示违背协议。
  • 隐蔽对手模型:介于上述两极端模型之间

安全多方计算的基础组件

不经意传输(茫然传输,Oblivious Transfer,OT)

不经意传输(OT):发送者S想发送n个消息中的一个给接受者R,目标是S不知道哪个消息被R接收,而且R没有获得S发送的其他n-1个消息中的任何信息。

一个标准的二选一函数被描述为\(F_{ot}\)如下:

  • 输入:
    • 发送方\(S\)输入两个消息\(m_1\), \(m_2\).
    • 接收方输入一个随机比特\(\sigma \in [0,1]\).
  • 输出:
    • 发送方\(S\)没有输出.
    • 接收方\(R\)获得\(m_\sigma\),并且没有获得关于\(m_{1-\sigma}\)的任何知识.

实现OT协议的方法有很多,例如RAS或基于离散对数问题的方法。

混淆电路

双方将共同协作实现:一方将设计一个逻辑电路,另一方将检查并使用该逻辑电路。

秘密共享

秘密共享(Secret Sharing, SS)是密码学中的一个重要元素。对称或非对称加密更侧重于两方之间的秘密共享。然而某些时候,例如在联邦学习中则需要在多个参与者之间共享一个秘密,此时就需要秘密共享。

一般来说,有三种类型的秘密共享协议:算术秘密共享、Shamir秘密共享和Goldreich-Micali-Wigderson(GMW)共享。算术秘密共享是利用数论的特征在两方之间共享一个秘密,而GMW共享主要使用XOR来隐藏私有值,而Shamir秘密共享可能是实践中最流行的秘密分享的原语。
在Shamir秘密共享中,一个秘密\(s\)将被分割成\(n\)个份额,这样任何\(t\)个份额都可以用来重建秘密\(s\);然而,任何小于\(t\)的份额都不能获得关于\(s\)的信息。

\((t,n)\)门限Shamir秘密共享方案
联邦学习中的安全多方计算
由于每个参与者\(P_i\)都知道一对\((x_i,y_i)\),因此,当我们有\(t\)\((x_i,y_i)\)时就可以获得秘密值\(K\)。然而,对于任意\(t-1\)\((x_i,y_i)\),我们则不能确定\(K\)(给定一个很大的素数\(p\)有很多可能性)。

另一种流行的秘密共享方法是使用拉格朗日插值法。我们用一个简单的例子来说明这项技术。假设\(t=3\),那么我们找到一个阶数为3的多项式如下:

\[y=f(x)=ax^3+bx^2+cx+d \]

,其中\(d=f(0)\)是秘密值。

分配者可以在\(X\)轴上随机选择\(n\)个点,如\(x_1,x_2,...,x_n\)。根据\(a\)\(b\)\(c\)\(d\)的知识,分配者可以轻松获得\(n\)对数据\((x_1,f(x_1)),(x_2,f(x_2)),...,(x_n,f(x_n))\)。然后他将把\(n\)对秘密份额分配给\(n\)个秘密持有人。

两种方法的主要区别:

  • Shamir秘密共享是\(x_1\)\(x_n\)是随机选取且公开的,之后随机选取\(t-1\)个多项式系数,求得y值进行分配,秘密份额是y值。需要分配方分发两次,一次公开的,一次秘密份额
  • 拉格朗日插值法是先找一个多项式,再随机选\(n\)个点,这样每个点(即\(x\)值和\(y\)值)共同作为秘密份额,\(x_1\)\(x_n\)不公开。分配方只需要分发一次

同态加密

目前同态加密的性能有很大挑战,阻碍了实践中的部署。

联邦学习中的安全多方计算

成对掩蔽技术(pairwise masking)数据聚合

假设我们有两个客户端\(u\)\(v\),他们分别想将\(x_u\)\(x_v\)上传到联邦学习服务器。为了不向服务器泄露他们的原始秘密值,\(u\)\(v\)将协议产生一个虚拟数据\(s_{uv}\),其中一个客户端会将虚拟数据添加到真实数据中来输出,例如,\(y_u = x_u + s_{uv}\),而另一个客户端将输出\(y_v = x_v − s_{uv}\)。在服务器端,诚实但好奇的服务器通过将接收到的\(y_u\)\(y_v\)相加,即可得到正确的聚合结果\(x_u + x_v\),与此同时服务器无法从接收到的消息中得到\(x_u\)\(x_v\)

对掩蔽方法进一步推广:假设有多个客户端参与该任务,使用客户端集合\(\mathcal{U}\)表示。我们将对集合中的每一对客户端\((u,v)\)生成一个共享的虚拟向量\(s_{uv}\)。此外我们还需要一个规则来决定谁将添加或减去共享的虚拟向量。一种解决方案是,我们随机地给每个客户端分配一个顺序,我们得到一个有序的用户列表\(1,2,...,|\mathcal{U}|\)。对于列表中的用户\(i\),他将添加用户\(1,2,...,i−1\)的共享虚拟向量,并减去与用户\(i + 1,i + 2,...,|\mathcal{U}|\)共享的虚拟向量。换句话说,用户\(u\)的掩码输出是:

\[y_u=x_u+\sum_{v\in\mathcal{U}:u<v}s_{uv}-\sum_{v\in\mathcal{U}:u>v}s_{uv} \]

我们注意到,上述掩蔽的正项或负项的数量是动态的,并取决于用户\(u\)在有序列表中的位置(每个不同位置的客户端正项和负项的数量都是不同的,但最后总和一定是互相抵消的,因为每个加减是成对出现的,例如客户端1要减掉其与客户端2共享的虚拟向量,客户端2要加上这个虚拟向量)。在服务器端,聚合的方式如下:

\[z=\sum_{u\in{\mathcal U}}y_{u}=\sum_{u\in{\mathcal U}}x_{u}. \]

这里贴一下我理解的成对掩码加减的示意图,以便于理解:
联邦学习中的安全多方计算

此外注意:这里的每对客户端之间生成的虚拟向量应该是不保存的,直接加在真实值上面,因此如果发生掉线情况,就会出问题

由于掩码是成对出现的,所以如果出现参与方掉线的情况就聚合之后的总和会出现问题,因此最重要的就是解决参与方掉线的问题。

联邦学习中的秘密共享

根据前文,可以使用秘密共享来解决客户端掉线问题。

在系统启动阶段,一个给定用户\(u\)将利用一个秘密共享方案来分发他的每个秘密值的\(t\)份额共享(\(u\)与其他用户之间有一个秘密值\(s_{uv},u \neq v\))。在掩蔽方案中,只有当所有预期的参与方都成功地上传了其所掩蔽的数据时,才能正确地完成聚合。否则,仅有部分参与方参与求和就远远不能得到正确的答案,因为一个缺失的参与者可能会导致很大的差异。

也就是说如果有一个客户端\(u\)掉线,那么与之相关的有\(n-1\)个秘密需要被恢复。而针对于用户\(u\)相关的其中一个秘密\(s_{u,v}\)来说,服务器至少需要从活跃参与方收集至少\(t\)个份额。即服务器总共需要手机\(t×(n-1)\)个份额才能完整复原所有与\(u\)有关的秘密值,从而使最终求和正确。这样开销显然太大了。

这里我本来有个疑问:此处为什么不用与他结对的客户端持有的值直接恢复?
我思考了一下之后觉得与它结对的客户端并不持有这个虚拟向量(我感觉这个虚拟向量就是个一次性的随机数),虚拟向量使用完之后两方都不存储。两方只是在生成之后根据这个虚拟向量值生成了秘密共享份额以备恢复它,但原始的虚拟向量值就销毁了,加完或减完只保留\(y_u\)值,不保留\(x_u\)值和\(s_{u,v}\)

此外有一种潜在的攻击是服务器可能声称用户\(u\)掉线了(其实没掉线),从而获得客户端\(u\)的与其他客户端的所有\(n-1\)个秘密值(虚拟向量)。而攻击者可以通过这\(n-1\)个虚拟向量以及各个客户端上传的内容求得各个客户端持有的真实值(需要上传的真实值):

\[x_u=y_u-\sum_{v\in\mathcal{U}:u<v}s_{uv}+\sum_{v\in\mathcal{U}:u>v}s_{uv} \]

为了应对这种攻击,提出了一种双掩蔽方法(待后续学习)。

为了处理掉线带来的昂贵代价,Zheng等人提出了一个轻量级的加密解决方案:

联邦学习中的安全多方计算

思路类似于DH密钥交换协议,每个客户端生成一个私钥和一个公钥,每两方通过密钥交换得到一个公共密钥,这个公共密钥就作为虚拟向量,这样子后续如果有一方掉线,而另一方知道这个公共密钥,可以直接恢复。文章来源地址https://www.toymoban.com/news/detail-677333.html

到了这里,关于联邦学习中的安全多方计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第162篇 笔记-安全多方计算

    一、主要概念 安全多方计算 (Secure Multi-Party Computation):指多个参与者在不泄露各自隐私数据情况下,利用隐私数据参与保密计算,共同完成某项计算任务。 该技术能够满足人们利用隐私数据进行保密计算的需求,有效解决数据的“保密性”和“共享性”之间的矛盾。多方

    2024年02月03日
    浏览(39)
  • 隐私计算论文合集「多方安全计算系列」第一期

    当前,隐私计算领域正处于快速发展的阶段,涌现出了许多前沿的 SOTA算法 和备受关注的 顶会论文 。为了方便社区小伙伴学习最新算法、了解隐私计算行业最新进展和应用,隐语开源社区在GitHub创建了Paper推荐项目awesome-PETs(PETs即Privacy-Enhancing Technologies , 隐私增强技术 )

    2024年02月09日
    浏览(44)
  • 华为安全专家带你入门安全多方计算

    6月8日(本周四) 19:00—21:00 ,华为安全专家带你入门安全多方计算,欢迎参加! 考虑以下应用场景: Alice认为她可能患有某种遗传病,Bob有一个包含DNA模式与各类疾病的数据库。Alice可将她的DNA序列交给Bob得到诊断结果。然而,Alice不想泄露自己的DNA序列,也不想Bob及其他人

    2024年02月08日
    浏览(50)
  • 【安全多方计算】百万富翁问题

    ​ 百万富翁问题是姚期智先生在1982年提出的第一个安全双方计算问题,两个百万富翁街头邂逅,他们都想炫一下富,比比谁更有钱,但是出于隐私,都不想让对方知道自己到底拥有多少财富,所以要在不借助第三方的情况下,知道他们之间谁更有钱。 ①这里假设Alice和Bob就是

    2024年02月05日
    浏览(43)
  • 百万富翁问题--安全多方计算

    百万富翁问题—安全多方计算 是由图灵奖获得者姚期智提出的。 有A、B两个富翁,A资产i亿元,B资产j亿元,i、j均在0-10范围内,在互不让对方知道自己资产的情况下,比较A和B的资产谁多谁少。 那么如何去比较呢? 这里放十个箱子: 如果A有i亿元,那么A将第i个箱子之前的

    2024年02月04日
    浏览(36)
  • 多方安全计算破解企业数据互信难题

    所谓 多方安全计算 ,最初是为解决一组互不信任的参与方之间在保护隐私信息以及没有可信第三方的前提下协同计算问题而提出的理论框架。 当企业之间进行数据相关的合作时,随之而来就涉及到数据泄露的问题。因此,如何兼顾“数据价值共享”和“隐私保护”,成为当

    2023年04月16日
    浏览(39)
  • 安全多方计算之七:门限密码系统

    门限密码系统由分布式密钥生成算法、加密算法、门限解密算法三部分构成,定义如下: (1)分布式密钥生成 :这是一个由参与者共同生成公钥 y y y 的协议,协议运行结束后,每个参与者将获得一个关于私钥 x x x 的碎片、对应于该碎片的公钥密钥 y i y_i y i ​ ,以及与私钥

    2024年01月19日
    浏览(48)
  • 安全多方计算之九:不经意传输

    考虑这样的场景:A意欲出售许多个问题的答案,B打算购买其中一个问题的答案,但又不想让A知道他买的哪个问题的答案。即B不愿意泄露给A他究竟掌握哪个问题的秘密,此类场景可通过不经意传输协议实现。 不经意传输(OT,Oblivious Transfer)又称健忘传输或茫然传输,由Rabin于

    2023年04月16日
    浏览(36)
  • 【多方安全计算】差分隐私(Differential Privacy)解读

    差分隐私(Differential privacy)最早于2008年由Dwork 提出,通过严格的数学证明,使用随机应答(Randomized Response)方法确保数据集在输出信息时受单条记录的影响始终低于某个阈值,从而使第三方无法根据输出的变化判断单条记录的更改或增删,被认为是目前基于扰动的隐私保护

    2024年02月06日
    浏览(45)
  • 安全多方计算之八:Mix-Match

    M.Jakobsson和A.Juels提出了基于Mix-Match的安全多方计算协议构造方法,该类协议包括Mix与Match两个阶段: Mix阶段 :通过构造混合网络,生成盲表(Blinded table) Match阶段 :通过执行PET协议进行查表,得到对应的输出 最后参与者共同解密输出,该类协议参与者之间所需传输的消息量

    2023年04月15日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包