【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享
文章目录
- 【隐私计算笔谈】MPC系列专题(十五):三方复制秘密分享
-
- 三方复制秘密分享
-
- 【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览
- 【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制
- 【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路
- 【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议
- 【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议
- 【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺
- 【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路
- 【隐私计算笔谈】MPC系列专题(八):OT协议(二)
- 【隐私计算笔谈】MPC系列专题(九):OT协议(三)
- 【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算
- 【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享
- 【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享
- 【隐私计算笔谈】MPC系列专题(十二):比特比较
- 【隐私计算笔谈】MPC系列专题(十三):比特分解
- 【隐私计算笔谈】MPC系列专题(十四):双方比较
三方复制秘密分享
复制秘密共享( three-party replicated secret sharing ),是另一种秘密共享技术。本次科普要介绍的是Araki等人的半诚实的三方复制秘密共享协议,用于在三方环境下的安全多方计算和秘密共享,可以容忍最多一个腐化用户,其相比于Shamir(2, 3)来说有非常小的通信量和计算量。
首先介绍在布尔电路下的情景,假设参与者分别为 Alice、Bob和Candy,三者的序号分别记为1、2、3。在复制秘密共享中,一个单比特的秘密𝑥会被生成为三个子秘密𝑥1,𝑥2,𝑥3,且𝑥=𝑥1⊕𝑥2⊕𝑥3。具体方式为:秘密分享者首先生成三个随机数𝑎1,𝑎2,𝑎3,并且满足𝑎1⊕𝑎2⊕𝑎3=0。让子秘密𝑥1=𝑎3⊕𝑥,𝑥2=𝑎1⊕𝑥,子秘密𝑥3=𝑎2⊕𝑥。则𝑥1⊕𝑥2⊕𝑥3=𝑎1⊕𝑎2⊕𝑎3⊕𝑥⊕𝑥⊕𝑥=𝑥。让Alice、Bob和Candy分别持有(𝑎1,𝑥1), (𝑎2,𝑥2), (𝑎3,𝑥3),将这种秘密分享方式简记为[𝑥]。满足限制条件𝑎1⊕𝑎2⊕𝑎3=0下生成随机数𝑎1,𝑎2,𝑎3的具体方式之后再进行介绍。在这种情况下,任意两个参与者合谋就可以恢复出秘密𝑥,如Bob和Candy合谋,则Candy可以利用自己手中的𝑥3和Bob手中的𝑎2,计算𝑥3⊕𝑎2=𝑎2⊕𝑥⊕𝑎2=𝑥。
在安全多方计算中,只要实现了多方加法和多方乘法,即可实现完备。因此接下来开始介绍该三方复制秘密共享协议实现多方加法和多方乘法的方式。此时Alice已经持有了(𝑎1,𝑥1), (𝑏1,𝑦1),Bob持有了(𝑎2,𝑥2), (𝑏2,𝑦2), Candy持有了(𝑎3,𝑥3), (𝑏3,𝑦3)。
首先是XOR(加法)的实现方式:要计算 [𝑧]=[𝑥+𝑦],Alice、Bob和Candy只需要分别本地计算𝑥𝑖+𝑦𝑖,𝑖∈{ 1,2,3}即可。以Alice为例,因为𝑥1=𝑎3⊕𝑥,𝑦1=𝑏3⊕𝑦,则𝑥1⊕𝑦1=𝑎3⊕𝑥⊕𝑏3⊕𝑦=(𝑎3⊕𝑏3)⊕(𝑥⊕𝑦)=(𝑎3⊕𝑏3)⊕𝑧,若将𝑎1⊕𝑏1记为𝑐1,𝑎2⊕𝑏2记为𝑐2,𝑎3⊕𝑏3记为𝑐3,则Alice、Bob和Candy在分别完成本地计算𝑥𝑖+𝑦𝑖,𝑖∈{ 1,2,3}后,Alice可以得到𝑧1=𝑐3⊕𝑧,