隱私計算之多方安全計算(MPC,Secure Multi-Party Computation)

京東雲開發者發表於2022-12-28

作者:京東科技隱私計算產品部 楊博

1.背景

如今,組織在收集、儲存敏感的個人資訊以及在外部環境(例如雲​​)中處理、共享個人資訊時, 越來越關注資料安全。這是遵守隱私法規的強需求:例如美國加利福尼亞州消費者隱私法 (CCPA)、歐盟通用資料保護條例 (GDPR) 和世界各地的其他新興法規,以及中國的《數安法》《個保法》等,都對安全處理敏感資料提出了要求。

加密靜態資料不足以避免資料洩露。靜態資料加密建立了一個“加密邊界”,在該邊界之外可以以明文形式訪問資料。因為處理通常需要明文資料,所以這個邊界通常存在潛在的資料洩漏風險。靜態資料加密也不支援與其他組織共享資料的方案。為了使資料有用,它們通常必須在應用程式中以明文形式訪問,這大大降低了加密的保護能力。因此,不同的行業都需要新的隱私保護計算方法來滿足法律合規要求併為資料共享提供隱私保障。

廣義的隱私計算技術是面向隱私資訊全生命週期保護的計算理論和方法,涵蓋資訊所有者、資訊轉發者、資訊接收者在資訊採集、儲存、處理、釋出(含交換)、銷燬等全生命週期過程的所有計算操作,是實現隱私保護前提下資料安全流通的一系列技術。包括但不限於:

•基於資料限制釋出的技術:如資料脫敏、去標識化(掩碼、抑制、泛化、截斷、混淆、k-匿名、l-多樣性、t-貼近等)

•基於資料失真的技術:如隨機擾動、差分隱私、合成資料

•隱私計算技術:以多方安全計算、聯邦學習、可信執行環境三大路線為基礎

•相關輔助技術:如區塊鏈、可驗證計算、溯源審計技術

2.前言

隨著數字化和大資料分析技術的快速發展,對多方資料的需求也越來越多,例如對個人信用風險進行評估,就需要聯合多個屬性特徵進行聯合統計分析。個人徵信過程中需要採集的資訊包括個人身份、住址、職業等基本資訊,個人貸款、貸記卡、準貸記卡、擔保等信用活動中形成的個人信貸交易記錄,以及反映個人信用狀況的其他資訊,基本涵蓋了個人生活的方方面面。各家徵信機構如果想要自己推出的信用體系實現精準信用評估,經受住市場檢驗,它的信用模型就需要使用更多源、更及時且更有價值的海量資料來持續建模。

然而法規監管和採整合本使資料難以共享,由於徵信資料是一種非獨佔性的特殊資源,具有複製成本低、所有權難確定、流通渠道難管控、使用範圍難限定等特點,稍有不慎,資料極易洩露。如何在保障資料安全和隱私的條件下實現徵信資料的融合?如何保證徵信資料的使用和傳播是可控的?多方安全計算(Secure Multi- Party Computation ,簡稱MPC)恰好解決了這個難題,為徵信資料的豐沛流動提供了技術可能。

MPC技術具有保護隱私、結果正確、操作可控的優勢,這可以解決徵信資料融合的技術困境。MPC透過密碼學手段,可以保證參與徵信資料融合的各方本身的資料不洩露;透過密文函式計算,可以保證運算結果與明文計算相同;它還可以規定徵信資料使用的用途和用量,使每一步操作都是可控、受限且可審計的。

3.多方安全計算-MPC( Secure Multi-Party Computation )

多方安全計算(MPC)是在無可信第三方情況下,多個參與方協同完成計算目標,並保證每個參與者除計算結果外均不能得到其他參與實體的任何輸入資訊。多方安全計算問題最初起源於1982年姚期智院士提出的百萬富翁問題,後來經過多年不斷的發展,成為目前密碼學的一個重要分支。多方安全計算是基於密碼學的演算法協議來實現隱私保護,常見的多方安全計算協議包括秘密共享(Secret Sharing,SS) 、混淆電路(Garbled Circuit,GC)、同態加密(Homomorphic Encryption,HE)、不經意傳輸(Oblivious Transfer,OT)等。多方安全計算技術可以獲取資料使用價值,卻不洩露原始資料內容,保護隱私,可適用於多方聯合資料分析、資料安全查詢(PIR,Private Information Retrieval)、隱私求交(PSI,rivate Set Intersection)、資料可信交換等應用場景。一系列用於 MPC 的開源庫(例如ABY、EMP-toolkit,FRESCO,JIFF 、MP-SPDZ,MPyC, SCALE-MAMBA,和 TinyGable等) 得到了發展,進一步推動了 MPC 的應用和部署。

