查看原文
其他

MOTION-混合协议的多方计算框架

董业 隐私计算研习社 2022-09-24
MOTION-A Framework for Mixed-Protocol Multi-Party Computation

本次介绍的是Braun等人发表在TOPS'22上的MOTION。论文链接如下:[https://eprint.iacr.org/2020/1137]。之前的 ABY 和 ABY2.0 实现了在两方下的三种秘密分享(Arithmetic-Sharing,Boolean-Sharing 和 Yao's-Sharing)的转化,在MOTION中,Braun等人实现了面向多方下dishonest majority场景的三种秘密分享的转化,并提出了一些协议和实现优化来提升性能,和之前的方案的对比见表1。

大致上,MOTION做了如下主要工作:

  • MOTION使用面向多方的GMW协议的Arithmetic和Boolean变体实现A-Sharing和B-Sharing,而对于多方的Y-Sharing,则使用BMR协议;
  • 进一步,MOTION实现了A/B/Y三种秘密分享的转化;
  • 而对于底层的Beaver Triples (MTs) 生成等基础协议,则使用基于OT的方式来实现。

本次,我们将介绍的重点放在三种技术的介绍和协议层面的优化。对于实现层面的优化,则不会过多的涉及。

1. MPC Building Blocks

本文用到的notations都是MPC方案中常见的表达形式,在这里不做过多的展开。我们从原文的Section 5 MPC Building Blocks部分直接开始。

1.1 Oblivious Transfer (OT)

本文利用OT构造底层的基本模块,使用OT Extension来提升性能。并且,本文还使用了Random-OT和C-OT来加速MTs的生成和乘法的计算。关于OT的上述相关知识详见知乎不经意传输(OT)-总结。这里,我们介绍一下本文提出的对C-OT的优化:Braun等人发现,在C-OT中,虽然根据的修正比特,的传输消息的计算方式不一样,但是两种计算的结果却是一样的。为了方便描述C-OT的预计算过程,此处作者用R-OT进行描述。具体来说:

  • 双方首先计算R-OT,其中的选择比特是
  • 对于的实际输入 ,如果 ,否则 。并将 发送给 ;
  • 获得 之后,如果 则调换自己两条信息的位置,否则位置不变。进而发送消息给对方。

但是在C-OT中,两种情况下发送的消息是完全一样的:

因此,双方可以独立并行传输自己的消息给对方,从而减少一半的延迟。

1.2 Beaver Triples

Beaver MTs 能够用在A-Sharing和B-Sharing中用来计算乘法/AND门。下面我们以A-Sharing下的A-MTs为例进行介绍。多方场景下,每一个参与方本地生成两个随机的分享 ,进而多方计算生成 。因为

在本地计算 ,然后两方计算 ()。两方基于C-OT实现,其中, 。在第次COT:

  • 作为发送方输入 ,得到
  • 作为接收方,输入比特,得到,其中表示对进行分解之后得到的比特向量;
  • 最终,,从而使得

由于模约减,可以在COT中通过舍弃高k比特的方式减少一半的通信量。一共需要两轮通信,总通信量为 比特。

对于B-MTs,处理方法和A-MTs类似。总通信量为 比特,一共需要两轮通信。

1.3. Square Pairs (SPs)

SPs是指秘密分享下的 ,满足 。其生成方法和MTs类似,除了我们只需要任意两方做一次乘法,因此通信量是生成MTs的一半,通信轮数也是2轮。

1.4. Shared Bits (SBs)

SBs指,其中。给定,可以通过 来计算。我们基于DET+17中的协议 生成SBs。我们利用实现 的转化。生成SBs需要3轮通信,通信量为

1.5. Extended Shared Bits (ESBs)

进一步,ESBs指,其中 , 。生成ESBs的方法有两种:

  1. 基于SBs:首先生成个SBs: 其中。这样一来可以令。如果要得到 ,则需要对 进行 转化。
  2. 基于加法电路:在该方法下,首先令本地生成随机,从而构成。然后每一方将自己的 进行B-或者Y-Sharing,进而计算个布尔电路下的加法得到 或者 。进行布尔加法时,不同的电路通信量和通信开销不同,一般常用的有RCA、PPA。

各个子模块的具体开销见表4。

1.6. Other Ooptimizations

本文还使用如下方法进行优化:

  • Fixed-Key AES做哈希函数和伪随机函数;
  • 在N方下,多个参与方如果要互相公开share,并在本地进行share的累加,在半诚实敌手下则可以通过指定一方做累加,然后将累加结果公布给所有参与方,从而将通信从降低到比特,但是增加了一轮交互。

2. MPC Protocols

在本章节,我们介绍A-, B-, Y-Sharing三种秘密分享各自的计算协议。

2.1 A-Sharing

给定分享为 。具体来说,拥有可以1)在本地生成份额然后发给其他方,2)也可以使用伪随机函数实现0通信。秘密恢复则是需要得到所有份额然后恢复。对于线性操作(包括加法和明文密文乘法),可以类似两方计算不需要交互就、本地计算得到结果。而乘法则需要消耗一个MTs,通过交互得到。具体来说:

  • 表示 MTs,满足;
  • 为了计算 ,各方本地计算 ,并恢复
  • 最后,各方在本地计算

