定理(FS変換)の証明のアイデア

キャノニカルプロトコルID = (K, P, V = (ChSet,DEC))をフィアット・シャミア変換して得られる
署名スキーム FSH(ID) について、メッセージ m の署名σ=(CMT, RSP)は
  • DECpk(CMT, CH=H(CMT, m), RSP)
を満たさなければならない。

ランダムオラクルモデルのもとでは、偽造者がm(やCMT)を選べたとしても、
H(m,CMT)は(mやCMTとは独立に)ランダムに選択される。

よって、うえのようなσを生成するには、ランダムなチャレンジCHについて、
DECpk(CMT, CH, RSP)をみたすレスポンスRSPを生成するしかない。

これは(受動的に)安全なキャノニカルプロトコルIDに対しては無理。

定理(FS変換)の証明

キャノニカルプロトコルID = (K, P, V = (ChSet,DEC)) についての、
構成(FS変換)FSH(ID)に対する任意の効率的な偽造者をFとする。
Fの署名クエリ回数の上限をqS、Hオラクルへのクエリ回数の上限をqHとする。
一般性を失わず、
  • FはHオラクルに同一の問い合わせを2回以上は行わない。
  • Fは署名オラクルにmを問い合わせるとき、(あるCMTについて)事前に(CMT,m)をHオラクルに問い合わせている
  • Fは署名の偽造(m', σ'=(CMT',RSP')) を出力するとき、事前に(CMT', m')をHオラクルに問い合わせている
としてよい。(Fにとって有利な設定)

偽造者Fを用いて、キャノニカルプロトコルIDに対する、受動的攻撃者Aを構成する。
攻撃者A: 公開鍵 pk を入力として、
  • ※ Aの目的は 対応する秘密鍵skの証明者になりすますこと。
  • 連想記憶H[]を初期化する。 t ← [1..qH]
  • トランスクリプトオラクルからqS個のトランスクリプトを入手する:
    • <tCMT1,tCH1,tRSP1>, ... , <tCMTqS,tCHqS,tRSPqS>.
    • ※ DECpk(tCMTj, tCHj, tRSPj) = 1.  (j=1..qS)
  • vk=pkを入力としてFを起動する。
    • FからHオラクルに対するk番目の問い合わせ (CMTk,mk) を受け取ったら(1≦k≦qH)、
      • k = t ならば、
        • CMT* = CMTt を自身のコミットとして外部の検証者Vに送る。
        • 外部の検証者Vからチャレンジ CH* を受け取り、H[CMT*, m*] = CH* とし(m* = mt)、CH*をFに応答する。
        • ※ H(CMT*, m*) = CH*
      • k ≠ t ならば、
        • H[CMTk,mk] ← ChSet とし、H[CMTk,mk]をFに応答する。
    • Fから署名オラクルに対する j 番目の問い合わせmjを受け取ったら、
      • H[tCMTj, mj]がすでに定義されていたら、アボートする。(アボート1)
      • そうでないならば、H[tCMTj, mj] = tCHjとし、(tCMTj, tRSPj)をFに応答する。
      • ※ DECpk(tCMTj, tCHj, tRSPj) = 1.
  • Fが出力 (m', (CMT', RSP')) で停止したら、
    • (CMT', m') = (CMTk, mk) となるkを検索する。
    • k ≠ t ならば、アボートする。(アボート2)
    • k = t ならば、RSP'を外部の検証者Vに送信して停止する。
    • ※ Fの出力が正しければ、RSP'は DECpk(CMT'=CMT*, CH*=H(CMT*,m*), RSP') = 1 をみたす.

攻撃者Aの解析
  • アボート1が起きないとき、Aによる署名オラクルのシミュレーションは完ぺきである。
  • アボート2 と Fが偽造に成功するイベントは独立。
  • アボート2が起きないとき、Fが偽造に成功していれば、Aは証明者P(sk)になりすます。

以上より、
  • Pr[Aがなりすましに成功] ≧ Pr[Fが偽造に成功 ∧ ¬アボート2 ∧ ¬アボート1]
  • ≧ Pr[Fが偽造に成功 ∧ ¬アボート2] - Pr[アボート1]
  • = Pr[Fが偽造に成功] Pr[¬アボート2] - Pr[アボート1]
  • = Pr[Fが偽造に成功] 1/qH - Pr[アボート1].

IDのコミットメント長が十分長いとの仮定より、Pr[アボート1]はネグリジブル。
IDは受動的攻撃に対し安全なので最左辺はネグリジブル。
よって、Pr[Fが偽造に成功]もネグリジブル。

Q.E.D.

















最終更新:2009年11月25日 15:59