本篇文章**於「安全多方計算之前世今生」,寫的太好了,做一次網際網路的搬運工~當前,資料被稱為「新時代的石油」,資料只有流動(共享)起來才能產生更大的價值。各個國家已經深刻認識到了資料的重要性,並開始通過立法手段保護資料安全,各大機構/企業再希望像以前一樣,粗暴的、毫無底線的收集和共享資料越來越困難。這就導致,如何在保證各機構/企業/個人資料私密性的前提下,實現多方資料的聯合查詢、統計與建模,成為了資料處理領域新的研究方向。
安全多方計算技術剛好能夠滿足上述需求。安全多方計算(secure multi-party computation,學術界簡稱mpc或smpc,本系列文章統一簡稱為mpc)是一種通用的密碼原語,它在不洩露參與方原始輸入資料的前提下,允許分布式參與方合作計算任意函式,輸出準確的計算結果,是目前國際密碼學界的研究熱點之一。
安全多方計算問題起源於圖靈獎獲得者姚期智院士於2023年提出的百萬富翁問題及其密碼學解法[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的隱藏)。
安全多方計算可形式化描述為,n個計算參與方分別持有資料x1,x2,…,xn,協議的目的是利用各方的秘密資料計算乙個預先達成的共識函式y1,y2,...,yn=f(y1,y2,…,yn),此時任意一方可以得到對應的結果yi,但無法獲得其他任何資訊。圖6和圖7分別給出了傳統分布式多方參與計算模型和mpc下的多方參與計算模型。
圖6 傳統分布式多方參與計算模型
圖7 mpc下的多方參與計算模型
在傳統分布式計算模型下,傳統的分布式計算由中心節點協調各使用者的計算程序,收集各參與方的明文輸入資訊,各參與方的原始資料對第三方來說毫無秘密可言,很容易造成資料洩露。
在mpc計算模式下,不需要可信第三方收集所有參與節點的原始明文資料,只需要各參與節點之間相互交換資料即可,而且交換的是處理後(如同態加密、秘密共享等處理方法)的資料,保證其他參與節點拿到資料後,也無法反推原始明文資料,確保了各參與方資料的私密性。
安全多方計算技術體系架構如圖所示,多方安全計算技術體系中,最重要的支撐技術有混淆電路(garbled circuit)、不經意傳輸(oblivious transfer)、秘密分享(secret sharing)、同態加密(homomorphicencryption)這四類。本篇文章做為安全多方計算技術的簡介篇,暫不對以上每種技術做詳細解釋,後續系列文章會對以上技術的技術細節以及應用場景逐個進行詳細講解。
圖8 安全多方計算技術體系架構
根據支援的計算任務mpc可分為專用場景和通用場景兩類。
通用路線mpc演算法一般由混淆電路(gc)實現,具有完備性,理論上可支援任何計算任務。具體做法是將計算邏輯編譯成電路,然後混淆執行,但對於複雜計算邏輯,混淆電路的效率會有不同程度的降低,與專用演算法相比效率會有很大的差距。
專用型mpc是指為解決特定問題所構造出的特殊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][3]綠盟科技.《擁抱合規、超越合規:資料安全前沿技術研究報告》[r].
[4]
安全多方計算MPC學習筆記
參考 mpcsecure multi party computation 安全多方計算 一種保護資料安全隱私的多方計算演算法。gcgarbled circuit 加密電路 一種通過加密處理電路的方式。otoblivious transfer 不經意傳輸 一種安全的選擇 傳輸協議。安全多方計算由我國目...
安全多方計算的SPDZ協議
敵手定義 被動敵手,不可信計算參與方遵循協議 主動敵手,不可信計算參與方偏離協議 協議安全定義 理想與現實執行在計算上不可區分 協議設計目標 安全多方計算 抵抗主動敵手 主動敵手佔主導地位 dishonest majority 極端情況下,只有乙個可信參與方,其他參與方均被惡意敵手腐蝕 實現安全多方...
多方安全計算(MPC)與區塊鏈
隨著多方安全計算 secure multi party computation,簡稱mpc 技術越來越受到關注,不少人開始拿mpc與區塊鏈來做比較。本文希望從概念上談談這兩種技術之間的區別。乍一看這兩項技術有點像,都聲稱可保護資料安全,都用到了很多密碼學技術和理論,部署上也都是多節點分布式,所以當人...