MENU

GMW 协议

• November 4, 2022 • Read: 1605 • 隐私计算

思想

GC(混淆电路)协议实现激活导线值秘密共享的方法是让一个参与方(电路生成方)持有两个可能的导线标签 $ \omega_i^0 $ 和 $ \omega_i^1 $,另一个参与方(电路求值方)持有激活标签 $ \omega_i^b $。在 GMW 协议中直接通过让各个参与方持有激活导线值的加法秘密份额,这样就能够很容易地将协议扩展为支持多个参与方。

GMW 协议同时支持布尔电路和算数电路。我们假设 AliceBob 是两个参与方,双方已经协商好待计算函数 $ \mathcal{F}(x, y) $ 的布尔电路 $ \mathcal{C} $

协议过程

Alice 持有比特串 $ a \in \{0, 1\}^n $,Bob 持有比特串 $ b \in \{0, 1\}^n $,双方对自己的比特串逐比特生成一个掩码 $ r_i \in \{0, 1\} $,并将生成的掩码发送给对方,我们将 $ a $ 的掩码设为 $ r_{ai} $,$ b $ 的掩码设为 $ r_{bi} $,即 Alice 拥有 $ a $,$ r_{ai} $ 和 $ r_{bi} $,Bob 拥有 $ b $,$ r_{ai} $ 和 $ r_{bi} $,随后双方分别将 $ a \oplus r_{ai} $,$ r_{bi} $,$ r_{bi} $ 和 $ b \oplus r_{bi} $,$ r_{ai} $,$ r_{bi} $ 作为协议输入 $ a $ 和 $ b $ 的子秘密。若双方公开其所掌握的秘密,则双方可以共同计算出 $ a = a \oplus r_{ai} \oplus r_{ai} $, $ b = b \oplus r_{bi} \oplus r_{bi} $

随后 AliceBob 对电路中的每个门求值,直至完成所有门的计算。GWM 协议的目标函数由异或门、与门和非门组成。

  • 异或门:假设输入为 ab,因为 $ (a \oplus r_{ai} \oplus r_{bi}) \oplus (r_{ai} \oplus b \oplus r_{bi}) = (a \oplus r_{ai} \oplus r_{ai}) \oplus (b \oplus r_{bi} \oplus r_{bi}) = a \oplus b $,因此双方在本地使用其掌握的子秘密进行计算即可得出结果

  • 非门:非门为单输入,双方在本地对输入直接求反即可

  • 与门:对于与门,双方无法只在本地完成相关计算,所以与门的计算必须通过双方协作来完成,而这里需要用到四选一不经意传输协议,对于 Alice 来说,Bob 掌握的 $ r_{ai} $ 和 $ b \oplus r_{bi} $ 都是单比特值,所以仅有四种可能性:$ (0, 0) $,$ (0, 1) $,$ (1, 0) $,$ (1, 1) $,由此可以确定四个值 $ c_{00} $,$ c_{01} $,$ c_{01} $,$ c_{11} $,随后 Alice 生成一个随机比特 $ r $,并与每个 $ c $ 做异或运算,随后 Bob 从四个值中选择一个,又由于 Bob 不知道 r 的值,所以也就不知道他所选择的 $ c $ 是 0 还是 1,只有在最后双方公布各自手中的计算结果时双方才能合理计算出正确的结果

参考文献