安全多方計算是解決在一個互不信任的多用戶網絡中,兩個或多個用戶能夠在不泄漏各自私有輸入信息時,協同合作執行某項計算任務的問題。它在密碼學中擁有相當重要的地位,是電子選舉、門限簽名以及電子拍賣等諸多應 用得以實施的密碼學基礎。
研究現狀
安全多方計算(secure multi-party computation,簡稱 SMPC)是由姚期智於 1982 年 為解決百萬富翁問題提出,而后經過Goldreich、Micali 和 Wigderson 等人的不斷的研究給出了實質性的描述,稱為 GMW 協議。
現實中考慮到協議的實際應用和協議參與者的行為,對於協議安全問題,主要研究半誠實模型和惡意模型兩種情況,通常以半誠實模型為主研究高效的 SMPC 協議。 Garg S 等人在半誠實的情況下,討論了構建兩輪 SMPC 協議的幾個擴展,在兩輪不經意傳輸(OT)條件下,給出了新的兩輪多方安全計算(SMPC)協議。證明了任何 SMPC 協議都可以在保持其正確性和安全性的同時轉換成符合標准的協議。Benhamouda F等人提出了基於半誠實模型的 OT 協議的輪高效或者是輪優化的多方計算協議的構造。並證明了用於構造 SMPC 協議的亂碼交互電路可以用 OT 實現。在半誠實條件下對 SMPC 協議的討論都基於混淆交互電路的框架。並在有限輪數下,對 k 輪半誠實 OT 和 k 輪惡意通用可組合協議進行了分析。
以上協議只對半誠實模型下的安全問題進行了較為詳細的研究,但沒有對惡意模型下的安全問題深入的描述,而 SPDZ 協議主要探討了在惡意模型下的安全問題,SPDZ 表示預處理模型中基於某種同態加密的多方計算方案,並且是最為實用的 SMPC 協議。Keller M等人提出的方案在存在惡意對手的情況下,需要保證各方確實加密了他們應該加密的信息。Spini G等人重新討論了基於 SPDZ 多方計算協議,在不誠實者存在的情況下安全地計算一個函 數。方案同時增強了 SPDZ 協議對不誠實者行為的檢測,不誠實參與者強制停止協議或 退出協議致使計算失敗都被認為作弊者。
近年來,對安全多方計算的分類研究主要包含以下幾個維度:
1.不經意傳輸和混淆電路:
不經意傳輸(Oblivious Transfer,OT)(稱為茫然傳輸):發送者具有多個秘密數據,將其中一個秘密數據發送給接受者,接受者除了知道已接收的秘密數據而不知道發送者的其他秘密數據,發送者也無法知道發送給接收者的秘密數據。
混淆電路(加密電路):電路實現主要由與或非門模擬任意計算函數,通過對電路的加密來隱藏實際輸入,實現對各個參與者的數據保密,以電路計算實現安全多方計算函數。
2.半誠實模型和惡意模型:
半誠實參與者(被動攻擊):參與者遵守計算協議進行計算過程,但有可能將自己的計算結果透露給攻擊者。
惡意參與者(主動攻擊):參與者完全按照攻擊者的要求執行計算任務,不但將輸入數據和計算結果泄漏給攻擊者,而且根據攻擊者的意圖篡改數據,甚至終止協議。
3.安全兩方計算和安全多方計算:
安全兩方計算:是安全多方計算的特殊形式,僅僅只有兩位計算參與者。兩方計算概念定義方式有兩種,第一種是功能函數的輸出分布計算不可區分性,也稱為兩方保密計算;第二種是采用實際需求分析和理想函數框架定義。 安全多方計算:計算參與者數量較多,並且協議的設計是為了抵抗任意敵手的攻擊, 其中有參與者之間相互串通修改計算結果或不合法的輸入導致計算協議終止,與安全兩方計算協議不同,無論敵手情況還是編譯器構造都是比較復雜的。
4.通用協議和具體問題協議:
通用協議:Yao 將安全多方計算的功能函數抽象為混淆門的電路,實現對任意函數的計算,經過不斷的優化提高了計算效率,但此方案只適用於半誠實模型,在惡意模型下,利用通用編譯器的方法,借助比特承諾與零知識證明等工具編譯協議,但執行效率較低。
具體問題協議:針對實際問題設計專門的協議。
參考文獻:王旭升 基於區塊鏈的安全多方計算研究與分析