【隐私计算笔谈】MPC系列专题(十三):比特分解
文章目录
- 【隐私计算笔谈】MPC系列专题(十三):比特分解
- 推荐阅读
-
-
- 【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览
- 【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制
- 【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路
- 【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议
- 【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议
- 【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺
- 【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路
- 【隐私计算笔谈】MPC系列专题(八):OT协议(二)
- 【隐私计算笔谈】MPC系列专题(九):OT协议(三)
- 【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算
- 【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享
- 【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享
- 【隐私计算笔谈】MPC系列专题(十二):比特比较
-
比特分解
上一次科普介绍了比特比较( Bitwise Compare ),比特比较可以实现多方下的比较,不过其要求比较的输入是按比特分享的。回忆一下,在Shamir(t,n)秘密分享机制中所有被分享的秘密都是一个完整的比特串的形式,通过一个秘密多项式被分享成𝑛个在域𝐹𝑞上的子秘密。
那么要想在Shamir(t,n)秘密分享机制中使用bitwise compare来实现多方比较,就需要将在域𝐹𝑞上的子秘密以比特形式重新分享,将其记为[𝑎]𝑝→[𝑎]B,称为比特分解( Bit Decomposition )。
如果已经有了[𝑎]B,将[𝑎]B转换成[𝑎]𝑝较为简单,因为[𝑎]B={[a0]B,…[al-1]B},[ai]B分别表示𝑎从高位数起按比特分享的第𝑖比特。由于
回忆一下Shamir(t, n)秘密共享机制的性质,所有对应的子秘密相加,等于主秘密相加;所有子秘密乘上同一个常数,等于主秘密乘上该常数。因此将[𝑎]B→[𝑎]𝑝只需计算[a]p= ∑ i = 0 l − 1 \sum_{i=0}^{l-1} ∑i=0l−1 2l-1-i ⋅ \cdot ⋅[ai]。
比特分解(Bit Decomposition)[𝑎]𝑝→[𝑎]B的主要步骤为:
-
所有参与者共同产生一个随机数[𝑟]B(上次科普介绍过如何共同产生随机数),并计算对应的[𝑟]𝑝。
-
每个参与者都计算[𝑐]𝑝=[𝑎]𝑝−[𝑟]𝑝,并将[𝑐]𝑝进行公开。因此每个参与者都能获得𝑐=𝑎−𝑟 𝑚𝑜𝑑 𝑝。
-
由于每个参与者都知道明文的𝑐,因此每个参与者都可计算 [𝑐]B,之后 计算[𝑑]B=[𝑟]B+[𝑐]B= {[d0]p,…, [dl]p}。(注意这里用的加法是Bit-Add,[d=r+c] B,并不是直接按比特相加,同理下面用到的类似[