秘匿マルチパーティ計算
秘匿マルチパーティ計算(ひとくマルチパーティけいさん、英:Secure multi-party computation)とは、多人数の参加者で行う秘匿計算プロトコルの総称であり、複数の参加者がそれぞれ自身の入力値を秘匿したままで多入力関数の値のみを計算することが可能となる暗号学的な手法をいう。単にマルチパーティ計算(MPC)や秘密計算、プライバシー保護計算とも通称される。従来の暗号化手法とは異なり、このモデルの暗号化は参加者のプライバシーを相互に保護する。
秘匿マルチパーティ計算の基礎は、信頼できる第三者機関(TTP)を必要とせずに遠距離でゲームプレイやコンピュータ演算の業務を模擬試験するメンタルポーカー (mental poker) という暗号作業の研究で1970年代後半に始まった。従来の暗号化とは文章内容の隠蔽に関するものだったが、この新種の計算およびプロトコルは、様々な情報源からのデータで計算しながらもデータに関する部分的な(プライバシー関連の)情報を秘匿して、正確に計算結果を生み出す手法である。
1980年代後半までに、シャフィ・ゴールドワッサーやアヴィ・ヴィグダーソンなどが「セキュアなチャネル設定で任意の関数を秘匿計算する方法」を提示する論文を発表した。
このメカニズムは、実際に有効で十分にセキュアなプロトコルが見つかることを期待して、両モデル間の橋渡しを設定している。
多くの暗号化プロトコルと同様、MPCプロトコルのセキュリティは以下の前提に依存している。
それは計算を含んで(つまり因数分解のような幾つかの数学的問題に基づいて)いる場合があり、通信チャネル上でメッセージが物理的に活用できないことに依存している。
このモデルは、参加者が「ある瞬間」に送信したメッセージが常に次の「瞬間」に到着する同期ネットワークを使うか、セキュアで信頼性の高いブロードキャストチャネルが存在する、または攻撃者がチャネル内のメッセージを読み取ったり、変更したり、生成できない参加者のあらゆる二者間に秘匿通信チャネルが存在する、ことを前提としている。
計算タスクを実行しうる正直な参加者群は、アクセス構造の概念と関わりがある。攻撃者構造はstaticになることがあり、この場合に攻撃者はMPCの開始前に被害者を選択している。またadaptiveにもなることがあり、この場合はMPCの実行中に被害者を選択して(不正者として)操るので防御が困難になる。攻撃者構造は、閾値構造またはより複雑な構造として定義できる。閾値構造では、攻撃者は最大で幾つかの閾値まで参加者数のメモリを破損ないし読み取ることができる。一方、複雑な構造では起こりうる様々な共謀をモデル化しており、攻撃者は参加者の特定の部分集合に悪影響を与える。
近年では、2PCおよびMPCのシステムで多くの進展がある。