一、安全多方计算的概念
安全多方计算(MPC)的研究主要是针对没有可信第三方的情况下,如何安全地计算一个约定函数的问题。最初由百万富翁问题引入,百万富翁问题指的是,在没有可信第三方的前提下,两个百万富翁如何不泄露自己的真实财产状况来比较谁更有钱。
安全多方计算
与中心化
是相互对立的两个概念,中心
是指所有的信息资源都掌握于某一方所有,它可以悄无声息地进行某个操作,而不被其余人察觉。例如在SaaS云平台中,平台服务器就是一个中心,它存储着用户所有的资源,包括本应由用户本人持有的私钥、签名图样、合同文档等,可以在不经过用户知晓的情况下,任意调取用户的私钥以用户的名义进行合同的签署。
理解安全多方计算,首先要弄清楚安全
及多方
的概念,安全
是指行为必须由用户本人实施,其余人没有办法代替他完成,多方
是指实施一个行为必须由多个参与人共同完成。通过该技术,用户可以安全实施某项行为,不必担心他人冒充、代替甚至跨越自己实施某个行为,实现用户一直追求的安全。
举个例子来说,A和B想弄清谁的薪资更高,但因为签署了保密协议而不能透露具体薪资。如果A和B分别将各自的薪资告诉离职员工C,这时C就能知道谁的薪资更高,并告诉A和B。这种方式就是需保证中间人C完全可信。而通过MPC则可以设计一个协议,在这个协议中,算法取代中间人的角色,A和B的薪资以及比较的逻辑均交由算法处理,参与方只需执行计算协议,而不用依赖于一个完全可信的第三方。
安全多方计算所要确保的基本性质就是
:在协议执行期间发送的消息中不能推断出各方持有的私有数据信息,关于私有数据唯一可以推断的信息是仅仅能从输出结果得到的信息。
二、安全多方计算的主要特点
安全多方计算理论包括输入隐私性、计算正确性及去中心化等特性。
● 输入隐私性:在安全多方计算过程中必须保证各方私密输入独立,计算时不泄露任何本地数据;
● 计算正确性:多方计算参与各方通过约定MPC协议进行协同计算,计算结束后各方得到正确的数据反馈;
● 去中心化:安全多方计算中,各参与方地位平等,不存在任何有特权的参与方或第三方,提供一种去中心化的计算模式。
三、安全多方计算的实现
证明安全多方计算协议是安全的标准方法为仿真范式
。为了证明安全多方计算协议在仿真范式下可以抵御使t
方腐败的敌手,需要构建一个模拟器,当给定t
个勾结方的输入和输出时,生成t
个交互序列,从而使生成的交互序列与实际协议中生成的交互序列之间无法区分。
通常情况下,安全多方计算能通过三种不同的框架来实现:不经意传输(OT)
、秘密共享(SS)
和阈值同态加密(THE)
。从某种程度上讲,不经意传输协议和阈值同态加密方法都使用了秘密共享的思想,这可能就是为什么秘密共享被广泛认为是安全多方计算的核心。
3.1、不经意传输
在不经意传输中,发送方拥有一个消息-索引
对(M1,1),···,(Mn,N)
,在每次传输时,接收方选择一个满足1≤i≤N
的索引i
,并接收Mi
,接收方不能得知关于数据库的任何其他信息,发送方也不能了解关于接收方i选择的任何信息。
n取1的不经意传输:设A方有一个输入表(X1,···,Xn)
作为输入,B方有i∈1,···,n
作为输入。n取1的不经意传输是一种安全多方计算协议,其中A不能学习到关于i
的信息,B只能学习到Xi
。
当n=2
时,我们得到了具有以下性质的2取1的不经意传输,2取1的不经意传输对两方安全计算是普适的。换言之,给定一个2取1的不经意传输,我们可以执行任何的安全两方计算操作。
目前在此领域的研究者已发表了许多不经意传输的构造方法,例如Bellare-Micali构造
、Naor-Pinka构造
以及Hazay-Lindell构造
。
Bellare-Micali构造
的工作原理如下:接收方向发送方发送两个公钥。接收方只拥有与两个公钥之一对应的一个私钥,并且发送方不知道接收方有哪一个公钥的密钥。之后,发送方用收到的两个公钥分别对它们对应的两个消息加密,并将密文发送给接收方。最后,接收方使用私有密钥解密目标密文。
混淆电路
是一种著名的基于不经意传输的两方安全计算协议,它能够对任何函数进行求值。混淆电路的中心思想是将计算电路(与电路、或电路、非电路)分解为产生阶段和求值阶段。每一方都负责一个阶段,而在每一阶段中电路都被加密处理,所以任何一方都不能从其他方获取信息,但他们仍然可以根据电路获取结果。混淆电路由一个不经意传输协议和一个分组密码组成。电路的复杂度至少是随着输入内容的增大而线性增长的。
3.2、秘密共享
秘密共享是指通过将秘密值分割为随机多份,并将这些份分发给不同方来隐藏秘密值的一种概念。因此,每一方只能拥有一个通过共享得到的值,即秘密值的一小部分。根据具体的使用场合,需要所有或一定数量的共享数值来重新构造原始的秘密值。
秘密共享主要包括算数秘密共享
、Shamir秘密共享
和二进制秘密共享
等方式。例如,Shamir秘密共享是基于多项式方程建立的,实现了理论上的信息安全,而且有效地使用了矩阵运算加速方法。
四、安全多方计算与隐私保护
大多数基于安全多方计算的隐私保护方法利用两阶段架构,包括离线阶段
和在线阶段
。大多数密码操作都在离线阶段执行,在离线阶段生成乘法三元组,之后,于在线阶段使用离线阶段生成的乘法三元组对机器学习模型进行训练。
● DeepSecure
是一个基于混淆电路的安全神经网络推理框架,其中推理函数必须表示为一个布尔电路,在加密电路中,计算和通信开销只取决于电路中与门的总数和。
● SecureML
是另一种使用两阶段架构的隐私保护两方框架。在联邦学习中,各方将其数据的算术共享信息,分配给两个运行着安全的两方模型训练协议的非勾结服务器,该方法基于线性同态加密和基于不经意传输的离线乘法三元组生成协议,在线阶段以算术秘密共享和除法混淆电路为基础。因此,模型训练中只允许进行线性运算,并且会对非线性函数进行多种近似计算。
● Chameleon
框架是另一种基于神经网络模型推理的ABY方法的混合安全多方计算框架。算术秘密共享被用于执行线性运算操作,混淆电路和GMW被用于进行非线性操作。