多方安全计算(Secure Multi-Party Computation, MPC)是密码学的一个分支,在无可信第三方的情况下,仍可安全地按照公开的计算逻辑,进行数据协同计算,并输出结果。
即使参与各方输入的数据只有自己知道,仍可以通过加密算法,各自得到自己想要的计算结果,但无法推断出原始加密数据,从而保障了隐私安全。
MPC起源于姚期智院士在1982年提出的百万富翁问题。自MPC理论创立以来,已经衍生出多个技术分支,包括混淆电路、秘密分享、同态加密,不经意传输,隐私集合交集和差分隐私等。
混淆电路
混淆电路(secret sharing,SS)又称姚氏加密电路。它在1986年由姚期智教授提出,所以又称姚氏电路。
其核心是将安全计算函数编译成布尔电路的形式,对电路本身进行加密。对于混淆电路存在两种操作:
一种是生成混淆电路,先生成一个特定功能的布尔电路,再以此为基础,将其中的逻辑门(真值)转换为混淆门(假值),即可生成一个混淆电路;
另一种操作称为求值操作,先生成混淆电路,再使用混淆电路计算得到输出。
混淆电路也可以理解为一种密码学协议,它基于混淆电路形成安全计算协议,由最初的两方安全协议,推演出多方安全协议。