HashKey:說透安全多方計算 MPC 技術方案、挑戰與未來

買賣虛擬貨幣
本文對安全多方計算做出技術及應用分析。結論是,安全多方計算能夠解決互不信任的參與方之間保護隱私的協同計算問題。安全多方計算拓展了傳統分散式計算的邊界以及資訊保安範疇,對解決網路環境下的資訊保安具有重要價值。安全多方計算能夠結合多行業領域進行資料融合,對資料市場的發展十分重要。資料是一個複雜概念,有多種型別和豐富特徵。隨著時代從網際網路轉變至區塊鏈,資料即將成為可產生經濟價值的資產。但是,大多數企業考慮到資料安全和個人隱私等問題,對資料共享都非常謹慎。對個人資料而言,控制權和隱私保護的重要性超過所有權。因此,企業在面臨資料輸入的隱私及輸出的結果上常常遇到平衡上的困難。舉例來說 : 醫院需要與保險公司分享病患資料,但是又不能洩露病患的個人隱私。安全多方計算(Secure Muti-party Computation)提供了一種技術上的解決方案,能夠在無可信第三方的情況下安全地進行多方協同的計算。本文分為三個部分 : 第一部分探討安全多方計算的架構。第二部分研究安全多方計算的技術實現方式。第三部分分析安全多方計算應用及未來發展。安全多方計算定義與架構定義
安全多方計算可以定義為在一個分散式網路且不存在可信第三方的情況下,多個參與實體各自持有秘密輸入,並希望共同完成對某函式的計算並得到結果,前提是要求每個參與實體均不能得知除自身外其他參與實體任何輸入資訊。以下為安全多方計算的數學表述:安全多方計算架構安全多方計算主要分為兩個參與方 :參與節點及樞紐節點。各個參與節點地位相同,可以發起協同計算任務,也可以選擇參與其他方發起的計算任務。樞紐節點不參與實際協同計算,主要用於控制傳輸網路、路由定址及計算邏輯傳輸。此外,在去中心化的網路拓撲裡,樞紐節點是可以刪減的,參與節點可以與其他參與節點進行點到點連線,直接完成協同計算。安全多方計算過程中,每個資料持有方可發起協同計算任務,並透過樞紐節點進行路由定址,選擇相似資料型別的其餘資料持有方進行安全的協同計算。參與協同計算的多個資料持有方的參與節點會根據計算邏輯,從本地資料庫中查詢所需資料,共同就安全多方計算任務在密態資料流間進行協同計算。整個過程各方的明文資料全部在本地儲存,並不會提供給其他節點。在保證資料隱私的情況下,樞紐節點將計算結果輸出至整個計算任務系統,從而各方得到正確的資料結果。安全多方計算主要有三個特性 : 
1. 隱私性。安全多方計算首要的目的是各參與方在協作計算時如何對隱私資料進行保護,即在計算過程中必須保證各方私密輸入獨立,計算時不洩露任何本地資料。2. 正確性。多方計算參與各方透過約定安全多方計算協議發起計算任務並進行協同計算,運算資料結果具備正確性。

3. 去中心化。安全多方計算中,各參與方地位平等,不存在任何有特權的參與方或第三方,提供一種去中心化的計算模式。

安全多方計算信任環境

安全多方計算的信任環境或者說整體安全定義通常由真實-理想模型 (Real-Ideal Paradigm) 來表達。在真實-理想模型中,存在一個虛擬的「理想」環境,與真實環境進行比較。在理想環境裡,所有參與方都會將各自的秘密資料傳送給一個可信第三方,由可信第三方完成計算。而在真實環境下,不存在這樣的可信第三方,所有參與方透過互相交換資訊,完成協同計算,並且會存在敵手進行控制其中部分參與方的情況。

一個安全多方計算系統滿足在真實-理想模型下的安全性,是指真實環境下的敵手無法產生比理想環境下的攻擊者更多的危害;換言之,如果存在敵手可以對真實環境造成危害,那麼也存在敵手可以對理想環境造成同等效果的危害。由逆否命題可知,事實上,不存在敵手能對理想環境造成危害,從而可以得出結論:不存在真實環境下的成功的敵手。

