iT邦幫忙

2022 iThome 鐵人賽

DAY 28
0
Security

區塊鏈與聯邦學習系列 第 28

SPDZ 協定

  • 分享至 

  • xImage
  •  

SPDZ 特點:

  • 允許任意數量的參與方(n)執行 MPC。
  • 最多可以容忍 n-1 個節點損壞。
  • 提供了主動的安全性,例如:惡意的參與方,它也是安全的
  • 允許對算術電路進行評估,例如,所有操作都在以大素數為模的整數上執行的電路。
  • 兩個階段:
    1. 預處理(pre-processing)階段
      執行各方選擇的隨機值的乘法,並使用健全性檢查、剪切和-選擇、零知識協議等。
    2. 在線階段
      使用隨機乘法、海狸(Beaver)三元組組成,獨立於必須計算的函數和秘密輸入。

SPDZ 使用秘密共享加法,這意味著每個秘密值 x 由每一方 Pi 知道一個隨機值 xi 來表示:
x=x1+…+xn

最終通過計算這些秘密值,以秘密共享形式,獲得計算 z 的輸出。
各方可以通過將他們的數值 zi 發送給對方來學習這個輸出 z,這樣每個人都可以重新計算 z。但是,如果一些參與者謊報他們的數值,從而導致錯誤的結果。

訊息鑑別碼(Message Authentication Code, MAC)

SPDZ 協定通過向秘密共享格式添加一些身份驗證機制來“增強”秘密共享值的表示。
您可能熟悉數字簽名,甚至它們的對稱密鑰「訊息鑑別碼(MAC)」。
訊息鑑別碼(MAC) 是一種驗證值的方法,因此除非您知道用於生成 訊息鑑別碼(MAC) 的密鑰。

使用訊息鑑別碼(MAC)解決了“說謊方”的問題:

  1. 在每個人的數值 zi 之上,還給每個人一個 MAC m 的數值 mi 和一個密鑰 k 的數值 ki,使得 mi 的總和相等對於m,ki的總和等於k,並且m=MAC(k,z)。
  2. 當值 z 必須被重構時,每個人都將他們在 (m, k, z) 中的數值發送給其他人。
  3. 各方可以重建這三個值並檢查正確性。

鍵 k 下值 x 上的 MAC m 簡單定義:
m=k*x mod p

其中 p 是一些較大的質數。
任何人都不知道 MAC m、值 x 和密鑰 k,因為它們是秘密共享的。
這意味著我們可以在不同的秘密值上重用相同的密鑰 k。

如果我們有兩個秘密值 x1、x2,它們的 訊息鑑別碼(MAC) 將被計算為:
m1=kx2 mod p 和 m2=kx2 mod p

如果每一方簡單地將他們的數值和他們的 訊息鑑別碼(MAC) 數值相加,我們將在結果值上得到一個有效的 訊息鑑別碼(MAC):
(m1+m2)=k*(x1+x2) mod p

為了在在線階段的安全性,我們所要做的就是確保預處理階段在某個隨機密鑰 k 下的所有值上產生隨機、海狸(Beaver)乘法三元組和 訊息鑑別碼(MAC)。


上一篇
拆分學習(Split Learning, SL)
下一篇
聯邦學習與電腦視覺(Computer Vision, CV)
系列文
區塊鏈與聯邦學習30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言