<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="rss.xsl"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Duokey Blog</title>
        <link>https://your-docusaurus-site.example.com/ja/blog</link>
        <description>Duokey Blog</description>
        <lastBuildDate>Sun, 12 Jan 2025 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>ja</language>
        <item>
            <title><![CDATA[セキュアマルチパーティ計算（MPC）を理解する - 理論と実践]]></title>
            <link>https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory</link>
            <guid>https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory</guid>
            <pubDate>Sun, 12 Jan 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[セキュアマルチパーティ計算（MPC）は、暗号技術における最も重要なブレークスルーの一つであり、各当事者が自らの秘密の入力に対して関数を共同で計算しながら、結果以外の情報を一切明かさないことを可能にします。本ガイドでは、MPCの理論的基盤、セキュリティの定義、そして実用的な応用について包括的に解説します。]]></description>
            <content:encoded><![CDATA[<p>セキュアマルチパーティ計算（MPC）は、暗号技術における最も重要なブレークスルーの一つであり、各当事者が自らの秘密の入力に対して関数を共同で計算しながら、結果以外の情報を一切明かさないことを可能にします。本ガイドでは、MPCの理論的基盤、セキュリティの定義、そして実用的な応用について包括的に解説します。</p>
<!-- -->
<!-- -->
<div class="sql-ekm-docs"><header class="page-header"><h1>セキュアマルチパーティ計算を理解する</h1><p class="page-description">理論から実践へ — MPCの理論的基盤、セキュリティの定義、そして実用的な応用に関する包括的なガイド</p></header><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="はじめに">はじめに<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB" class="hash-link" aria-label="はじめに への直接リンク" title="はじめに への直接リンク" translate="no">​</a></h2><p>分散コンピューティング環境では、複数の当事者が機微なデータを含む計算で協力する必要が生じることがよくあります。従来のアプローチでは、当事者は中央の管理者を信頼するか、自らの秘密情報を明かすかのいずれかを迫られます。セキュアマルチパーティ計算は、各当事者が結合された入力に対して関数を計算しながら、それらの入力を秘密に保つことを可能にすることで、この根本的なジレンマを解決します。</p><div class="admonition_zNgJ note_lCc4"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"></circle><path d="M12 11v5"></path><circle cx="12" cy="8" r="0.6" fill="currentColor" stroke="none"></circle></g></svg></span><span class="admonitionTitle_sgYr">注記</span></div><div class="admonitionContent_l7fb">次のシナリオを考えてみましょう。2人の人物が、実際の金額を互いに明かすことなく、どちらの給与が高いかを知りたいとします。あるいは、複数の病院が、機微な診療記録を共有することなく、患者データを用いて機械学習モデルを共同で訓練したいと考えている状況を想像してください。これらは典型的なMPCの問題です。</div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="中核となるセキュリティ要件">中核となるセキュリティ要件<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E4%B8%AD%E6%A0%B8%E3%81%A8%E3%81%AA%E3%82%8B%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E8%A6%81%E4%BB%B6" class="hash-link" aria-label="中核となるセキュリティ要件 への直接リンク" title="中核となるセキュリティ要件 への直接リンク" translate="no">​</a></h2><p>MPCプロトコルは、いくつかの重要な特性を満たさなければなりません。</p><div class="cardGrid_Hphi" style="--columns:3"><div class="card_APvt"><h4 class="cardTitle_h0_3">プライバシー</h4><p class="cardDescription_DG99">いずれの当事者も、定められた出力を超える情報を一切知ることはありません。他の当事者の入力について明らかになる唯一の情報は、出力そのものから導き出せるものに限られます。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">正当性</h4><p class="cardDescription_DG99">各当事者は正しい出力を受け取ることが保証されます。いかなる悪意ある当事者も、指定された関数から逸脱するように結果に影響を与えることはできません。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">入力の独立性</h4><p class="cardDescription_DG99">不正な当事者は、正直な当事者の入力とは独立して自らの入力を選ばなければならず、他者の値の知識に基づく攻撃を防ぎます。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">配信の保証</h4><p class="cardDescription_DG99">不正な当事者は、サービス拒否攻撃によって正直な当事者が出力を受け取るのを妨げることができてはなりません。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">公平性</h4><p class="cardDescription_DG99">不正な当事者が出力を受け取るのは、正直な当事者も自らの出力を受け取る場合に限られ、選択的な結果の拒否を防ぎます。</p></div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="理想現実パラダイム">理想／現実パラダイム<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E7%90%86%E6%83%B3%E7%8F%BE%E5%AE%9F%E3%83%91%E3%83%A9%E3%83%80%E3%82%A4%E3%83%A0" class="hash-link" aria-label="理想／現実パラダイム への直接リンク" title="理想／現実パラダイム への直接リンク" translate="no">​</a></h2><p>MPCの標準的なセキュリティの定義は、<strong>理想／現実シミュレーションパラダイム</strong>と呼ばれる洗練されたアプローチに従います。</p><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="理想世界">理想世界<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E7%90%86%E6%83%B3%E4%B8%96%E7%95%8C" class="hash-link" aria-label="理想世界 への直接リンク" title="理想世界 への直接リンク" translate="no">​</a></h3><p>計算を支援する、腐敗し得ない信頼された第三者が存在する世界を想像してみてください。</p><div class="stepsContainer_lWWy"><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">入力を送信</h4><div class="stepBody_NYqc">すべての当事者が自らの入力を信頼された第三者に送信します</div></div></div><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">関数を計算</h4><div class="stepBody_NYqc">信頼された第三者が関数を計算します</div></div></div><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">出力を返す</h4><div class="stepBody_NYqc">信頼された第三者が各当事者に出力を返します</div></div></div></div><p>この理想的な実行においては、セキュリティは自動的に成立します。</p><div class="tableWrapper_Bxyi"><table class="table_M6U2 striped_dSTW"><thead><tr><th>特性</th><th>理想世界で成立する理由</th></tr></thead><tbody><tr><td>プライバシー</td><td>各当事者は自らの出力しか見ず、それ以外は何も明かされません</td></tr><tr><td>正当性</td><td>信頼された第三者は常に正しく計算します</td></tr><tr><td>入力の独立性</td><td>入力は、いかなる出力を受け取る前に送信されます</td></tr><tr><td>公平性</td><td>信頼された第三者はすべての出力を同時に配信します</td></tr></tbody></table></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="現実世界">現実世界<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E7%8F%BE%E5%AE%9F%E4%B8%96%E7%95%8C" class="hash-link" aria-label="現実世界 への直接リンク" title="現実世界 への直接リンク" translate="no">​</a></h3><p>現実には、そのような信頼された第三者は存在しません。その代わりに、当事者は互いの間でプロトコルを実行し、その一部が不正を働き、結託する可能性があります。あるプロトコルが<strong>セキュア</strong>であるとみなされるのは、敵対者が現実のプロトコル実行で行い得ることが、信頼された第三者が存在する理想的な実行でも同様に行い得る場合です。</p><div class="admonition_zNgJ important_f6Ia"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 2 20h20L12 3z"></path><path d="M12 10v4"></path><circle cx="12" cy="17" r="0.6" fill="currentColor" stroke="none"></circle></g></svg></span><span class="admonitionTitle_sgYr">重要</span></div><div class="admonitionContent_l7fb">形式的には、現実のプロトコル実行を攻撃するいかなる敵対者に対しても、入力／出力の分布が本質的に同一となるように、理想的な実行を攻撃する敵対者が存在します。これは、現実のプロトコルが理想世界を「エミュレート」していることを意味します。</div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="敵対者モデル">敵対者モデル<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E6%95%B5%E5%AF%BE%E8%80%85%E3%83%A2%E3%83%87%E3%83%AB" class="hash-link" aria-label="敵対者モデル への直接リンク" title="敵対者モデル への直接リンク" translate="no">​</a></h2><p>敵対者の能力と挙動は、プロトコルの設計とセキュリティ保証に大きな影響を与えます。</p><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="敵対者の挙動">敵対者の挙動<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E6%95%B5%E5%AF%BE%E8%80%85%E3%81%AE%E6%8C%99%E5%8B%95" class="hash-link" aria-label="敵対者の挙動 への直接リンク" title="敵対者の挙動 への直接リンク" translate="no">​</a></h3><div class="tableWrapper_Bxyi"><table class="table_M6U2 striped_dSTW"><thead><tr><th>モデル</th><th>挙動</th><th>ユースケース</th></tr></thead><tbody><tr><td>セミオネスト（受動的）</td><td>不正な当事者はプロトコルに従うが、実行の観測結果から追加情報を得ようとする</td><td>意図しないデータ漏洩をモデル化する。能動的な攻撃ではない</td></tr><tr><td>悪意ある（能動的）</td><td>不正な当事者はプロトコルから任意に逸脱し得る</td><td>最も強力かつ現実的な脅威モデル。あらゆる攻撃に対するセキュリティを保証する</td></tr><tr><td>カバート</td><td>敵対者は悪意ある挙動をとり得るが、指定された確率で検出される</td><td>検出が現実的な罰則を伴うシナリオをモデル化し、説明責任を通じて攻撃を抑止する</td></tr></tbody></table></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="不正化戦略">不正化戦略<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E4%B8%8D%E6%AD%A3%E5%8C%96%E6%88%A6%E7%95%A5" class="hash-link" aria-label="不正化戦略 への直接リンク" title="不正化戦略 への直接リンク" translate="no">​</a></h3><div class="tableWrapper_Bxyi"><table class="table_M6U2 striped_dSTW"><thead><tr><th>戦略</th><th>説明</th><th>モデル化の対象</th></tr></thead><tbody><tr><td>静的な不正化</td><td>不正な当事者の集合はプロトコル実行の開始前に固定される</td><td>事前に定められた内部脅威</td></tr><tr><td>適応的な不正化</td><td>敵対者は、観測したトランスクリプトに基づき実行中に当事者を不正化し得る</td><td>システムに侵入する外部のハッカー、または実行途中で挙動を変える当事者</td></tr><tr><td>プロアクティブセキュリティ</td><td>当事者は不正化され、その後回復（再び正直になる）し得る</td><td>侵害が発見されシステムがクリーンアップされる状況。限られた期間だけマシンを制御する敵対者に対してセキュリティが保証される</td></tr></tbody></table></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="基本的な実現可能性の結果">基本的な実現可能性の結果<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E5%AE%9F%E7%8F%BE%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%AE%E7%B5%90%E6%9E%9C" class="hash-link" aria-label="基本的な実現可能性の結果 への直接リンク" title="基本的な実現可能性の結果 への直接リンク" translate="no">​</a></h2><div class="admonition_zNgJ tip_G4q0"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9.5 18h5M10.5 21h3"></path><path d="M12 3a6 6 0 0 0-3.8 10.6c.7.6 1.1 1.2 1.2 2.4h5.2c.1-1.2.5-1.8 1.2-2.4A6 6 0 0 0 12 3z"></path></g></svg></span><span class="admonitionTitle_sgYr">ヒント</span></div><div class="admonitionContent_l7fb">注目すべきことに、MPCは適切な条件のもとで、<strong>あらゆる計算可能な関数</strong>に対して実現可能です。</div></div><div class="tableWrapper_Bxyi"><table class="table_M6U2 striped_dSTW"><thead><tr><th>閾値</th><th>特性</th><th>要件</th></tr></thead><tbody><tr><td>正直者多数（t &lt; n/3）</td><td>完全な公平性と出力配信の保証。計算量的または情報理論的なセキュリティ。</td><td>認証済みチャネルのみ（情報理論的な場合はプライバシーも）</td></tr><tr><td>正直者多数（t &lt; n/2）</td><td>公平性と配信の保証。計算量的および情報理論的の両方の変種。</td><td>1対1のチャネルに加えてブロードキャストチャネル</td></tr><tr><td>正直者多数なし（t &gt;= n/2）</td><td>「アボート付き」のセキュリティ。敵対者は出力を知りつつ、正直な当事者にはそれを拒否し得る。</td><td>一部の関数に固有の制約（例：公平なコイン投げは2者間では不可能）</td></tr></tbody></table></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="中核的な手法">中核的な手法<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E4%B8%AD%E6%A0%B8%E7%9A%84%E3%81%AA%E6%89%8B%E6%B3%95" class="hash-link" aria-label="中核的な手法 への直接リンク" title="中核的な手法 への直接リンク" translate="no">​</a></h2><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="shamir秘密分散">Shamir秘密分散<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#shamir%E7%A7%98%E5%AF%86%E5%88%86%E6%95%A3" class="hash-link" aria-label="Shamir秘密分散 への直接リンク" title="Shamir秘密分散 への直接リンク" translate="no">​</a></h3><p>多項式補間を用いた正直者多数MPCの基本的な構成要素です。</p><div class="stepsContainer_lWWy"><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">セットアップ</h4><div class="stepBody_NYqc">秘密sを閾値t+1でn者に分散するには、q(0) = s を満たす次数tのランダムな多項式q(x)を選びます。当事者iにシェア y_i = q(i) を渡します。</div></div></div><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">復元</h4><div class="stepBody_NYqc">任意のt+1者がq(x)を補間しq(0)を計算することで、sを復元できます。</div></div></div><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">セキュリティ</h4><div class="stepBody_NYqc">t者以下ではsについて何も学べません（情報理論的にセキュア）。これは、t+1個の点が次数tの多項式を一意に定めるという事実に基づいています。</div></div></div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="正直者多数mpcプロトコル">正直者多数MPCプロトコル<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E6%AD%A3%E7%9B%B4%E8%80%85%E5%A4%9A%E6%95%B0mpc%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" class="hash-link" aria-label="正直者多数MPCプロトコル への直接リンク" title="正直者多数MPCプロトコル への直接リンク" translate="no">​</a></h3><p>秘密分散を用いることで、当事者は算術回路をセキュアに評価できます。</p><div class="collapsible_PHgU undefined"><button class="collapsibleHeader_UXly"><span class="collapsibleIcon_juN8">▼</span><span>フェーズ1：入力の分散</span></button><div class="collapsibleContent_IR7E"><p>各当事者は、(t+1)-out-of-n のShamir分散を用いて自らの入力を分散します。このフェーズの後、当事者はすべての入力ワイヤ値のシェアを保持します。</p></div></div><div class="collapsible_PHgU undefined"><button class="collapsibleHeader_UXly"><span class="collapsibleIcon_juN8">▼</span><span>フェーズ2：回路の評価</span></button><div class="collapsibleContent_IR7E"><p><strong>加算ゲート：</strong> 各当事者はローカルに自らのシェアを加算します。シェアが多項式a(x)とb(x)を表す場合、当事者iは c(i) = a(i) + b(i) を計算します。これは c(0) = a(0) + b(0) を満たす c(x) = a(x) + b(x) を定義します。<strong>通信は不要です！</strong></p><p><strong>乗算ゲート：</strong> 次数の増加のため、より複雑になります。当事者iは c(i) = a(i) x b(i) を計算し、次数2tの多項式（次数tではない）が得られます。0における値を保ちつつ次数を下げるため、追加のランダム分散と通信を用いた<strong>次数削減</strong>ステップが必要です。</p></div></div><div class="collapsible_PHgU undefined"><button class="collapsibleHeader_UXly"><span class="collapsibleIcon_juN8">▼</span><span>フェーズ3：出力の復元</span></button><div class="collapsibleContent_IR7E"><p>当事者は出力ワイヤのシェアを指定された受信者に送信します。受信者は多項式補間によって出力を復元します。</p></div></div><div class="admonition_zNgJ note_lCc4"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"></circle><path d="M12 11v5"></path><circle cx="12" cy="8" r="0.6" fill="currentColor" stroke="none"></circle></g></svg></span><span class="admonitionTitle_sgYr">注記</span></div><div class="admonitionContent_l7fb">この洗練されたアプローチは、セミオネストな敵対者に対するセキュリティを達成します。悪意あるセキュリティには、不正を検出し防止するための追加の仕組みが必要です。</div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="プライベート集合積psi">プライベート集合積（PSI）<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E9%9B%86%E5%90%88%E7%A9%8Dpsi" class="hash-link" aria-label="プライベート集合積（PSI） への直接リンク" title="プライベート集合積（PSI） への直接リンク" translate="no">​</a></h3><p>PSIは、集合XとYを持つ2者が、他の要素を明かすことなく X ∩ Y を計算したいという、特殊なMPC問題です。</p><div class="stepsContainer_lWWy"><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">鍵生成</h4><div class="stepBody_NYqc">当事者1が疑似乱数関数Fのための鍵kを選びます</div></div></div><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">Oblivious PRF</h4><div class="stepBody_NYqc">当事者はoblivious PRF評価を実行します。当事者1は k を入力し、当事者2は各要素 y_i を入力します。当事者2は F_k(y_i) を知りますが、kについては何も知りません。</div></div></div><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">交換</h4><div class="stepBody_NYqc">当事者1は、自らの集合内のすべての x_j について F_k(x_j) を送信します</div></div></div><div class="step_CZtC"><div class="stepIndicator_erWG"><div class="stepNumber_KdFz"></div><div class="stepLine_mFHR"></div></div><div class="stepContent_swKV"><h4 class="stepTitle_tOzr">照合</h4><div class="stepBody_NYqc">当事者2は一致を見つけます。F_k(y_i) が F_k(x_j) 値の集合に含まれる y_i を出力します</div></div></div></div><div class="admonition_zNgJ tip_G4q0"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M9.5 18h5M10.5 21h3"></path><path d="M12 3a6 6 0 0 0-3.8 10.6c.7.6 1.1 1.2 1.2 2.4h5.2c.1-1.2.5-1.8 1.2-2.4A6 6 0 0 0 12 3z"></path></g></svg></span><span class="admonitionTitle_sgYr">ヒント</span></div><div class="admonitionContent_l7fb">PRFの出力はランダムに見えるため、積集合に含まれない要素を隠します。最新のPSIプロトコルは、数百万の要素を数秒で処理します。</div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="閾値暗号">閾値暗号<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E9%96%BE%E5%80%A4%E6%9A%97%E5%8F%B7" class="hash-link" aria-label="閾値暗号 への直接リンク" title="閾値暗号 への直接リンク" translate="no">​</a></h3><p>閾値暗号は、いずれか単一の当事者が完全な秘密鍵を保持することなく、暗号演算（署名、復号）を可能にします。</p><div class="collapsible_PHgU"><button class="collapsibleHeader_UXly"><span class="collapsibleIcon_juN8">▶</span><span>2者間RSAの例</span></button></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="モジュラー合成">モジュラー合成<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%A9%E3%83%BC%E5%90%88%E6%88%90" class="hash-link" aria-label="モジュラー合成 への直接リンク" title="モジュラー合成 への直接リンク" translate="no">​</a></h2><p>セキュアMPCの重要な特性の一つが<strong>モジュラー合成</strong>です。セキュアであることが証明されたプロトコルは、より大規模なシステムにおいてサブルーチンとして安全に利用できます。</p><div class="tableWrapper_Bxyi"><table class="table_M6U2 striped_dSTW"><thead><tr><th>種類</th><th>条件</th><th>保証</th></tr></thead><tbody><tr><td>逐次合成</td><td>MPCプロトコルは他のプロトコルからの並行メッセージなしに実行される</td><td>より大規模なシステムでもセキュリティが保たれる。モジュラーな設計を可能にする。MPCは信頼された第三者の抽象として扱われる。</td></tr><tr><td>並行合成（UC）</td><td>複数のプロトコルインスタンスが同時に実行される</td><td>ユニバーサル合成可能性（UC）は最も強力な保証を提供する。UCセキュアなプロトコルは、並行実行に関わらずセキュアであり続ける。ゴールドスタンダードだが、効率面のコストを伴う。</td></tr></tbody></table></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="実用上の考慮事項">実用上の考慮事項<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E5%AE%9F%E7%94%A8%E4%B8%8A%E3%81%AE%E8%80%83%E6%85%AE%E4%BA%8B%E9%A0%85" class="hash-link" aria-label="実用上の考慮事項 への直接リンク" title="実用上の考慮事項 への直接リンク" translate="no">​</a></h2><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="効率の進展">効率の進展<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E5%8A%B9%E7%8E%87%E3%81%AE%E9%80%B2%E5%B1%95" class="hash-link" aria-label="効率の進展 への直接リンク" title="効率の進展 への直接リンク" translate="no">​</a></h3><p>過去10年で、MPCは理論的な珍しいものから実用的なツールへと変貌を遂げました。</p><div class="cardGrid_Hphi" style="--columns:2"><div class="card_APvt"><h4 class="cardTitle_h0_3">アルゴリズムの改善</h4><p class="cardDescription_DG99">優れたプロトコル設計により、暗号のオーバーヘッドを桁違いに削減する</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">ハードウェアの最適化</h4><p class="cardDescription_DG99">AES-NIやその他の専用命令を活用し、暗号演算を高速化する</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">専用コンパイラ</h4><p class="cardDescription_DG99">高水準のコードを最適化された回路に変換する。コストの高いANDゲートを最小化しつつ、コストの低いXORゲートを許容する</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">通信の最適化</h4><p class="cardDescription_DG99">帯域幅の要件を削減し、前処理技術を用いて計算をオフラインに移す</p></div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="実世界での導入">実世界での導入<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E5%AE%9F%E4%B8%96%E7%95%8C%E3%81%A7%E3%81%AE%E5%B0%8E%E5%85%A5" class="hash-link" aria-label="実世界での導入 への直接リンク" title="実世界での導入 への直接リンク" translate="no">​</a></h3><div class="cardGrid_Hphi" style="--columns:3"><div class="card_APvt"><h4 class="cardTitle_h0_3">ボストン賃金格差調査</h4><p class="cardDescription_DG99">114社にまたがる166,705人の従業員を分析。個々の給与を明かすことなく、男女間の賃金統計を計算。社会貢献のためのMPC。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">Google広告コンバージョン</h4><p class="cardDescription_DG99">広告を表示された人々と実際の購入者との積集合を計算。正確なコンバージョン指標を可能にしつつ、ユーザーのプライバシーを保護する。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">暗号鍵の保護</h4><p class="cardDescription_DG99">エンタープライズ向け鍵管理のための閾値暗号。単一障害点なしに署名鍵を保護する。暗号資産カストディやPKIで利用される。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">エストニア政府</h4><p class="cardDescription_DG99">税務記録と教育記録を組み合わせ、学生の就労への影響を分析。プライバシーと規制遵守を維持した。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">プライバシー保護機械学習</h4><p class="cardDescription_DG99">暗号化されたデータに対する機械学習。金融機関横断のマネーロンダリング対策。データを共有しないリスク評価。</p></div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="重要な注意点">重要な注意点<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E9%87%8D%E8%A6%81%E3%81%AA%E6%B3%A8%E6%84%8F%E7%82%B9" class="hash-link" aria-label="重要な注意点 への直接リンク" title="重要な注意点 への直接リンク" translate="no">​</a></h2><div class="admonition_zNgJ warning_XPlw"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 2 20h20L12 3z"></path><path d="M12 10v4"></path><circle cx="12" cy="17" r="0.6" fill="currentColor" stroke="none"></circle></g></svg></span><span class="admonitionTitle_sgYr">警告</span></div><div class="admonitionContent_l7fb"><strong>ゴミを入れればゴミが出る（Garbage In, Garbage Out）：</strong> MPCはプロセスをセキュアにしますが、当事者が誤った値を入力するのを防ぐことはできません。アプリケーションのセキュリティが入力の正しさに依存する場合、追加の仕組みが必要です。すなわち、署名検証を伴う署名付き入力、入力の正当性に関する範囲証明やゼロ知識証明、あるいはアウトオブバンドの入力検証などです。</div></div><div class="admonition_zNgJ caution_dYPG"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 2 20h20L12 3z"></path><path d="M12 10v4"></path><circle cx="12" cy="17" r="0.6" fill="currentColor" stroke="none"></circle></g></svg></span><span class="admonitionTitle_sgYr">注意</span></div><div class="admonitionContent_l7fb"><strong>出力は情報を明かす：</strong> MPCは計算を保護しますが、関数の出力そのものは保護しません。例：2つの給与の平均を計算すると、自分自身の給与を知っている場合、もう一方の人物の給与が明らかになります。関数の設計にあたっては、出力からのプライバシー漏洩を考慮しなければなりません。</div></div><h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="パフォーマンスのトレードオフ">パフォーマンスのトレードオフ<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%81%AE%E3%83%88%E3%83%AC%E3%83%BC%E3%83%89%E3%82%AA%E3%83%95" class="hash-link" aria-label="パフォーマンスのトレードオフ への直接リンク" title="パフォーマンスのトレードオフ への直接リンク" translate="no">​</a></h3><div class="tableWrapper_Bxyi"><table class="table_M6U2 striped_dSTW"><thead><tr><th>要因</th><th>影響</th></tr></thead><tbody><tr><td>レイテンシ</td><td>平文計算に比べてしばしば10〜1000倍遅い</td></tr><tr><td>帯域幅</td><td>暗号プロトコルは相当量の通信を必要とする</td></tr><tr><td>メモリ</td><td>一部のプロトコルは中間値のために大きなストレージを必要とする</td></tr></tbody></table></div><div class="admonition_zNgJ note_lCc4"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"></circle><path d="M12 11v5"></path><circle cx="12" cy="8" r="0.6" fill="currentColor" stroke="none"></circle></g></svg></span><span class="admonitionTitle_sgYr">注記</span></div><div class="admonitionContent_l7fb">これらのコストは低下しつつありますが、一部のアプリケーションでは依然として無視できません。</div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="mpcの未来">MPCの未来<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#mpc%E3%81%AE%E6%9C%AA%E6%9D%A5" class="hash-link" aria-label="MPCの未来 への直接リンク" title="MPCの未来 への直接リンク" translate="no">​</a></h2><p>MPCは、研究における「長期戦」を体現しています。純粋な理論から実用的な導入へと、30年以上をかけて歩んできました。</p><div class="cardGrid_Hphi" style="--columns:3"><div class="card_APvt"><h4 class="cardTitle_h0_3">近年の進展</h4><p class="cardDescription_DG99">数桁に及ぶパフォーマンスの改善。成熟した実装とツール。産業界での採用拡大と標準化の取り組み。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">残された課題</h4><p class="cardDescription_DG99">非専門家にとってMPCを利用しやすくすること。非常に大規模なデータセットを効率的に扱うこと。複雑な計算を経済的にサポートすること。</p></div><div class="card_APvt"><h4 class="cardTitle_h0_3">有望な方向性</h4><p class="cardDescription_DG99">MPCと他の技術を組み合わせるハイブリッドなアプローチ。ハードウェアアクセラレーションと専用チップ。より優れたコンパイルと最適化のツール。</p></div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="結論">結論<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E7%B5%90%E8%AB%96" class="hash-link" aria-label="結論 への直接リンク" title="結論 への直接リンク" translate="no">​</a></h2><p>セキュアマルチパーティ計算は、理論的な可能性から実用的な現実へと進化しました。理想／現実パラダイムによって形式化されたその強力なセキュリティ保証は、あたかも腐敗し得ない信頼された第三者が計算を実行しているかのようにプロトコルが振る舞うことを保証します。効率性と使いやすさの継続的な進歩により、MPCはますますデータ駆動型となる世界において、プライバシーを保護する計算のための不可欠なツールとなりつつあります。</p><div class="admonition_zNgJ important_f6Ia"><div class="admonitionHeader_ar4V"><span class="admonitionIcon_jBjv"><svg viewBox="0 0 24 24" style="width:1em;height:1em;display:inline-block;vertical-align:-0.135em;flex-shrink:0" aria-hidden="true"><g fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3 2 20h20L12 3z"></path><path d="M12 10v4"></path><circle cx="12" cy="17" r="0.6" fill="currentColor" stroke="none"></circle></g></svg></span><span class="admonitionTitle_sgYr">重要</span></div><div class="admonitionContent_l7fb">核心となる洞察はシンプルでありながら強力です。すなわち、<strong>あらゆる計算は秘密の入力に対してセキュアに実行できる</strong>ということです。唯一の問題は効率性であり、その問いは年を追うごとにますます多くのアプリケーションに対して肯定的に答えられつつあります。</div></div><h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="参考文献">参考文献<a href="https://your-docusaurus-site.example.com/ja/blog/understanding-mpc-theory#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE" class="hash-link" aria-label="参考文献 への直接リンク" title="参考文献 への直接リンク" translate="no">​</a></h2><div class="collapsible_PHgU"><button class="collapsibleHeader_UXly"><span class="collapsibleIcon_juN8">▶</span><span>学術参考文献全文（37本）</span></button></div><hr><p><em>本記事は、Yehuda Lindell著「Secure Multiparty Computation」（初出：Communications of the ACM、2021年1月、Vol. 64, No. 1、86〜96ページ）に基づいています。</em></p><div class="seeAlso_zQPr"><h4 class="seeAlsoTitle_ptHZ">関連項目</h4><ul class="seeAlsoList_fcRD"><li><a href="https://duokey.com/technology/mpc" target="_blank" rel="noopener noreferrer"><span class="externalIcon_GyYs">↗</span>DuoKey MPC Platform</a></li><li><a href="https://support.duokey.cloud/" target="_blank" rel="noopener noreferrer"><span class="externalIcon_GyYs">↗</span>DuoKey サポート</a></li><li><a href="https://cacm.acm.org/" target="_blank" rel="noopener noreferrer"><span class="externalIcon_GyYs">↗</span>Communications of the ACM</a></li></ul></div></div>]]></content:encoded>
            <category>MPC</category>
            <category>Cryptography</category>
            <category>Security</category>
            <category>Privacy</category>
            <category>Theory</category>
        </item>
    </channel>
</rss>