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

検証鍵 vk = (g1, g2, u = g2x, v = g2y)のもとで、
(σ*,r*)がm*のShortSignatureFullによる妥当な署名であるためには、
  • σ* = g11/(x+m*+yr*)
でなければならない。

このとき、σ* はメッセージ w* = m* + yr* の(ベーススキームである)ShortSignatureの署名となっている。
  • w* が fresh ならば、ShortSignatureが破られている。
  • w* が non-fresh ならば、ある署名オラクルへの問い合わせ(mi, (σi, ri))について、
    • m* + yr* = mi + yri より
    • 離散対数 y = (m* - mi) / (ri - r*) が計算できてしまう。

定理(ShortSignatureFull)の証明

ShorSignatureが非適応的選択文書攻撃で安全であるならば、
ShortSignatureFullは適応的選択文書攻撃で安全であることを示せばよい。

ある偽造者AがShortSignatureFull Ωを (t, qS, ε)-break するとする。

CMAΩ,A(n)において、
  • Fは第i回目の署名クエリとして mi を発し、その応答として(σi,ri)を得た。(wi := mi + y ri)
  • Fは (m*, (σ*, r*)) をメッセージと偽造署名の組として出力した。(w* := m* + y r*)
とする。

Type1 : 『ある j について mj = -x』 OR 『どんな i についても w* ≠ wi
Type2 : 『どんな j についても、mj ≠ -x』 AND 『ある i について w* = wi

(Type1の偽造が発生するならば)
Aを用いてShortSignatureを非適応的選択文書攻撃で破る偽造者B1を構成する:

偽造者B1: 1nを入力として、
  • ※ B1の目的はShortSignatureを非適応的に偽造すること。
  • w1,...,wqSZp* を署名を要求するメッセージとしてチャレンジャーに送る。
  • チャレンジャーからvk=(g1,g2,u), σ1,...,σqSを受け取る。
  • ※ e(σi, ug2wi) = e(g1, g2).
  • y ← Zp*, vk = (g1, g2, u, v=g2y)
  • vkを入力として偽造者Aを起動する。
    • Aから i 番目の署名クエリ m=mi を受け取ったら、
    • g2-m =? u : Bはvkの秘密鍵x=-mを入手したので、どのようにもShortSignatureを偽造可能。
    • else ri = (wi - m) / y
      • ri = 0 ならばアボート。そうでないならば、(σi, ri)を返答する。
      • ※ e(σi, ug2m(g2y)ri ) = e(σi, ug2wi) = e(g1, g2).
  • Aが出力(m*, σ*, r*)で停止したら、
    • (w* = m* + y r*, σ*) を出力して停止。
    • ※ e(σ*, ug2w*) = e(σ*, ug2m*vr*) = e(g1, g2).
    • ※ Type1の仮定より、w* ≠ wi (∀i).

攻撃者B1の解析
  • アボートが起きなければ、Aに対するシミュレーションは完ぺき。
  • アボートが起きる確率は qS / p.
  • ケース仮定より、どんな i についても w* ≠ wi。よって、B1の偽造は存在的偽造として妥当。

以上より、
  • Pr[B1が偽造に成功 | Type1] = ε - qS/p.

(Type2の偽造が発生するならば)
Aを用いてShortSignatureを非適応的選択文書攻撃で破る偽造者B2を構成する:

偽造者B2: 1nを入力として、
  • ※ B2の目的はShortSignatureを非適応的に偽造すること。
  • w1,...,wqSZp* を署名を要求するメッセージとしてチャレンジャーに送る。
  • チャレンジャーからvk=(g1,g2,u), σ1,...,σqSを受け取る。
  • ※ e(σi, ug2wi) = e(g1, g2).
  • x ← Zp*, vk = (g1, g2, g2x, u)  ※ u = g2y
  • vkを入力として偽造者Aを起動する。
    • Aからi番目の署名クエリm=miを受け取ったら、
      • ri = (x + m) / wi とし、(σi1/ri, ri)を返答する。
      • ※ e(σi1/ri, g2xg2muri ) = e(σi1/ri, g2riwiuri) = e(σi, g2wiu) = e(g1, g2).
  • Aが出力(m*, σ*, r*)で停止したら、
    • g2m* ur* = g2mi uri となるiを検索する。
    • ※ Type2の仮定より、そのような i は存在する。
    • 署名鍵xとy = (m* - mi) / (ri - r*) (= logg2(u)) を用いてどのようにもShortSignatureを偽造可能。

攻撃者B2の解析
  • ケース仮定より、上のような i (wi = w*となるi)は必ず見つかる。

よって、
  • Pr[B2が偽造に成功 | Type2] = 1.

Q.E.D.














最終更新:2009年10月29日 16:36