一般而言,在安全多方計算中,根據攻擊者的能力差異可以定義兩種不同的攻擊者相關的安全模型。

半誠實模型 (Semi-Honest Adversaries’ Security)。在半誠實行為模型中,假設敵手會誠實地參與安全多方計算的具體協議,遵照協議的每一步進行,但是會試圖透過從協議執行過程中獲取的內容來推測他方的隱私。
惡意行為模型 (Malicious Adversaries’ Security)。在惡意行為模型中,惡意節點可能會不遵循協議,採取任意的行為(例如偽造訊息或者拒絕響應)獲取他方的隱私。

目前有許多安全多方計算的改進方案,可以達到惡意行為模型下的安全性,但是都需要付出很大的效能代價,大規模的安全多方計算產品,基本上通常只考慮半誠實模型,惡意行為模型的解決方案會嚴重影響效率和實用性。

安全多方計算的實現形式

秘密共享

秘密共享是在一個常被應用在多方安全簽名的技術,它主要用於保護重要資訊被丟失、或篡改。透過秘密共享機制,秘密資訊會被拆分,每個參與者僅持有該秘密的一部分,個人持有部分碎片無法用於恢復秘密,需要湊齊預定數量 (或門限) 的碎片。

不經意傳輸 (Oblivious Transfer)

不經意傳輸是一種密碼學協議,被廣泛應用於安全多方計算領域,它解決了以下問題 : 

舉例來說,Alice 手上有兩組密封的密碼組合,Bob 只能獲得一組密碼且 Bob 希望 Alice 不知道他選擇哪一組密碼。這時候就能利用不經意傳輸來完成交易。

不經意傳輸存在雙方角色,傳送者與接收者。一個可行的具體實現過程,分為四個步驟:

混淆電路 (Garbled Circuit)

混淆電路是姚期智教授在 80 年代提出的安全多方計算概念。混淆電路是一種密碼學協議,遵照這個協議,兩個參與方能在互相不知曉對方資料的情況下計算某一函式。

舉姚氏百萬富翁問題(Yao's Millionaires' Problem)為例,兩個百萬富翁 Alice 和 Bob 想在不知道對方精準財富值的情況下比較誰的財富值更高。比如 Alice 的財富值是 20,Bob 的財富值是 15。藉由混淆電路,Alice 和 Bob 都可以知道誰更富有,但是 Alice 和 Bob 都不知道對方的財富值。混淆電路的核心邏輯是先將計算問題轉換為由與門、或門、非門所組成的布林邏輯電路,再透過公鑰加密、不經意傳輸等技術來擾亂這些電路值以掩蓋資訊,在整個過程雙方傳輸的都是密碼或隨機數,不會有任何有效資訊洩露。因此雙方在得到計算結果的同時,達到了對隱私資料資料保護的目的。

假設存在雙方 Alice 及 Bob 進行混淆電路協議。混淆電路實現過程分為四個步驟 : 

1. Alice生成混淆電路。由圖 4 可知,Alice 生成的混淆電路中間會連線許多邏輯閘,每個邏輯閘都有輸入線及輸出線,且都有一組真值表 (Truth table)。
2. Alice 與 Bob 通訊。Alice 將邏輯閘的真值表對稱加密並將真值表的行列打亂成混淆表 (Garbled table) 傳送至 Bob。
3. Bob 在接收到加密真值表後,對加密真值表的每一行進行解密,最終只有一行能解密成功,並提取相關的加密資訊。其中,Bob 透過不經意傳輸協議從 Alice 獲得對應的解密字串。不經意傳輸能夠保證 Bob 獲得對應的解密字串,且 Alce 無法得知 Bob 獲得哪一個。
4. 最後,Bob 將計算結果返回給 Alice,雙方共享計算結果。由於雙方需對電路中每個邏輯閘進行幾個對稱金鑰操作,因此使用混淆電路的方案的計算複雜度相對也較高,並且當擴充套件到參與方較多的計算場景時會更加複雜。

零知識證明

零知識證明指的是示證者能夠在不向驗證者提供任何有用的資訊的情況下,使驗證者相信某個論斷是正確的。零知識證明存在雙方或多方角色:示證者 (prover) 與驗證者 (verifier)。示證者宣稱某一命題為真,而驗證者確認該命題是否為真。

