【隐私计算笔谈】MPC系列专题(十四):双方比较
文章目录
- 【隐私计算笔谈】MPC系列专题(十四):双方比较
- 推荐阅读
-
-
- 【隐私计算笔谈】MPC系列专题(一):安全多方计算应用场景一览
- 【隐私计算笔谈】MPC系列专题(二):模型和Shamir秘密共享机制
- 【隐私计算笔谈】MPC系列专题(三):不经意传输与混淆电路
- 【隐私计算笔谈】MPC系列专题(四):GMW协议和BGW协议
- 【隐私计算笔谈】MPC系列专题(五):Beaver三元组和BMR协议
- 【隐私计算笔谈】MPC系列专题(六):零知识证明和比特承诺
- 【隐私计算笔谈】MPC系列专题(七):信息论安全的混淆电路
- 【隐私计算笔谈】MPC系列专题(八):OT协议(二)
- 【隐私计算笔谈】MPC系列专题(九):OT协议(三)
- 【隐私计算笔谈】MPC系列专题(十):安全多方计算下的集合运算
- 【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享
- 【隐私计算笔谈】MPC系列专题(十一):共享随机数和比特分享
- 【隐私计算笔谈】MPC系列专题(十二):比特比较
- 【隐私计算笔谈】MPC系列专题(十三):比特分解
-
双方比较
之前已经介绍过了利用加密电路或者比特分解来实现安全多方比较。本次再介绍一种利用不经意传输来实现双方比较的方法。
不经意传输在之前的科普进行过介绍,该比较协议的主要思路为:将需要比较的两个比特串分为多个部分,每个部分再进行比较,最后利用树形结构进行组合。假设有比特串𝑥和比特串𝑦,将比特串𝑥划分为两个部分,分别为𝑥1,𝑥0,将比特串𝑦也划分为𝑦1和𝑦0。
表达式1{𝑥<𝑦} 表示若𝑥<𝑦,则表达式1{𝑥<𝑦} 的值为1,否则为0。同理,表达式1{𝑥=𝑦 } 表示若𝑥=𝑦则表达式的值为1,反之为0。
思考如下的比较:
把比特串𝑥和比特串𝑦分为两部分后,先比较𝑥1和𝑦1的大小,由于𝑥1和𝑦1都是高位部分,因此若𝑥1<𝑦1则比特串𝑥<𝑦;反之若𝑥1>𝑦1则𝑥>𝑦,在这两种情况下无需在比较𝑥0,𝑦0的大小了。只有当𝑥1=𝑦1时,需要通过比较𝑥0,𝑦0的大小关系来确定𝑥, 𝑦的大小关系。
式1就是该比较协议的核心思想。该协议的详细流程为:
首先假设Alice掌握比特串𝑥,Bob掌握比特串𝑦,先考虑最简单的情况,𝑥和𝑦等长均为𝑙比特且 l m \frac{l}{m} ml为2的指数倍。
- Alice和Bob分别对𝑥和𝑦进行𝑞等分:
Alice:把𝑥进行𝑞等分,每份𝑚比特:x=xq-1 ∣ \mid ∣ ∣ \mid ∣… ∣ \mid ∣ ∣ \mid ∣x0
Bob:把𝑦进行𝑞等分,每份𝑚比特:y=yq-1 ∣ \mid ∣ ∣ \mid ∣… ∣ \mid ∣ ∣ \mid ∣y0
- Alice产生两个随机数,将其分别记为 < I t o , j > 0 B \ <It~o,j~>_{0}^{B} <It o,j >0B, < e q o , j > 0 B \ <eq~o,j~>_{0}^{B} <eq o,j >0B。Alice利用
𝑀 = 2m个比特,分别为𝑠j,0,…𝑠j,M-1来标识𝑥j的大小关系;利用𝑀个比特,分别为tj,0,…tj,M-1来标识𝑥j的相等关系:
Alice置变量𝑠j,0,…𝑠j,xj-1 = < I t o , j > 0 B \ <It~o,j~>_{0}^{B} <It o,j >0B⊕0
Alice置变量𝑠j,xj,…𝑠j,M-1 = < I t o , j > 0 B \ <It~o,j~>_{0}^{B} <It o,j >0B⊕1
Alice置tj,0,…tj,xj-1,tj,xj+1,…tj,M-1 = < e q o , j > 0 B \ <eq~o,j~>_{0}^{B} <eq o,j >0B⊕0
Alice置tj,xj = < e q