SPDZ
読み方: エスピーディーズ
特徴
$ t = n-1人の参加者に悪意があっても動く
active security: 悪意のある参加者がプロトコルから逸脱しても大丈夫(中止 or 正しく動く)
$ F_p上の回路を扱える
手法
MAC(Message Authentication Code)を利用して不正を検出
preprocessing phase(通信回数多)とonline phase(通信回数少)に分かれる
passive securityのprotocolをZKPでactive securityに変える
homomorphic encryptionを利用したprotocol
MACとは?
改ざんの検出ができる
2者間のプロトコル
AさんとBさんは秘密の鍵$ kを共有しておく。AさんがBさんへメッセージ$ mを送ることき、Bさんには$ m,t = M(k, m)を送る。Bさん側で$ m,t = M(k, m)を確認すると、メッセージに改ざんが無いことを確認できる。
参考:
SPDZではMAC鍵を$ \alpha \in Z_p、MAC関数を$ M(x) = x\cdot \alpha \mod pとするlinear MACが使われる
MPCによる不正検出
各参加者は$ \langle x \rangle, $ \langle x\cdot\alpha \rangle, $ \langle \alpha \rangleをシェアしている(例えば$ \langle x \rangleは参加者$ P_iが$ x_iを持っているという意味)。
ただし$ x = \sum_i x_i ,$ x\cdot\alpha = \sum_i m_i , $ \alpha = \sum_i \alpha_i
$ d_i = \alpha_i x_i - m_iの和が$ 0であることを確認すれば、$ x_iに不正が無いことが分かる。
参考:
スライド
動画
https://www.youtube.com/watch?v=FrQdDaDDm7Y