經典的零知識證明(Sigma 協議)通常包含三個步驟 : 

1. 示證者先根據命題內容向驗證者傳送命題論述,這個論述必須經過處理轉換成密態論述(一般稱為「承諾」),且命題內容無法在後續的某一時刻進行篡改和抵賴。
2. 驗證者隨機生成一個挑戰併發給示證者。
3. 示證者根據挑戰和命題論述生成證明資訊發給驗證者。驗證者利用證明資訊判斷示證者是否透過了該次挑戰。

重複多次這三個步驟,可以降低示證者是因為運氣的成份透過挑戰的概率。示證者提供的密態命題論述有兩個作用,一來可以防止示證方對命題內容臨時造假,二來可以讓驗證者無法得知全部資訊,保持隱私性。

零知識證明具備三個屬性 :

1. 完備性。如果論述命題確實為真,那麼誠實的驗證者一定會被誠實的示證者說服。
2. 可靠性,如果論述命題為假,那麼示證者只能以很小的機率欺騙誠實的驗證者。
3. 零知識。驗證者只能知道論述命題是否為真這一結果,而無法從整個互動式證明過程裡獲得其它任何有用的訊息。安全多方計算通常會利用零知識證明作為輔助手段,舉例來說,驗證惡意節點傳送虛假資料或是做節點身份證明等等。

安全多方計算應用與困難

目前來說,安全多方計算主要是透過混淆電路及秘密共享兩個方式實現。基於混淆電路的協議更適用於兩方邏輯運算,通訊負擔較低,但拓展性較差。而基於秘密分享的安全多方計算其拓展性較強,支援無限多方參與計算,計算效率高,但通訊負載較大。

目前安全多方計算的應用可以分為兩個部分 :資料融合及資料資產化。

資料融合

讓雙方或多方資料融合併合作是目前安全多方計算能夠發揮最大價值之處。舉例來說,聯合徵信。銀行擁有使用者金融行為相關資料,而網際網路公司一般擁有使用者網路的使用資料,如何讓兩方的資料合作,共同建立一個信用模型,是資料協作的一個關鍵的問題。利用安全多方計算,可以在雙方保留隱私的情況下找到共用的資料集,並且在多方資料基礎上訓練出的信用模型將更加準確,從而對未知情形提供更加合理的預測,減少資料融合的外部性。

除此之外,資料安全儲存也是一大應用。企業可使用秘密共享技術將資料以秘密的方式儲存,有效防止內部人員非法盜用資料的情況發生。同時,儲存的資料無需解密即可進行其他計算,既保證了安全性,又提升了計算效率。

資料資產化

安全多方計算有機會能夠促進未來資料資產化及資料市場的發展。由於安全多方計算能夠在資料傳輸的過程中從技術層面保證資料確權的問題,使資料的所有權與使用權劃清界線,因此企業或個人將可以透過安全多方計算將有價值的資料視為資產,並在市場上流動或進行交易。資料提供方可以規定資料的用途、用量、有效期等使用屬性,資料的使用者在拿到資料後只能在授權範圍內合理地使用資料,並能將剩餘資料的使用權量化或做進一步流通。

安全多方計算可以將資料市場的本質由資料所有權轉向資料使用權,保障原始資料所有者的權益,有效遏制原始資料洩漏,降低資料洩漏引起的資料流通風險,促進資料的大規模應用。

未來挑戰

隨著區塊鏈和大資料等技術的逐漸發展,我們對資料及計算的要求相對更高。比如:區塊鏈要求匿名性,資料計算需要隱私保護等等。因此類似安全多方計算等密碼學技術在實際使用過程中,就會出現解釋成本非常高,且效率低的問題。

安全多方計算會涉及龐大的計算量及通訊量,尤其是涉及公鑰運算。目前安全多方計算單個運算可以達到毫秒級,也就是說每秒鐘最多能做幾百次計算。但是在大資料的場景下,一個資料應用或模型訓練往往涉及數十萬單位的資料樣本及特徵量,運算效率會是一個問題。除此之外,對於某些線上或需要實時計算並且計算任務較複雜的應用場景,安全多方計算目前可能難以負擔。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;