1

マルチパーティプロトコル

434
1

マルチパーティプロトコルとは、複数の参加者がそれぞれ秘密情報を持つとき、秘密情報を他の人に漏らさず、秘密から計算できる値を計算する技術である。

前提知識

シャミアの秘密分散を前提知識としているが、本記事では解説しないものとする。

手順

  1. 秘密を持つ参加者が、シャミアの秘密分散を用いて秘密を分散させる。(この秘密を入力値シェアと呼ぶ)
  2. 各参加者が協力して、入力値シェアをもとに出力値シェアを計算し、公開する。
  3. 各参加者が公開された出力値シェアと、シャミアの秘密分散の復元を使って、秘密情報の和を計算する。

具体例

N人の参加者がそれぞれの秘密情報siを漏らさず、秘密情報の和s=s1+s2+s3+...+sNを求める手順について、以下に述べる。

1. 準備

参加者間で秘密情報の和より大きい素数p決めて共有する。

2. 入力シェアの計算

すべての参加者がそれぞれ以下の操作を行う。参加者の番号をi番目として説明する。

a. 多項式の決定

fi(0)=sを満たす多項式fiを作成する。

具体的にはai ~ aNをランダムに選び、次のように定義する。
fi(x)=s+a1x+a2x2+...+aN1xN1+aNxN

b. シェアの計算

他の参加者に対して、それぞれvij=fi(j)を計算し、暗号化した状態で送る。(jは送る相手の番号)

3. 出力シェアの計算

すべての参加者が以下の操作を行う。参加者の番号をj番目として説明する。

次のように出力シェアvjを計算し公開する。
vj=v1j+v2j+...+v(N1)j+vNj(modp)

4. 復元

f(j)=vj を満たす tl 多項式関数fを計算する。

これはv1 ~ vNを用いて、シャミアの秘密分散の復元と同じように計算できる。

s=f(0)が秘密情報s1 ~ sNの和である。

参考

  1. 足立智子, and 光野繁治. "RSA 分散復号 (代数系アルゴリズムと言語および計算理論)." (2009).

  2. Shamir, Adi. "How to share a secret." Communications of the ACM 22.11 (1979): 612-613.

投稿日:2020125
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

akakou
akakou
16
17302
数学が…わかりません……ダレカタスケテー

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 前提知識
  2. 手順
  3. 具体例
  4. 1. 準備
  5. 2. 入力シェアの計算
  6. 3. 出力シェアの計算
  7. 4. 復元
  8. 参考