定理(UC)の証明のアイデア

ρがφをUC模倣しているとき、πρ/φがπをUC模倣することを示したい。

πが呼び出す複数のφインスタンスのうち、
ある一つのφインスタンスを除いた残りのすべてのインスタンスの実行を
環境のなかに取り込む。

そのように拡大してできた環境に対する、ρによるφのUC模倣性は、
πρ/φによるπのUC模倣性を意味する。

定理(UC)の証明

ρがφをUC模倣しているとする。πρ/φがπをUC模倣することを示したい。
(以下、πρ/φをπρと略記する。)
それには、補題(DummyA)より、
あるシミュレータAπがあって、どのような環境Zにおいても、πをπρに見せることを示せばよい:
  • EXECπ,Aπ,Zc EXECπρ,Z.  (∀Z)
(一般に、EXECπ,Z := EXECπ,Aε,Zとかく。Aεはダミー攻撃者)

ρはφをUC模倣しているので、
あるシミュレータSがあって、どのような環境Zρにおいても、φをρに見せる
  • EXECφ,S,Zρc EXECρ,Zρ.  (∀Zρ

このSを用いて目的の(πをπρに見せる)シミュレータAπを構成する。

Aπ:
  • [Zから] Zから入力(m, id=(sid, pid), c)を受け取ると、 
    • ※ Zはダミー攻撃者とπρを実行しているつもり。
    • ※ sidがπ内の何番目のρかを指定。
    • コードcがプロトコルρを表すならば、(m, id)をSsid(sidに対応するシミュレータS)に渡す。
    • (まだSsidがZ内に存在しないなら、(m, id)を入力としてSsidを起動する。)
    • そうでなければ、 mをパーティPidに送る。
  • [パーティから] パーティまたはサブパーティからメッセージmを受け取ったら、
    • 送信者がサブパーティφsid,pidならば、mをSsidに送る。
    • そうでなければ、 m を Z に渡す。
  • [内部Ssidから]
    • 内部Ssidがサブパーティにメッセージを送ったら、そのままサブパーティに送る。
    • 内部SsidがZへの値を出力したら、そのままZに渡す。

矛盾を導くために、あるZについて、Aπがπρのシミュレーションに失敗すると仮定する:
  • EXECπ,Aπ,Zc EXECπρ,Z.

πは高々t個のφインスタンスを呼び出すとし、各l∈[0..t]についてハイブリッドモデルを構成する。

l-ハイブリッド:
  • EXECπ,A,Z(k,z)の実行において、
    • πの呼び出す、最初のl個のφインスタンスへの書き込み要求(値やメッセージ)はそのままφインスタンスに渡す。
    • πの呼び出す、残りの(t-l)個のφインスタンスへの書き込み要求は、(対応する)ρインスタンスに渡す。
  • l-ハイブリッドの出力を EXECπ,A,Zl(k,z)とかく。

Aπに自明な修正を施し(ρインスタンスとのメッセージを、ダミー攻撃者のように、スルーする)、A'πとすると、
  • EXECπ,A'π,Zt ≡ EXECπ,Aπ,Z ※ すべてφインスタンス
  • EXECπ,A'π,Z0 ≡ EXECπρ,Z  ※ すべてρインスタンス.

よって、背理法の仮定より、∃l ∈ [1..t]について、
  • EXECπ,A'π,Zlc EXECπ,A'π,Zl-1
となる。

このlについて、環境Zρを構成する。

Zρ: (z, l)を入力として、
  • Z, A'π, π, φ1, ..., φl-1, ρl+1, ..., ρtを内部で起動し、
  • EXECπ,A'π,Zlの実行をシミュレートする。ただし、
    • l番目のπのサブルーチンインスタンスとのやり取りは、自身の攻撃者とパーティとのやりとりに接続する。

明らかに、
  • EXECφ,S,Zρ(k, (z,l)) ≡ EXECπ,A'π,Zl(k,z)
  • EXECρ,Zρ(k, (z,l)) ≡ EXECπ,A'π,Zl-1(k,z)

よって、
  • EXECφ,S,Zρc EXECρ,Zρ.
これは、Sが任意の環境においてφをρに見せるとの仮定に反する。

Q.E.D.





















最終更新:2010年01月13日 21:21