安全多方計算之前世今生


系列學習&轉載-綠盟的天樞實驗室-關於MPC的文章

第一篇:“安全多方計算之前世今生

安全多方計算簡介

當前,數據被稱為“新時代的石油”,數據只有流動(共享)起來才能產生更大的價值。各個國家已經深刻認識到了數據的重要性,並開始通過立法手段保護數據安全,各大機構/企業再希望像以前一樣,粗暴的、毫無底線的收集和共享數據越來越困難。這就導致,如何在保證各機構/企業/個人數據私密性的前提下,實現多方數據的聯合查詢、統計與建模,成為了數據處理領域新的研究方向。

安全多方計算技術剛好能夠滿足上述需求。安全多方計算(Secure Multi-Party Computation,學術界簡稱MPCSMPC,本系列文章統一簡稱為MPC)是一種通用的密碼原語,它在不泄露參與方原始輸入數據的前提下,允許分布式參與方合作計算任意函數,輸出准確的計算結果,是目前國際密碼學界的研究熱點之一。

安全多方計算起源

安全多方計算問題起源於圖靈獎獲得者姚期智院士於1982年提出的百萬富翁問題及其密碼學解法[1],后來經過不斷的發展和完善,成為當前密碼學的一個重要分支。

百萬富翁問題

如圖1所示,姚氏百萬富翁問題可解釋為:兩個爭強好勝的富翁Alice和Bob在街頭相遇(假定Alice財富為\(x\)百萬,Bob財富為\(y\)百萬),如何在不暴露各自財富的前提下比較出誰更富有?

圖1 姚氏百萬富翁問題

百萬富翁問題的通俗解法

對於圖1中的姚氏百萬富翁問題,我們以非密碼學的、通俗易懂的語言解決該問題:

假定\(x=3\)\(y=7\),即Alice擁有3百萬,Bob擁有7百萬,他們只關心自己的財富在百萬這個量級上,誰更富有。假定他們的財富都不會超過1千萬,則可以默認為Alice和Bob的財富值\(x、y\)取值范圍為1~9。

第一步:如圖2所示,Alice首先准備帶序號1-9的9個箱子。

圖2 Alice首先准備帶序號1-9的9個箱子

第二步:Alice在箱子內分別放入蘋果和香蕉,規則為:如果箱子序號小於自己的財富值\(x\),則放入蘋果,否則放入香蕉。由於\(x=3\),因此前2個箱子為蘋果,后7個箱子為香蕉。

將帶序號的9個箱子封裝后,交給Bob。

圖3 按序號和財富值在箱子內分別放入蘋果和香蕉

第三步:如圖4所示,Bob收到帶序號的箱子后,避開Alice的視線,挑選序號與自己財富值\(y\)相等的箱子,然后撕掉序號,扔掉其他箱子。注意,Bob只能誠實的挑選1次箱子。

圖4 Bob收到9個箱子后的操作

第四步:Bob當着Alice的面打開選中的箱子,如果是香蕉,則\(y≥x\);是蘋果則\(x>y\)。本例中Alice最后看到的是一個如圖5所示,沒有序號的、帶香蕉的箱子,表示\(x>y\)不成立,知道自己的財富不比Bob多。

圖5 Alice最終看到的箱子

通過以上步驟可知,在最后階段,雖然Alice和Bob都看到了箱子里放的是香蕉(MPC算法的計算結果),但由於箱子序號被撕掉,所以Alice並不知道Bob選的是第幾個箱子(實現了Bob財富y對Alice的隱藏);對於Bob來說,並不能確定序號1-6的6個箱子里,從第幾個箱子開始,由蘋果變成了香蕉(實現了Alice財富x對Bob的隱藏)。

百萬富翁問題的密碼學解法本文不再講解,感興趣的讀者可閱讀姚院士的原始文獻(參考文獻[1]),或閱讀參考文獻[2]中對姚院士論文的中文解讀。

更多參考:https://www.cnblogs.com/pam-sh/p/16869838.html

安全多方計算框架模型

安全多方計算可形式化描述為,n個計算參與方分別持有數據\(x_1,x_2,…,x_n\),協議的目的是利用各方的秘密數據計算一個預先達成的共識函數\(y_1,y_2,...,y_n=f(x_1,x_2,…,x_n)\),此時任意一方可以得到對應的結果\(yi\),但無法獲得其他任何信息。圖6和圖7分別給出了傳統分布式多方參與計算模型和MPC下的多方參與計算模型。

