【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议

【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议

Beaver三元组

Beaver三元组( Beaver Triple )主要用于安全多方计算协议中的乘法计算。它的应用范围为加法和乘法均为线性的秘密分享机制。
在这里插入图片描述
用[∗]表示秘密被分享之后的状态,如[𝑎]表示秘密𝑎已经通过秘密分享函数被分享给了参与者,如果有n个参与者,则[𝑎] = {𝑎1,𝑎2,…,𝑎𝑛}。假设秘密共享函数为𝑓(𝑥),𝑥为待共享的秘密,参与者为𝑃1,𝑃2,…,𝑃𝑛,参与者𝑃𝑖拿到的𝑥的子秘密记为𝑥𝑖

假设需要分享的秘密为𝑎、𝑏,参与者𝑃𝑖获得的𝑎、𝑏的子秘密为𝑎𝑖、𝑏𝑖

加法秘密分享机制为线性的意思为:存在一组常数𝜆1, 𝜆2,…,𝜆𝑛,使得:
𝑎+𝑏 = 𝜆1∙ (𝑎1+𝑏1) + 𝜆2∙(𝑎2 + 𝑏2) + ⋯+ 𝜆n∙(𝑎n+𝑏n)

将其抽象简记为:[𝑎 + 𝑏] = [𝑎] + [𝑏]

乘法秘密分享机制为线性的意思为:存在一组常数𝜆1, 𝜆2,…,𝜆𝑛,使得:
𝑎∙𝑏 = 𝜆1∙𝑎1∙𝑏1+ 𝜆2∙𝑎2∙𝑏2+ ⋯+𝜆n∙𝑎n∙𝑏n

将其抽象简记为:[𝑎 ∙ 𝑏] = [𝑎] ∙ [𝑏]

Beaver Multiplication的主要流程为:

在协议开始之前预先产生一个随机三元组:[𝑎], [𝑏], [𝑐],其中𝑎和𝑏对所有参与者保密,𝑐满足𝑐=𝑎∙𝑏。假设秘密𝑥和𝑦已经被分享,现在需要计算 [𝑥𝑦] 。

  1. 所有参与者公开 [𝛼],[𝛼]=[𝑥]−[𝑎]

  2. 所有参与者公开 [𝛽],[𝛽] = [𝑦]−[𝑏]

  3. 所有参与者计算 [𝑧]=[𝑐]+𝛼∙[𝑏]+𝛽∙[𝑎]+𝛼∙𝛽

因为 [𝛼] 和 [𝛽] 已公开,因此所有参与者都可以通过秘密重构函数独立计算出𝛼和𝛽。又因为:
[𝑧]
= [𝑐] + 𝛼 ∙ [𝑏] + 𝛽 ∙ [𝑎] + 𝛼 ∙ 𝛽
= [𝑎] ∙ [𝑏] + ([𝑥] − [𝑎]) ∙ [𝑏] + ([𝑦] − [𝑏]) ∙ [𝑎] + ([𝑥] − [𝑎]) ∙ ([𝑦] − [𝑏])
= [𝑎] ∙ [𝑏] + [𝑥] ∙ [𝑏] − [𝑎] ∙ [𝑏] + [𝑦] ∙ [𝑎] − [𝑏] ∙ [𝑎] + [𝑥] ∙ [𝑦] + [𝑎] ∙ [𝑏] − [𝑏] · [𝑥] − [𝑎] ∙ [𝑦]
= [𝑥] ∙ [𝑦]
= [𝑥 ∙ 𝑦]

由于[𝑎],[𝑏],[𝑐]是预先产生和分配的三元组,因此在乘法计算时参与者只需要本地计算[𝛼]=[𝑥]−[𝑎]和[𝛽]=[𝑦]−[𝑏],并对计算结果[𝛼]和[𝛽]进行公开。

而对于上次叙述的BGW协议,在计算乘法时,需要每一个参与者计算[𝑎]∙[𝑏],之后对[𝑎]∙[𝑏]进行秘密共享,将子秘密分别发送给其他所有参与者。

Beaver三元组是消耗性,每次乘法计算都会消耗一个Beaver三元组,通过预先计算的Beaver三元组,将通信量和计算量移到了协议开始之前。
在这里插入图片描述

BMR协议

之前介绍的姚氏混淆电路只支持双方计算,BMR( Beaver-Micali-Rogaway )协议将姚氏混淆电路扩充到了多方情景。
在这里插入图片描述
混淆电路的加密由一方对每条导线的真实输入值生成一个随机加密值,并根据每个门的真值表生成对应的加密表来实现。

因此如果直接把混淆电路协议扩展到多方,由一方对整个电路进行加密,或者对电路的一部分门进行加密&

  • 10
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值