多方安全计算(Secure Multi-Party Computation),MPC 由姚期智在1982 年提出,指参与者在不泄露各自隐私数据情况下,利用隐私数据参与保密计算,共同完成某项计算任务。
该技术能够满足人们利用隐私数据进行保密计算的需求,有效解决数据的“保密性”和“共享性”之间的矛盾。多方安全计算包括多个技术分支,目前,在MPC 领域,主要用到的是技术是秘密共享、不经意传输、混淆电路、同态加密、零知识证明等关键技术,你可以认为多方安全计算是一堆协议集。
1)秘密共享的思想是将秘密以适当的方式拆分,拆分后的每一个份额由不同的参与者管理,单个参与者无法恢复秘密信息,只有若干个参与者一同协作才能恢复秘密消息。更重要的是,当其中任何相应范围内参与者出问题时,秘密仍可以完整恢复。
2)同态加密是一种允许在加密之后的密文上直接进行计算,且计算结果解密后和明文的计算结果一致的加密算法。
这个特性属性对于保护信息的安全具有重要意义,利用同态加密技术可以先对多个密文进行计算之后再解密,不必对每一个密文解密而花费高昂的计算代价;利用同态加密技术可以实现无密钥方对密文的计算,密文计算无须经过密钥方,既可以减少通信代价,又可以转移计算任务,由此可平衡各方的计算代价,利用同态加密技术可以实现让解密方只能获知最后的结果,而无法获得每一个密文的消息,可以提高信息的安全性。
3)不经意传输是一种可保护隐私的双方通信协议,消息发送者从一些待发送的消息中发送某一条给接收者,但并不知道接收者具体收到了哪一条消息。不经意传输协议是一个两方安全计算协议,协议使得接收方除选取的内容外,无法获取剩余数据,并且发送方也无从知道被选取的内容。
比如Alice每次发两条信息(m0、m1)给Bob,Bob提供一个输入,并根据输入获得输出信息,在协议结束后,Bob得到了自己想要的那条信息(m0或者m1),而Alice并不知道Bob最终得到的是哪条。
4)零知识证明指的是证明者能够在不向验证者提供任何有用信息的情况下,使验证者相信某个论断是正确的。允许证明者 prover、验证者 verifier 证明某项提议的真实,却不必泄露除了「提议是真实的」之外的任何信息。
5)混淆电路是双方进行安全计算的布尔电路。混淆电路将计算电路中的每个门都加密并打乱,确保加密计算的过程中不会对外泄露计算的原始数据和中间数据。双方根据各自的输入依次进行计算,解密方可得到最终的正确结果,但无法得到除结果以外的其他信息,从而实现双方的安全计算。
欢迎补充,交流~