多方安全計算(6):MPC中場梳理

學習&轉載文章:多方安全計算(6):MPC中場梳理

前言

誠爲讀者所知,數據出域的限制約束與數據流通的普遍需求共同催生了數據安全計算的需求,近一兩年業界又統將能夠做到多方數據可用不可見的技術歸入隱私計算範疇。粗略來說,隱私計算可分爲以聯邦學習爲代表的機器學習類升級方案、以可信硬件爲基礎的可信執行環境類方案和以密碼學相關技術爲核心的多方安全計算類方案

聯邦學習類方案可視爲機器學習在多數據源下的升級,對於模型優化等任務可較快完成;然而,更一般性的計算任務,又或者更一般性的場景(如一方提供模型,另一方提供數據),就超出了聯邦學習的能力範疇。可信執行環境類方案由於使用可信硬件,可以相對簡潔的完成對已有任務的安全遷移或新功能的編碼;然而一方面,側信道攻擊與不斷被發現的硬件設計漏洞使得TEE方案存在潛在隱患;另一方面,硬件採購這一過程會造成大量潛在客戶的流失。

在之前的系列文章中:

我們對MPC中的部分核心技術與應用做了初步的介紹,在進一步具體介紹更困難的技術組件或場景應用之前,本文試圖從宏觀上對MPC中部分主要技術與場景做一個簡單梳理。

簡易框架

廣義的MPC泛指所有多參與方下的密文計算問題;在此情況下,如何將MPC封裝爲一個易被使用的方案就是一個值得關注的問題。

以使用者的視角來看,最需要關注的是如何進行自身任務的創建與執行;用戶通常瞭解與任務本身相關的參數,而不關心其實現機制,因而應該直接提供相應任務常用的接口,是以需要儘可能的補充應用的模板類型;實際而言,數據庫操作與機器學習相關任務最受當前用戶關注。然而,窮盡所有可能的任務也是不可能的,因而還需提供用戶自身創建複雜任務的能力,即給予用戶自定義組合基礎運算的能力。綜上,本文以爲一個最簡化的MPC方案總體設計應如圖1所示;在此基礎上,本文對現有部分重要技術做一個簡單的羅列。請注意,受筆者能力與精力所限,本文所討論內容僅爲一個初級的梳理,不足以也不適用於實際工業化MPC模塊設計;此外,模塊之間的調用技術由於其極高的複雜性亦不在本文討論範疇內,對此讀者不妨參考[1]。

圖片

圖1 MPC模塊簡易圖

算法支撐層

密碼算法模塊

· 對稱加密:經典加密方案,提供高速與強安全性加密,廣泛用於支撐其餘算法;通常基於置換、流加密、多重替換等實現,主流硬件對部分知名方案有一定優化;優先考慮SM4或AES方案,實際實現可參考2

· 非對稱加密:經典加密方案,效率低於對稱加密,常用於生成密鑰,主流MPC方案使用不經意傳輸擴展結合對稱與非對稱加密以提升效率;通常基於某知名困難性假設,如大整數分解或離散對數問題;通常考慮SM2等基於橢圓曲線(ECC)的方案,實際實現可參考3

· 半同態加密:通常分爲加法半同態與乘法半同態,可在密文上進行直接加法或乘法計算,而計算結果可正確的映射回明文中,實現效率通常低於非對稱加密;通常基於素數域定製的困難性假設;加法半同態常考慮優化後的Paillier協議[4],乘法半同態可優先考慮ElGamal算法

· 全同態加密:全同態加密常用有BFV/BGV/CKKS三種;其中CKKS支持浮點數計算;全同態方案通常基於格上的困難性假設,常關聯打包(packing)與自舉(bootstrapping)等技術;良好實現難度極高,應主要考慮調用業界知名庫如seal等5;特別的,此類方案參數設定往往需要根據實際任務數值範圍與計算深度進行調整

