定理(ShortSignatureFull)の証明のアイデア
検証鍵 vk = (g1, g2, u = g2x, v = g2y)のもとで、
(σ*,r*)がm*のShortSignatureFullによる妥当な署名であるためには、
でなければならない。
このとき、σ* はメッセージ 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,...,wqS ← Zp* を署名を要求するメッセージとしてチャレンジャーに送る。
- チャレンジャーから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,...,wqS ← Zp* を署名を要求するメッセージとしてチャレンジャーに送る。
- チャレンジャーから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