表1展示了多方安全計算與聯邦學習和可信執行環境的特性對比。 多方安全計算是基於密碼學的可證安全計算,具有高安全性,但對網路要求高,可應用在銀行、政府等高安全要求場景。聯邦學習效率高,適合資料量大的聯合機器學習場景,雖然存在梯度洩露問題,但可結合差分隱私或者多方安全計算來提升安全性。可信執行環境屬於資料加密後集中計算,具有高安全性、高精度等特點,但需要資料加密集中到第三方環境,限制了其使用場景。





在 MPC 中,可以對多方貢獻的資料執行計算,而任何一方都無法看到他們貢獻的資料內容。這使得無需受信任的第三方即可執行安全計算。下圖說明參與者在計算上進行協作,只知道計算的結果,而不知道其他人貢獻的特定資料。以計算平均工資為例,一種簡單的的方式是有一個可信第三方F負責收集A,B,C每個人的工資收入資料,並計算平均數。然而,顯示生活中的可信第三方不總是存在,也並不一定安全,其有可能會洩漏其收集的隱私資料。另一種方式就是採用多方安全計算,在無可信第三方的情況下,來保障各方的工資資料不洩漏,且能計算出平均工資數。





如下圖所示,Allie(A) 的工資是 100美元。在加性秘密共享中,100美元被分成三個隨機生成的部分(或秘密份額):例如 20美元、30美元和 50美元。Allie 為自己保留其中一份秘密股份(50美元),並將一份秘密份額分配給Brian(B)(30美元)和Caroline(C)(20美元)。Brian 和 Caroline 也遵循相同的流程秘密分享他們的工資薪水。每個參與者在本地彙總他們的秘密份額以計算部分結果;在此示例中,每個部分結果是計算最終答案所需資訊的三分之一。然後重新組合部分結果{-30, 480, 150},將先前分發的完整秘密共享集相加求平均,即可得出Allie、Brian 和 Caroline 的平均工資是 200美元。可見,在整個過程中,各方根據自己手中掌握的部分秘密份額以及最終結果是無法推匯出其他方的原始工資資訊的。







4.MPC的幾個重要概念

安全的多方計算需要保證隱私和正確性。在存在對抗行為的情況下,必須保證安全屬性。主要考慮兩個經典的對手模型:

•半誠實:半誠實的對手(又名被動對手)遵循協議規範,但可能會嘗試從協議記錄中瞭解更多資訊;

•惡意:惡意對手(又稱主動對手)可以執行任意攻擊策略以試圖破壞協議。

通訊模式:MPC 的預設通訊方法是經過身份驗證的通道,它可以在實踐中使用已知的標準技術來實現。在多方設定中,各方也是透過點對點通道連線的,有時還需要一個廣播通道。使用標準的 2 輪迴聲廣播協議可以有效地實現廣播通道。

設計 MPC 協議有兩種主要方法:

•(1)秘密共享方法,使各方針對電路的每個非線性門進行互動,通訊頻寬低但具有與電路深度成線性關係的互動輪數;

•(2) 亂碼電路方法,讓各方構建一個加密版本的電路,只允許計算一次,並且互動輪數恆定,但通訊頻寬大。

4.1 不經意傳輸(OT - Oblivious Transfer)

不經意傳輸(OT,oblivious transfer)是一個密碼學協議,目前被廣泛的應用於安全多方計算(MPC,Secure Multi-Party Computation)。它由 Rabin[1] 在 1981 年提出。 Alice 擁有秘密 S1,Bob 擁有秘密 S2 。Alice 和 Bob 想要交換秘密,要求兩方都有可能得到秘密並且秘密擁有方不知道對方是否得到秘密。

Even 等人的提出新的使用公鑰密碼體制的 1-out-of-2 OT 協議,給出了 OT 公理化的定義和實現。相比於 Rabin 等人提出的一方只有1/2​​的機率獲得秘密,Even等人將其進行了改進,即:Alice 擁有兩個秘密 (M0,M1)​​ ,而 Bob 想要知道其中一個。在 OT 協議執行完成之後,Bob 獲得了其中一個秘密,但是不知道另外一條秘密 ,並且 Alice 也不知道 Bob 選擇的是M0,​​還是M1​​。





