什么是多方计算multi-party computation (MPC)
文章目錄
- 什么是多方計算multi-party computation (MPC)
- MPC和TEE比較
- 外包計算
- 安全模型
- 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
總結
以上是生活随笔為你收集整理的什么是多方计算multi-party computation (MPC)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android4.0新特性 中文翻译
- 下一篇: 腾讯安全月报丨发布安心计划、携手上汽共建