1. 程式人生 > >安全多方計算從入門到精通:MPC簡介&JUGO平臺

安全多方計算從入門到精通:MPC簡介&JUGO平臺

head 加密 基本 取代 公共函數 led 傳輸協議 保密 大數

簡介:今天我們來介紹一下基於安全多方計算所設計出來的產品JUGO。從安全性角度來看,數據泄露——隱私安全問題嚴重;facebook的數據泄露事件鬧得很大,原因就是facebook單方面將用戶的個人數據提供給了第三方機構,這為個人數據的擁有權敲響了警鐘。從數據價值角度來看,數據孤島——數據之間由於各種原因造成了壁壘,(政府數據由於政策保密性完全不能對外公布,運營商、互聯網每家都在收集客戶的數據信息,但他們不會將這些數據透露給第三者),所有這些,使得這些數據都無法互通,那麽就不能夠為數據使用者提供利用價值,達不到1+1>2的效果。因此目前急需一個既能保護數據隱私又能實現數據流動起來最大化其價值的解決方案——JUGO。
1.概述
  大數據時代,海量數據的交叉計算可以為科研、醫療、金融等提供更好支持。許多企業或組織出於信息安全或利益的考慮,內部數據是不對外開放的。形成一個個數據孤島,數據的價值無法體現或變現。安全多方計算(MPC)可以很好解決這一難題。保證各方數據安全的同時,又得到預期計算的結果。
  為了讓數據安全地碰撞出更多價值,打破數據在行業、企業間流動的壁壘,矩陣元推出了JUGO安全多方計算平臺。JUGO提供安全多方計算底層平臺,並集成了通用MPC算法的SDK。同時提供編寫高級語言Frutta的IDE,方便用戶將Frutta語言編寫的程序轉換成電路。用戶可以在平臺上編寫MPC算法並發布,也可以發起計算任務,邀請第三方進行安全多方計算或可以申請參與他人發起的計算任務。
  用戶將計算節點部署到本地,可以選擇JUGO開放服務平臺作為代理(也可以是第三方), 節點之間通過代理進行加密通訊,所有節點不保留任何數據。整個計算過程沒有任何明文或原始數據傳播或存在,最後計算結果發送給事前約定的接收方。
  JUGO開放服務平臺是一個數據加工廠,也是一個算法和數據集市。在保護數據安全的前提下幫助賣方用戶數據增值、變現,幫助買方用戶尋找所需的數據和服務。
  為了數據的流動是矩陣元的口號和願景,流動的數據才更有價值。
JUGO特性:
支持semi-honest通用兩方算法:GC+OT。
支持Frutta編寫的IDE,提供MPC算法的SDK,用戶使用IDE和SDK進行開發。
支持加法(addition),比較(comparison)多方算法。
後續支持通用多方算法和硬件加速
2.MPC名詞解釋

名稱 全稱 中文名稱 說明
MPC Secure Multi-Party Computation 安全多方計算 一種保護數據安全隱私的多方計算算法。
GC Garbled Circuit 加密電路 一種通過加密處理電路的方式。
OT: Oblivious Transfer 不經意傳輸 一種安全的選擇、傳輸協議。

MPC介紹
1.安全多方計算的價值
  MPC是密碼學的一個重要分支,旨在解決一組互不信任的參與方之間保護隱私的協同計算問題,為數據需求方提供不泄露原始數據前提下的多方協同計算能力。
  在目前個人數據毫無隱私的環境下,對數據進行確權並實現數據價值顯得尤為重要。MPC就是實現此目的的計算協議,在整個計算協議執行過程中,用戶對個人數據始終擁有控制權,只有計算邏輯是公開的。計算參與方只需參與計算協議,無需依賴第三方就能完成數據計算,並且參與各方拿到計算結果後也無法推斷出原始數據。
2.安全多方計算的來源
  安全多方計算(MPC:Secure Muti-Party Computation)研究由圖靈獎獲得者、×××院士姚期智教授在1982年提出,姚教授以著名的百萬富翁問題來說明安全多方計算。百萬富翁問題指的是,在沒有可信第三方的前提下,兩個百萬富翁如何不泄露自己的真實財產狀況來比較誰更有錢。通過研究此問題,形象地說明了安全多方計算面臨的挑戰和問題解決思路,經Oded Goldreich、Shaft Goldwasser等學者的眾多原始創新工作,安全多方計算逐漸發展成為密碼學的一個重要分支。
3.問題抽象
技術分享圖片
安全多方計算可以抽象的理解為:兩方分別擁有各自的私有數據,在不泄漏各自私有數據的情況下,能夠計算出關於公共函數 的結果。整個計算完成時,只有計算結果對雙方可知,且雙方均不知對方的數據以及計算過程的中間數據。
4.什麽是安全多方計算?
  多個持有各自私有數據的參與方,共同執行一個計算邏輯計算邏輯(如,求最大值計算),並獲得計算結果。但過程中,參與的每一方均不會泄漏各自數據的計算,被稱之為MPC計算。
  舉個例子,Bob和Alice想弄清誰的薪資更高,但因為簽署了保密協議而不能透露具體薪資。如果Bob和Alice分別將各自的薪資告訴離職員工Anne,這時Anne就能知道誰的薪資更高,並告訴Bob和Alice。這種方式就是需保證中間人Anne完全可信。
  而通過MPC則可以設計一個協議,在這個協議中,算法取代中間人的角色,Alice和Bob的薪資以及比較的邏輯均交由算法處理,參與方只需執行計算協議,而不用依賴於一個完全可信的第三方。
  安全多方計算所要確保的基本性質就是:在協議執行期間發送的消息中不能推斷出各方持有的私有數據信息,關於私有數據唯一可以推斷的信息是僅僅能從輸出結果得到的信息。