4.2 基於秘密共享(Secret Sharing)的 MPC 協議

秘密共享的思想是將秘密以適當的方式拆分,拆分後的每一個份額由不同的參與者管理,單個參與者無法恢復秘密資訊,只有若干個參與者一同協作才能恢復秘密訊息。更重要的是,當其中任何相應範圍內參與者出問題時,秘密仍可以完整恢復。是資訊保安和資料保密中的重要手段。





目前,具體高效的 MPC 協議主要採用三種線性秘密共享方案(LSSS):加性秘密共享、Shamir 秘密共享,以及replicated秘密共享(又名 CNF 秘密共享),其中加性秘密共享主要用於不誠實多數設定中的 MPC 協議,而 Shamir 和replicated秘密共享用於誠實多數 MPC 協議。為了實現惡意安全,加性秘密共享需要配置資訊理論訊息認證碼(IT-MACs)。

MPC 中使用的三種 LSSS 都是 ( n , t )-閾值秘密共享方案,它使n方可以在各方之間共享秘密x,使得t方的任何子集都無法獲得關於秘密x的任何資訊,而任何t + 1 方的子集可以重建秘密x。加性秘密共享只能在t = n - 1 時進行,而 Shamir/replicated 秘密共享允許任何 t < n(我們經常採用 t < n/2 代表誠實多數 MPC)。

4.3 基於亂碼電路的常數輪MPC協議

它的核心技術是將兩方參與的安全計算函式編譯成布林電路的形式,並將真值表加密打亂,從而實現電路的正常輸出而又不洩露參與計算的雙方私有資訊。已知的實際有效的常數輪 MPC 協議是基於亂碼電路構建的,這些電路是電路的加密版本,並且只能計算一次。









亂碼電路協議分為四個部分。

Step 1: Alice 生成亂碼電路

Step 2: Alice 和 Bob 進行通訊

Step 3: Bob evaluate 生成的亂碼電路

Step 4: 分享結果

4.4 半誠實協議

半誠實的參與方,遵循了協議的執行,但是卻儲存了協議的中間計算狀態,實際上,半誠實的參與方,只儲存內部的擲硬幣過程(產生隨機數的過程)和所有從其他參與方接收到的訊息。特別是,一個半誠實的參與方會選擇隨機數和根據預定的程式進行操作,即根據預定的程式公平的產生隨機數和執行輸入與輸出。

第一個常數輪安全兩方計算(2PC)協議是由姚[ 6 ]提出的,實現了半誠實的安全性。Yao 的 2PC 協議採用亂碼電路(GC)和 OT 作為構建塊。在多方設定中,常數輪MPC必須處理多方合謀欺騙誠實方的情況。因此,不能只讓一方構建亂碼電路,而是讓各方以分散式的方式共同構建亂碼電路。

4.5 惡意安全協議

為了實現惡意安全,需要增加一些檢查程式。在不誠實多數 MPC 和誠實多數 MPC 之間,確保免受惡意對手攻擊的底層技術是不同的。例如,不誠實多數設定中的 MPC 需要資訊理論訊息認證碼 IT-MAC 來驗證各方共享的值。

安全的兩方計算:

對於常數輪2PC 協議,在 2017 年之前,一種流行的設計惡意安全協議的方法是使用“Cut-and-Choose”(C&C)技術。使用這種技術有兩種不同的風格。

•第一個是 Lindell 和 Pinkas 引入的電路級 C&C 方法

•第二種是 Nielsen 和 Orlandi 引入的門級 C&C 方法

目前,用於惡意安全 2PC 的最先進方法是採用分散式亂碼方法,並且明顯優於兩種 C&C 方法。

安全的多方計算:

