SPDZ 特點:
SPDZ 使用秘密共享加法,這意味著每個秘密值 x 由每一方 Pi 知道一個隨機值 xi 來表示:
x=x1+…+xn
最終通過計算這些秘密值,以秘密共享形式,獲得計算 z 的輸出。
各方可以通過將他們的數值 zi 發送給對方來學習這個輸出 z,這樣每個人都可以重新計算 z。但是,如果一些參與者謊報他們的數值,從而導致錯誤的結果。
SPDZ 協定通過向秘密共享格式添加一些身份驗證機制來“增強”秘密共享值的表示。
您可能熟悉數字簽名,甚至它們的對稱密鑰「訊息鑑別碼(MAC)」。
訊息鑑別碼(MAC) 是一種驗證值的方法,因此除非您知道用於生成 訊息鑑別碼(MAC) 的密鑰。
使用訊息鑑別碼(MAC)解決了“說謊方”的問題:
鍵 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)。