在近期的文章中,王益介绍了多方安全计算(Multiparty Computation, MPC )的一种常见的实现形式:分享秘密(Secret Sharing)。今天我们来介绍另外一种常见的实现:混淆电路(Garbled Circuits,GC)。
GC 是一种密码学协议。遵照这个协议,两个 party 能在互相不知晓对方数据的情况下计算某一能被逻辑电路表示的函数。比如有两个富翁想知道谁的财富更多,但他们又较保守不想让对方知道自己的财富值。这时他们可以事先商定好的一个比大小的逻辑电路,并在逻辑电路上执行 GC 协议来获得结果。
GC 原理需要不少篇幅才能说明白。本文将先介绍 GC 背后的密码学思想:不经意传输(Oblivious Transfer,OT),再在之后两篇文章详细介绍 GC 的实现。
不经意传输
不经意传输(Oblivious Transfer,OT)是一种密码学协议,它解决了如下问题。
我们假设 Alice 有两个数值