4.1.什麽是算法
  算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。
  如果一個算法有缺陷,或不適合於某個問題,執行這個算法將不會解決這個問題。不同的算法可能用不同的時間、空間或效率來完成同樣的任務。一個算法的優劣可以用空間復雜度與時間復雜度來衡量。
  算法具有以下五個重要特征:

  1. 窮性:算法的有窮性是指算法必須能在執行有限個步驟之後終止;
  2. 確切性:算法的每一步驟必須有確切的定義;
  3. 輸入項:一個算法有0個或多個輸入,以刻畫運算對象的初始情況,所謂0個輸入是指算法本身定出了初始條件;
  4. 輸出項:一個算法有一個或多個輸出,以反映對輸入數據加工後的結果。沒有輸出的算法是毫無意義的;
  5. 可行性:算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成(也稱之為有效性)。
    註意:文檔中提到的“算法”,特指MPC底層算法;“計算邏輯”特指為執行具體編寫的算法,運行在MPC底層算法之上。

4.2.MPC問題分類
由算法適用性來看,MPC既適用於特定的算法,如加法、乘法、AES,集合交集等;也適用於所有可表示成計算過程的通用算法。
根據計算參與方個數不同,可分為只有兩個參與方的2PC和多個參與方(≥3)的通用MPC。
安全兩方計算所使用的協議為Garbled Circuit(GC)+Oblivious Transfer(OT);而安全多方計算所使用的協議為同態加密+秘密分享+OT。
在安全多方計算中,安全挑戰模型包括半誠實敵手模型和惡意敵手模型。市場大部分場景滿足半誠實敵手模型,也是JUGO技術產品所考慮的敵手模型。
半誠實敵手模型:計算方存在獲取其他計算方原始數據的需求,但仍按照計算協議執行。半誠實關系即參與方之間有一定的信任關系,適合機構之間的數據計算;
惡意敵手模型:參與方根本就不按照計算協議執行計算過程。參與方可采用任何(惡意)方式與對方通信,且沒有任何信任關系。結果可能是協議執行不成功,雙方得不到任何數據;或者協議執行成功,雙方僅知道計算結果。更多適用於個人之間、或者個人與機構之間的數據計算。
5.MPC算法基本原理(2PC半誠實模型)
  下面介紹安全兩方計算的半誠實模型下的MPC算法原理:
技術分享圖片
5.1.MPC算法執行過程
1.先對輸入數據做預處理。
將輸入的布爾電路做GC和OT算法(詳細在下面敘述),得到輸出結果。
 遵循原則:1、盡量少的數據輸入;2、盡量多的數據預處理
 ——數據量太大時會大幅降低算法執行效率。
2.計算邏輯轉化為布爾電路。
 遵循原則:盡量簡單的計算邏輯
 ——由於MPC是計算密集型和通信密集型算法,若計算邏輯很復雜,會對執行效率產生很大影響。
 轉化方式:手動/電路編譯器Frutta
3.將輸入的布爾電路做GC和OT算法(詳細在下面敘述),得到輸出結果。
5.2.GC+OT的兩方計算基本框架
  GC+ OT是在兩方semi-honest模型下的通用型算法,即可以支持任意計算邏輯的安全兩方計算。
  總體框架如下圖:
技術分享圖片
技術分享圖片
6.小結
  安全多方計算是一種在不泄漏原始數據的情況下,對數據進行的計算。上述內容首先介紹了MPC的價值及來源,然後詳述了兩方安全計算的技術實現原理,主要包括GC和OT算法,並對一些技術基礎知識做了簡要概述。
二、JUGO與MPC
1.JUGO定位
  針對企業級用戶,基於MPC的安全數據交易平臺。通過在本地部署MPC節點,進行數據協同計算。
2.JUGO特性
 支持semi-honest通用兩方算法:GC+OT。
 支持Frutta編寫的IDE,提供MPC算法的SDK,用戶使用IDE和SDK進行開發。
 支持加法(addition),比較(compare)等多種算法。
 以瀏覽件插件的形式提供MPC個人體驗。
 後續支持通用多方算法和硬件加速。
3.JUGO架構
技術分享圖片
 針對計算邏輯提供者,MPC-IDE實現計算邏輯的編寫,並通過集成的電路編譯器轉化為電路文件;作為數據執行方,矩陣元提供的MPC-SDK直接為計算邏輯提供者服務;並且矩陣元對MPC-SDK內部算法實現GPU、FPGA等硬件加速,使協同計算過程更快地完成。

更多內容可以參考視頻:安全多方計算MPC視頻課程
產品實操請訪問:JUGO開放服務平臺

安全多方計算從入門到精通:MPC簡介&JUGO平臺