· 僞隨機數模塊:主要包含僞隨機數生成器PRG,用於生成某範圍內的僞隨機數,其不可預測性是衆多密碼學算法的信任之源;實現的方式較多,讀者不妨參考6瞭解細節,開源實現可參考2

· 不經意傳輸模塊:主要包含標準不經意傳輸(OT,常基於對稱與非對稱加密),隨機不經意傳輸(ROT,OT的一種變形),關聯不經意傳輸(COT,OT的一種變形),不經意傳輸擴展(OTE,常基於IKNP或PCG)與不經意僞隨機函數(OPRF,OTE的一種擴展);前四者廣泛用於祕密共享與混淆電路的實現中,而OPRF廣泛用於專用計算模塊中。相應的技術細節讀者不妨參考安全多方計算(5):隱私集合求交方案彙總分析,之後我們也會對本模塊做更多說明。

· 關聯僞隨機數模塊:用於降低各類任務在線階段(即得到實際輸入後)的時間消耗常見關聯僞隨機數協議有beaver triples,dabits,edabits等;主要用於基於祕密共享的密文乘法與密文比較運算中;通常基於FHE、COT或OLE完成批量構造;其應用方法不妨參考[7],部分生成方法不妨參考[8],部分開源實現可見9。值得注意的是,很多工作中通過引入可信第三方的形式生成其它特殊形式的關聯僞隨機數,但實用性較低。

數據結構模塊

· 編碼與解碼:用於對輸入數據進行編碼;通常需考慮浮點數、負數與所選擇環/域的映射以及多個數間的packing;由於不同密碼學方案對編碼方式的要求相差極大,實踐中此模塊很難獨立實現。

· 布穀鳥哈希:廣泛用於專用隱私計算模塊中,用於降低通信與計算開銷,其實現可參考2

· ORAM:可譯爲不經意隨機訪問機;通過增加冗餘存儲與進行冗餘訪問的方式,涉及讀取、解密、讀寫、重加密、寫回幾種關鍵操作,確保服務端無法推測訪問信息所在實際位置。藉助ORAM可廣泛實現不經意數據結構,進而進一步支撐MPC的實現;但其實際實現不易且與其它模塊較難兼容,因而實際實現優先級較低。

值得注意的是,由不經意傳輸所引申出了較多特殊的不經意結構,如不經意棧、不經意隊列、不經意鍵值存儲等;但此類方案通常與某些定製化方案高度綁定,因此本文不在此具體羅列。

網絡通信模塊

· boost.asio:C++最常用的擴展庫,基於tcp/udp;簡單易用,且C++23中可能納入標準庫;部分現有隱私計算開源庫10中使用。

· zmq:不僅是一個網絡通信庫,還是一個高級的異步併發框架,適於超大數據量的通信,配置方便,部分現有隱私計算開源庫11使用。

· grpc: 基於HTTP2.0協議,廣泛用於大數據的雙向傳輸,部分隱私計算工業界產品中宣稱使用其完成聯邦學習等過程的通信。

基礎運算層

通用計算模塊

本部分需提供用戶包含四則運算、基本初等函數、比較、排序、矩陣乘法(對於矩陣的複雜運算已有較多研究,但似乎未看到實際可用者)等功能。通常涉及到如下兩個模塊:

· 祕密共享:MPC中通常使用線性祕密分享(LSSS),具有加法同態性;主要包含三種,加法祕密共享,shamir祕密共享,常用於三方的複製祕密共享。在之前的文章中,我們討論過如何使用祕密共享完成加減乘運算;主流方案通常基於牛頓迭代方案實現除法計算基於分段擬合的方案實現開方等計算;結合edabits等實現比較運算;基於比較運算與乘法組合完成排序運算;基於多項式擬合完成其它運算。

· 混淆電路:混淆電路涉及電路生成,實際使用中通常需依賴開源框架或特殊編程語言(obliv-c)。其核心在於與門與或門的安全計算方案,通常需結合Free XOR以及半門或切割技術。

實際計算時,通常糅合上述兩類方案與同態加密以保證更高的效率,其實現思路讀者不妨參考[12]與[13]。

