什么是多方计算multi-party computation (MPC)

什么是多方计算multi-party computation (MPC)

安全多方计算(英文:Secure Multi-Party Computation)的研究主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题。

安全多方计算于1986 年由姚期智院士通过姚氏百万富翁问题提出:两个百万富翁街头邂逅,他们都想炫一下富,比一比谁更有钱,但是出于隐私,都不想让对方知道自己到底拥有多少财富,如何在不借助第三方的情况下,让他们知道谁更有钱。姚氏“百万富翁问题”后经发展,成为现代密码学中非常活跃的研究领域,即安全多方计算。

多个持有各自私有数据的参与方,共同执行一个计算逻辑计算逻辑(如,求最大值计算),并获得计算结果。但过程中,参与的每一方均不会泄漏各自数据的计算,被称之为MPC计算。
  举个例子,Bob和Alice想弄清谁的薪资更高,但因为签署了保密协议而不能透露具体薪资。如果Bob和Alice分别将各自的薪资告诉离职员工Anne,这时Anne就能知道谁的薪资更高,并告诉Bob和Alice。这种方式就是需保证中间人Anne完全可信。
  而通过MPC则可以设计一个协议,在这个协议中,算法取代中间人的角色,Alice和Bob的薪资以及比较的逻辑均交由算法处理,参与方只需执行计算协议,而不用依赖于一个完全可信的第三方。

安全多方计算所要确保的基本性质就是:在协议执行期间发送的消息中不能推断出各方持有的私有数据信息,关于私有数据唯一可以推断的信息是仅仅能从输出结果得到的信息。

多方计算的目标就是对一组计算的参与者,每个参与者拥有自己的数据,并且不信任其它参与者和任何第三方,在这种前提下,如何对各自私密的数据计算出一个目标结果的过程。

安全多方计算是安全可信计算中的一个分支。安全可信计算主要有两大类:外包计算和多方计算。

MPC和TEE比较

基于安全多方计算(MPC)的隐私计算技术(一)
参考URL: https://www.sohu.com/a/420874374_722184

TEE是通过硬件的方式保护参与计算数据的隐私性,但基于TEE的隐私计算并不是建立在参与方间完全无信任环境下的,实际上会有一个各参与方都认可的可信根,一般而言,这个可信根是TEE的制造厂商。

现在比较成熟的TEE技术就是英特尔的SGX,如果是通过SGX做隐私计算,由于要去英特尔的服务器上做远程认证,则需要各个参与方都信任英特尔。因此基于TEE的隐私计算对于某些安全性要求更高场景并不适用。

除了基于TEE的隐私计算外,安全多方计算技术(MPC或SMPC,Secure multi-party computation)也可以做隐私计算。安全多方计算技术则是基于密码学的多种技术纯软件实现的隐私计算。各参与方之间无需可信根,更加安全。但由于包含了复杂的密码学操作,相较于基于TEE的隐私计算而言,效率会低一些。

外包计算

为了与多方计算做区分,先简要介绍一下外包计算。外包计算就是一方拥有数据并想获取该数据的计算结果,另一方接收这份数据的一个加密格式,并对加密数据进行计算,得到一份加密的计算结果,并将该结果返回给第一方。过程中,另一方不会获得任何没有加密的信息。

其中 Homomorphic encryption (同态加密)就是外包计算中一种常用的技术,同态加密的思路比较直观:直接将原文加密,然后在密文上进行各种运算,最终得到结果的密文。 一个典型的应用场景是:数据持有者想对其持有的大量数据进行计算,奈何其拥有的计算资源不足,想借助云服务器的算力完成该计算。如果按照现在流行的做法,那当然是将数据传输到云服务器,然后运行事先写好的程序进行计算。但如此一来,敏感数据便在云服务器上暴露无遗。同态加密正好解决了此问题,数据持有者传输数据前先将数据加密,云服务器在接收到数据后照例计算,只不过这次是在密文上进行的,云服务器啥都看不到。待得到结果后再将结果的密文返还给数据持有者,数据持有者解开后即得最终结果。

安全模型

在安全多方计算中,根据参与方的可信程度可以建立几种安全模型。

  • Real-Ideal Paradigm(理想模型) :在理想模型中,每一个参与方都是可信的,一方将其信息发送给另一方,另一方不会去查看这份信息,只会根据规定计算出结果,并发送给下一方或者所有参与方。
  • Semi-Honest Security(半诚实模型) :半诚实模型就是参与方会诚实的运行协议,但是他会根据其它方的输入或者计算的中间结果来推导额外的信息。
  • Malicious Security(恶意模型) :恶意模型则可能不会诚实的运行协议,甚至会搞破坏。

在现实世界中,理性模型是不存在的,但相比于恶意模型,参与方如果真的想获取到同时对自己有用的信息,多数情况下符合半诚实模型。

MPC问题分类

根据计算参与方个数不同,可分为只有两个参与方的2PC和多个参与方(≥3)的通用MPC。

安全两方计算所使用的协议为Garbled Circuit(GC)+Oblivious Transfer(OT);而安全多方计算所使用的协议为同态加密+秘密分享+OT。

在安全多方计算中,安全挑战模型包括半诚实敌手模型和恶意敌手模型。市场大部分场景满足半诚实敌手模型,也是JUGO技术产品所考虑的敌手模型。
半诚实敌手模型:计算方存在获取其他计算方原始数据的需求,但仍按照计算协议执行。半诚实关系即参与方之间有一定的信任关系,适合机构之间的数据计算;
恶意敌手模型:参与方根本就不按照计算协议执行计算过程。参与方可采用任何(恶意)方式与对方通信,且没有任何信任关系。结果可能是协议执行不成功,双方得不到任何数据;或者协议执行成功,双方仅知道计算结果。更多适用于个人之间、或者个人与机构之间的数据计算。

其他参考

安全多方计算从入门到精通:MPC简介&JUGO平台
参考URL: https://blog.51cto.com/13701316/2136084
Secure multi-party computation (MPC) 介绍
参考URL: https://zhuanlan.zhihu.com/p/100648606
基于安全多方计算(MPC)的隐私计算技术(一)
参考URL: https://www.sohu.com/a/420874374_722184

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西京刀客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值