天天看點

安全多方計算簡介安全多方計算起源安全多方計算架構模型安全多方計算技術體系架構總結參考文獻

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

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

安全多方計算起源

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

百萬富翁問題

如圖1所示,姚氏百萬富翁問題可解釋為:兩個争強好勝的富翁Alice和Bob在街頭相遇(假定Alice财富為

百萬,Bob财富為

百萬),如何在不暴露各自财富的前提下比較出誰更富有?

安全多方計算簡介安全多方計算起源安全多方計算架構模型安全多方計算技術體系架構總結參考文獻
圖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在箱子内分别放入蘋果和香蕉,規則為:如果箱子序号小于自己的财富值

,則放入蘋果,否則放入香蕉。由于

,是以前2個箱子為蘋果,後7個箱子為香蕉。

将帶序号的9個箱子封裝後,交給Bob。

安全多方計算簡介安全多方計算起源安全多方計算架構模型安全多方計算技術體系架構總結參考文獻
圖3 按序号和财富值在箱子内分别放入蘋果和香蕉

第三步:如圖4所示,Bob收到帶序号的箱子後,避開Alice的視線,挑選序号與自己财富值

相等的箱子,然後撕掉序号,扔掉其他箱子。注意,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]中對姚院士論文的中文解讀。

安全多方計算架構模型

安全多方計算可形式化描述為,n個計算參與方分别持有資料 x1, x2, … , xn,協定的目的是利用各方的秘密資料計算一個預先達成的共識函數

y1, y2, …, yn = f(x1, x2, …, xn),此時任意一方可以得到對應的結果

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

作者:Hang Shao

出處:https://www.cnblogs.com/pam-sh/p/15921246.html

版權:本作品采用「署名-非商業性使用-相同方式共享 4.0 國際」許可協定進行許可。

聲明:本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連結,如有問題,可郵件([email protected])咨詢.

繼續閱讀