專用計算模塊

本部分所提供的方法介於基礎運算層與高級應用層之間,既可作爲獨立任務爲用戶所使用,也常需要組合用於某個更大的任務中,常用的此類技術如下:

· 隱私集合求交PSI:兩方或多方有數據集合,在不暴露每個參與者集合元素的情況下,讓一方或多個參與方知曉交集元素的信息。此技術應用面極廣,通常視數據規模、數據規模差異、網絡帶寬等基於OPRF或同態實現,部分典型工作讀者不妨參考之前的文章。

· 隱私集合求並PSU:與PSI類似,使一方或多方知曉參與者集合的並集結果,其核心在於向其它參與方隱藏已有的具體信息;使用面相對狹窄,常用於安全數據庫處理中;通常基於OPRF與隱私相等性測試(PEQT)技術實現[14]。

· 隱私信息檢索PIR:通常專指基於keyword-pir,即查詢方給出一個查詢關鍵字,服務方(實踐中通常爲單服務器)提供該關鍵字對應的一個搜索結果;當需要多關鍵字多結果時,也常稱爲labeled psi;通常基於多項式編碼與同態加密實現11

信息擾動模塊

在部分實際場景中,需直接暴露或提供信息,而不是基於信息進行安全計算;此時通常要確保信息具有一定的統計可用性和個體安全性,傳統加密方案或上述功能性加密方案都不可用,此模塊常藉助於差分隱私技術完成,主要分爲兩類:

· 中心差分隱私:各參與方首先將輸入上傳至某個可信任的中心處,由中心處進行數據的整體擾動;從數據類型來說主要分爲浮點數、整數與枚舉型數值;從方法來說,主要分爲拉普拉斯機制、指數機制、高斯機制,實現過程讀者不妨參考15

· 本地差分隱私:各方首先在本地將數據進行擾動,然後上傳擾動後的數據至中心方;中心方通常會額外進行信息的無偏校正;本地差分隱私通常以隨機響應擾動爲主,對連續型數值通常需先進行離散化分類;實現過程讀者不妨參考16

高級應用層

數據庫處理

數據庫是現有最主流的數據存儲方式,對其進行聯邦改造以支持聯合數據分析具有顯著的意義。其難點一方面在於提供用戶類SQL的編程方式,以及對用戶需求的抽象語法樹解析與分佈式執行規劃,另一方面在於使用安全的方法對數據庫的內容進行實際計算處理,除標準算術運算與各類比較外,主要分爲兩部分:

· 聯邦聚合:主要包含SUM、AVG、MIN/MAX等關鍵字;底層實現通常基於祕密共享或同態的數值運算,如需對個體進行保護,可結合差分隱私技術

· 聯邦連接:主要包含JOIN等關鍵字;底層實現通常基於明文排序與基於祕密共享的比較運算,部分情形可結合隱私集合求並技術

機器學習預測

機器學習包含邏輯迴歸、決策樹、神經網絡等算法;在密文計算層面,對各類機器學習算法的密文改造方法是類似的;因此,不對此細分。

· 安全兩方預測:一方提供數據,另一方提供模型,兩方不暴露彼此的信息。實踐中通常基於同態加密完成主體計算部分,用不經意傳輸輔助完成比較運算,讀者可參考[13]瞭解更多信息。當兩方拓展爲多方時,由於其它的技術缺乏拓展性或在編碼中存在顯著的難度,通常主要祕密共享技術完成,對此讀者不妨參考[17]。

· 安全外包預測:常見場景爲,模型以公開或加密的形式存儲在多個雲服務器(通常爲兩個)中,數據提供者將數據進行切分,多個雲服務器之間通過密文交互,完成模型的前饋,並最終將密文結果返回給數據擁有者,數據擁有者從多份密文結果中恢復正確結果。本過程事實上是安全兩方預測的加強版本,因爲其需要計算參與方既不知道數據,也不知道模型,實踐中通常基於祕密共享技術完成,讀者不妨參考[18]。