圖6 傳統分布式多方參與計算模型

圖7 MPC下的多方參與計算模型

在傳統分布式計算模型下,傳統的分布式計算由中心節點協調各用戶的計算進程,收集各參與方的明文輸入信息,各參與方的原始數據對第三方來說毫無秘密可言,很容易造成數據泄露。

在MPC計算模式下,不需要可信第三方收集所有參與節點的原始明文數據,只需要各參與節點之間相互交換數據即可,而且交換的是處理后(如同態加密、秘密共享等處理方法)的數據,保證其他參與節點拿到數據后,也無法反推原始明文數據,確保了各參與方數據的私密性。

安全多方計算技術體系架構

安全多方計算技術體系架構如圖所示,多方安全計算技術體系中,最重要的支撐技術有混淆電路(Garbled Circuit)、不經意傳輸(Oblivious Transfer)、秘密分享(Secret Sharing)、同態加密(HomomorphicEncryption)這四類。本篇文章做為安全多方計算技術的簡介篇,暫不對以上每種技術做詳細解釋,后續系列文章會對以上技術的技術細節以及應用場景逐個進行詳細講解。

圖8 安全多方計算技術體系架構

根據支持的計算任務MPC可分為專用場景通用場景兩類。

通用型MPC

通用路線MPC算法一般由混淆電路(GC)實現,具有完備性,理論上可支持任何計算任務。具體做法是將計算邏輯編譯成電路,然后混淆執行

  • 優點:理論上可支持任何計算任務
  • 缺點:對於復雜計算邏輯,混淆電路的效率會有不同程度的降低

專用型MPC

專用型MPC是指為解決特定問題所構造出的特殊MPC協議,由於是針對性構造並進行優化,專用算法的效率會比基於混淆電路的通用框架高很多,當前MPC專用算法包含四則運算,比較運算,矩陣運算,隱私集合求交集,隱私數據查詢等。

  • 優點:效率更高
  • 缺點:只能支持單一計算邏輯,場景無法通用;專用算法設計需要領域專家針對特定問題精心設計,設計成本高

安全多方計算特點及優勢

安全多方計算技術在需要秘密共享和隱私保護的場景中具有重要意義,能解決比較底層的精確計算和數據庫查詢,其主要適用的場景包括聯合數據分析、數據安全查詢、數據可信交換等。

安全多方計算具有如下特點及優勢:

(1)去中心化。各參與方的地位平等,不存在擁有特權的第三方的參與。

(2)輸入數據安全。安全多方計算過程中各方數據輸入獨立,計算時不泄露任何本地原始數據。

(3)計算結果准確。安全多方計算算法得到結果和原始明文數據本地計算結果保持一致。

總結

安全多方計算拓展了傳統分布式計算以及信息安全范疇,為網絡協作計算(分布式計算)提供了一種新的計算模式,對解決網絡環境下的信息安全具有重要價值[4]。利用安全多方計算協議,一方面可以充分實現數據持有節點間互聯合作,另一方面又可以保證秘密的安全性。

對於安全多方計算,在某些特定專用場景下也具有較好性能,如隱私集合求交。然而通用的場景仍然存在諸多是挑戰,例如擴展性問題、效率問題以及誠實性問題(輸入方可能輸入虛假數據或篡改狀態數據),這些問題亟需未來進一步研究與解決。

本篇僅簡單介紹了安全多方計算技術的起源和技術體系概況,幫助大家了解安全多方計算在數據安全共享場景中的地位以及可以解決的問題。后續文章將詳細為大家講解安全多方計算中的各項基礎協議以及應用場景。下篇文章將會為大家講解不經意傳輸協議,該協議也是構造基於混淆電路的通用MPC框架的基礎協議,敬請期待。

參考文獻

[1]Yao A C. Protocols for secure computations[C]// Proc. of the 23rd Annual IEEESymposium on Foundations of Computer Science, 1982.
[2]https://zhiqiang.org/cs/yao-millionaires-problem.html
[3]綠盟科技.《擁抱合規、超越合規:數據安全前沿技術研究報告》[R]. https://www.nsfocus.com.cn/html/2020/92_1229/144.html
[4]https://blog.csdn.net/yuxinqingge/article/details/104588197


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM