定理(InfCom)の証明のアイデア
あるプロトコルπが機能FCOMを安全に実現するならば、
- ある環境ZCにおいてダミー攻撃者によるREAL(なプロトコルπの実行)をエミュレートするシミュレータSが存在しなければならない。
- そのシミュレータSを、別のある環境ZRのもとで、ある攻撃者ARが利用するとエミュレート不可能なREALが存在してしまう。
定理(InfCom)の証明
あるプロトコルπが機能FCOMを安全に実現するとする。
まず、以下の環境ZCを構成する。
環境ZC:
- 攻撃者にパーティCのコラプトを指示。
- b ← {0,1}
- 攻撃者をダミー攻撃者として用いて、Cの名前で、パーティRに値bを(プロトコルπを用いて)コミットする。
- Rが Receipt を出力するのを確認し、攻撃者をダミー攻撃者として用いて、Cの名前で、パーティRに値bをオープンする。
- Rの出力 b' を得て、b =? b' を出力する。
明らかに、REALでは、ZCは常に1を出力する。
πは機能FCOMを安全に実現するので、あるシミュレータSが存在し、
- SはFCOMとやり取りしながら、ZCにネグリジブルな例外を除いて1を出力させる。
このとき、FCOMは、コミットメントとして、コミットメント対象の値そのものしか受け取らないので、
- (Cをコラプトした)Sは、ZCのコミットメントから正しい値bを抽出していなければならない。
このSを用いて、以下の攻撃者ARを構成する。
攻撃者AR:
- (環境からの指示に従い)Rをコラプトする。
- (Rの立場で)Cからのコミットメントを受け取る。
- このとき、内部でSを起動し、受け取ったメッセージをSに中継する。(Sに対してZCとして振る舞う。)
- Sが値b' を抽出したら、b' を環境に渡す。
以下の環境ZRを考える。
環境ZR:
- 攻撃者にパーティRのコラプトを指示する。
- b ← {0,1}
- パーティCに b へのコミットを指示する。
- 攻撃者から値b' を受け取り、b =? b' を出力する。
[ZRの解析]
- AR内部のSの抽出機能のため、REALでは、ZRはほぼ常に1を出力する。
- ところが、FCOMは、コミットメントフェーズにおいて、Receiptしか出力しない。(Receiptにはbの情報は全く含まれない。)
- よって、IDEALでは、任意のシミュレータについて、ZRが1を出力する確率は1/2である。
- よって、イデアルプロセスでどのようなシミュレータを用いても、ZRはREAL/IDEALを識別する。
- これは、πが機能FCOMをUC実現することに矛盾する。
Q.E.D.
最終更新:2010年01月26日 17:59