機器學習訓練

· 通用兩方建模:兩個參與方各自擁有部分數據,事先約定好模型種類、結構與超參數,通過密文交互完成兩方數據的協同建模。此功能與聯邦學習類似,但相比聯邦學習,理論精度更高,但通信量與計算複雜度都遠高於對應的聯邦學習方案。在計算機制上與機器學習預測類似,可基於同態與不經意傳輸完成;實踐中也常基於祕密共享完成,但祕密分享乘法帶來的環溢出問題仍缺少高效的解決方案。讀者不妨參考[19]。

· 差分隱私建模:由於完全基於密碼學方案的建模方案效率過低,部分方案考慮使用差分隱私對輸入特徵、梯度信息、結果輸出進行擾動;此過程本質上是依靠隨機梯度下降(SGD)本身較強的容錯性,且此方案可抵抗成員推理攻擊、模型反演攻擊等常見攻擊方法;也因此,差分隱私也常被結合進聯邦學習策略中。然而,差分隱私類的方案通常會造成較爲明顯的精度損失,這限制了其實際使用場景,具體方案讀者不妨參考[20]。

總結

本文從使用的角度對多方安全計算體系內的部分技術與場景做了一個簡單的梳理,希望能使讀者對MPC的架構有一個更直觀的認識。再次請讀者注意,本文僅爲一份理論化的空談(作者太謙虛了),在實踐中使用的方案通常不會也無法進行嚴格的進行分層分塊。在後面的文章中,我們將重新聚焦於具體的理論細節並做相應的實現詳解。

參考文獻

[1]: Zheng W, Deng R, Chen W, et al. Cerebro: A Platform for {Multi-Party} Cryptographic Collaborative Learning[C]//30th USENIX Security Symposium (USENIX Security 21). 2021: 2723-2740.

[4]: Damgård I, Jurik M, Nielsen J B. A generalization of Paillier’s public-key system with applications to electronic voting[J]. International Journal of Information Security, 2010, 9(6): 371-385.

[7]: Escudero D, Ghosh S, Keller M, et al. Improved primitives for MPC over mixed arithmetic-binary circuits[C]//Annual International Cryptology conference. Springer, Cham, 2020: 823-852.

[8]: Mohassel P, Zhang Y. Secureml: A system for scalable privacy-preserving machine learning[C]//2017 IEEE symposium on security and privacy (SP). IEEE, 2017: 19-38.

[12]: Patra A, Schneider T, Suresh A, et al. {ABY2. 0}: Improved {Mixed-Protocol} Secure {Two-Party} Computation[C]//30th USENIX Security Symposium (USENIX Security 21). 2021: 2165-2182.

[13]: Huang Z, Lu W, Hong C, et al. Cheetah: Lean and Fast Secure Two-Party Deep Neural Network Inference[J]. IACR Cryptol. ePrint Arch., 2022, 2022: 207.

[14]: Kolesnikov V, Rosulek M, Trieu N, et al. Scalable private set union from symmetric-key techniques[C]//International Conference on the Theory and Application of Cryptology and Information Security. Springer, Cham, 2019: 636-666.

[17]: Byali M, Chaudhari H, Patra A, et al. FLASH: fast and robust framework for privacy-preserving machine learning[J]. Cryptology ePrint Archive, 2019.

[18]: Huang K, Liu X, Fu S, et al. A lightweight privacy-preserving CNN feature extraction framework for mobile sensing[J]. IEEE Transactions on Dependable and Secure Computing, 2019, 18(3): 1441-1455.

[19]: Wagh S, Tople S, Benhamouda F, et al. Falcon: Honest-majority maliciously secure framework for private deep learning[J]. arXiv preprint arXiv:2004.02229, 2020.

[20]: Arachchige P C M, Bertok P, Khalil I, et al. Local differential privacy for deep learning[J]. IEEE Internet of Things Journal, 2019, 7(7): 5827-5842.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章