在恢复的时候,可以采用Sec 1.6 中提到的第二种优化减少通信量(但是增加了轮数)。

平方计算可以利用SPs通过类似的方法得到:,其中 是SPs()。

2.2 B-Sharing

对于B-Sharing, A-Sharing下的加法和乘法替换为操作,计算方法在比特级别。算法原理类似。

More Efficient AND Gates without MTs: 本文利用优化的COT提出了一种不需要MTs的更加高效的乘法,简单来说是利用COT直接计算AND门下的交叉比特操作。该方法和基于MTs的方法相比,通信量:预计算节省了4比特,在线计算相同;通信轮数,在线计算相同,预计算提升了

2.3 Y-Sharing

多方下的混乱电路协议是BMR协议,该方法的基本思想是多方在预计算交互,构造混乱电路。然后在线计算阶段只需要本地计算即可。和两方计算不同,BMR中任意一方都不能拥有构造混乱表的全部的keys明文。

Setup:在混乱电路构造阶段,每一个参与方本地生成global key offset ,随机置换比特的分享),针对输入线两种可能值的两个keys

  • 如果提供实际输入,那么当时,有;否则,
  • 如果对应公开值, ($i=1,...,N);
  • 如果不是XOR门的输出,那么;如果是XOR的输出且输是,那么。两种情况下,都有

的garbling过程如下:对于每一个AND门,对于输入线,混乱表项计算如下:

对于所有的,其输出。MOTION使用OT实现底层的计算:

  • 多方使用1比特的COT计算得到,从而获得share
  • 进而,每一方本地计算,该计算可以令本地计算。对于计算类似;
  • 第三步,多方调用-比特的COT计算得到对于。记该步的结果为
  • 如此一来,最后的混乱表中,持有的表项可以构造如下:
    • 广播
    • 广播
  • 上述广播的消息做XOR即可得到。另外一种优化方法则是通过计算

得到 , 可以不用计算

Online: 在线计算阶段,任意参与方持有(其中是实际输入),keys () 和 分享 。表示为

在线阶段,秘密拥有者首先广播;然后每一方广播。给定,可以利用free-XOR技术本地计算XOR:

  • ;

AND门则需要解密得到,通过对比 推断的值。其余的优化可以参考原文。

上述各部分的开销如下:

3. MPC Conversions

本章节介绍A/B/Y三种协议多方下的转化:

3.1 B2Y

最直观的方法是利用Y-Sharing的分享方法直接分享然后在Y-Sharing下做XOR。本文提出了对于通信量的优化方案:

  • 广播
  • 计算,并广播

不难验证,。如此,通行量提升了

3.2 Y2B

和2PC下一样Y2B也是free的:因为。由于是公开的,是B-Sharing的,令计算 ()设置即可得到

3.3 B2A

Straightforward: Additive Masking: 该方法直接利用ESBs:,计算:

  • ;

但是该方法需要在B-Sharing做减法电路,需要通信轮数。

Optimized: Using Shared Bits: 该方法对于每一比特利一个SBs,将每一比特转化为A-Sharing之后,再本地加权求和即可。通信轮数降低为1。

3.4 A2Y

比较直观的方法是每一方将自己的share重新分享为Y-Sharing,然后在Y-Sharing下做次加法。本文的优化方法是利用ESBs ,计算如下:

  • 。上述方法只需要一次加法电路。

3.5 A2B

两种方法实现A2B:1)使用加法电路直接将在布尔电路下做加法,通信轮数为;2)先做A2Y,然后做Y2B(free)。

3.6 Y2A

简单是方法是先做Y2B,然后做B2A。但是该方法需要一轮在线通信。本文的优化方法可以利用ESBs

  • ;
  • ;
  • 。根据BMR的特性,上述Step 1 & 2 不需要在线通信,而A-Sharing下的加法也不要通信。因此,该方法不需要在线通信。

各协议的复杂度如下:

4. Experiments

本文做了一系列实验,和ABY,MP-SPDZ等协议对比,验证了子协议和整个系统的性能提升。列举几项如下:



译者简介


董业, 本科毕业于山东大学计算机科学与技术专业,目前在中国科学院信息工程研究所攻读博士学位。主要研究兴趣包括隐私保护、安全多方计算、同态加密和机器学习。知乎:酸菜鱼。



往期推荐:

Trident:针对隐私保护机器学习的4PC框架

SecFloat:面向精确浮点计算的安全两方计算

更新|Cheetah: 精简快速的安全两方DNN推理

一个好用的多方隐私求交算法库MultipartyPSI-Pro

诚实大多数下抵抗恶意敌手的高效安全三方计算

Secret-shared Shuffle—秘密共享下的洗牌协议



欢迎投稿

邮箱:pet@openmpc.com

参与更多讨论,请添加小编微信加入交流群

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存