不誠實的大多數。 對於容忍非一個惡意破壞的常數輪迴圈 MPC 協議,一些研究採用cut-and-choose的方式或者BMR和SPDZ的組合方式來構建MPC協議。但是,它們的執行效率很低。Goldreich、Micali 和 Wigderson (GMW) 提出了一種通用編譯器,用於將半誠實的 MPC 協議轉換為惡意安全的 MPC 協議,以完成相同的計算任務。然而,這個編譯器是非黑盒的,它使用通用的零知識證明來證明每一步計算的正確性,因此效率不高。後來,Ishai、Prabhakaran 和 Sahai (IPS) 提出了一種黑盒編譯器,其中具有半誠實安全性的內部MPC協議在OT-混合模型中計算電路,並且在誠實多數設定中具有惡意安全性的外部MPC協議用於保證安全性存在惡意對手的情況下的整個 MPC 協議。 SPDZ 框架是不誠實多數惡意設定中最先進的協議。原始 SPDZ 協議使用深度 1 同態加密 (HE) 方案(即底層 HE 方案可以支援一次乘法)在預處理階段生成經過驗證的三元組,並且可以在線上階段快速評估電路。

誠實的大多數。 在誠實多數設定中,可以使用較少的通訊和計算基於replicated秘密共享來構建常數輪 MPC 協議。在惡意設定中,我們只需要檢查乘法門的正確性,因為加法門是在本地計算的並且總是正確的。具體來說,可以使用具有次線性通訊的分散式零知識證明來驗證乘法門的正確性。

5.MPC的應用場景

隨著政府企業數字化轉型深入滲透,企業累計資料資產增多,平均數量級達到3.2PB,海量資料資產一方面意味著存在大量價值等待挖掘,另一方面意味著對資料安全防護能力提出了更高的要求。從各個行業來看,通訊運營商擁有最豐富最具價值的資料資產,藉助隱私計算技術,可充分釋放資料要素生產力,實現資料變現。同時為資料要素市場安全發展提供核心基礎設施,賦能千行百業。政府資料開放已成為提升政務服務的關鍵。隱私計算能夠在保障資料安全的同時,增強全社會的資料協作,推動資料要素賦能產業升級。金融企業資料作為一種生產要素,越來越多的業務場景需要多方資料流通和共享,打破“資料孤島”。健康醫療大資料是國家重要的基礎性戰略資源。透過整合醫療機構內部及跨機構的多源異構資料,構建統一的健康醫療大資料模型,對於支撐行業治理、醫學科研、公共服務都能發揮重要作用。特別是醫學科研和藥械研發,透過多機構間健康醫療大資料共享應用,能夠增強臨床試驗、准入、監管等聯絡性和協同性,加快新一代基因測序、腫瘤免疫治療、幹細胞與再生醫學、生物醫學大資料分析等關鍵技術研究和轉化,推動重大疾病的早期篩查、個體化治療等精準化應用解決方案和決策支援系統應用。隱私計算能夠兼顧多方協作過程中的安全性與效率性,以下列舉了MPC在各領域的一些典型應用場景:

金融領域:







政務領域:





醫療、網際網路領域:









6.結語

政府、企業、組織以及個人越來越關注資料隱私,通常實施的解決方案已不能提供足夠的保護能力來防止資料盜竊和隱私洩露。加密靜態資料不足以避免資料洩露,不同的行業已經開始利用新的隱私保護技術。而新技術的發展使安全共享資料和保護個人隱私成為可能。這些技術可以允許在企業、組織之間共享資料使用價值,在資料湖和雲中搜尋加密資料,而不會損害資料隱私,同時仍然保留資料的分析質量。

然而,帶來安全性的同時,難免對資料分析的效能有所損失,我們仍需要新的隱私保護計算方法來幫助尋找新的機會並在隱私、安全和合規之間找到適當的平衡。

7.參考文獻

1.隱私計算聯盟,《隱私計算應用研究報告(2022年)》,https://mp.weixin.qq.com/s/B-...

2.隱私計算聯盟,《可信隱私計算研究報告(2022年)》,https://mp.weixin.qq.com/s/It...

3.Shamir, A. (1979) How to Share a Secret. Communications of the ACM, 22, 612-613.

4.Yao.A.C. How to Generate and Exchange Secrets. FOCS 1986: 162-167

5.Gennaro R, Gentry C, Parno B. Non-interactive Verifiable Computing: Outsourcing Computation to Untrusted Workers[M]// Advances in Cryptology – CRYPTO 2010. Springer Berlin Heidelberg, 2010:465-482.

6.Rabin M O . How to Exchange Secrets by Oblivious Transfer[J]. Technical Memo TR-81, 1981.

7.Feng D and Yang K. Concretely efficient secure multi-party computation protocols: survey and more. Security and Safety 2022; 1: 2021001. https://doi.org/10.1051/sands/ 2021001

8.信通院,《隱私計算白皮書(2021年)》

相關文章