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

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

署名オラクルから、高々(q-1)個のメッセージmiの署名について
  • σi = g11/(x+mi*)
をもらっても、q-強DH問題が困難であるならば、σ* = g11/(x+m*)を計算することはむずかしそう。

なぜならば、
予め指定された mi の g11/(x+mi*) ならば(i=1..(q-1))、
  • g2(xi)  (i = 0, 1,..., q)
を用いて計算できるから。

定理(ShortSignature)の証明

ある偽造者AがShortSignatureを (t, qS, ε)-break するとする。
Aを用いて双線形群(G1 , G2)上の(q,t',ε)-強DH仮定を破るアルゴリズムBを構成する:

アルゴリズムB: (g1,A0,A1,...,Aq)を入力として
  • ※ Ai = g2(xi)  (i = 0, 1,..., q)
  • ※ あるc≠0について、g11/(x+c)を求めたい。
  • 1n を入力としてAを起動し、メッセージm1,m2,...,mqSを受け取る。
    • qS = q - 1 としてよい。(必要ならBがAの代わりにメッセージを生成する。)
  • 受け取ったメッセージmiたちに合わせて、検証鍵vkを作成する:
    • yを不定元として、(q-1)次多項式 f(y) = Πi=1..(q-1) (y + mi) = Σi=0..(q-1) αiyi を計算。
    • これらαiを用いて、群要素 g2' = Πi=0..(q-1)Aiαi を計算。
      • ※ g2' = g2f(x) = g2Π(x+mi).
      • ※ 後に見るように g2'の1/(x+mi)乗は計算できる!
    • さらに、群要素 h = Πi=1..qAiαi-1 を計算。
      • ※ h = g2xf(x) = (g2')x.
      • ※ つまり、xを知らないのにg2'をx乗できた。
    • g1' = Ψ(g2')
    • ※ g1' = g1f(x).
  • vk = (g1', g2', h) をAに送る(これは sk = x を陰に定義)。さらに、
  • i ∈ [1..(q-1)] :
    • (q-2)次多項式 fi(y) = f(y) / (y + mi) = Σj=0..(q-2) βjyj を計算。
    • これらβjを用いて、群要素 Si = Πj=0..(q-2)Ajβj を計算。
    • ※ Si = g2fi(x) = (g2')1/(x+mi).
    • σi = Ψ(Si)
    • ※ σi = (g1')1/(x+mi).
  • σ1, ... ,σq-1をAに送る。
  • Aが出力(m*, σ*)で停止したら、
    • 多項式 f(y) を (y+m*) で割り算し、余り γ-1 を求める:  f(y) = γ(y) (y+m*) + γ-1.
      • (q-2)次多項式 γ(y) の各係数を γi とする: γ(y) = Σi=0..(q-2)γiyi.
      • ※ m* はどのmiとも異なるので、γ-1 ≠ 0.
    • これらγi-1を用いて、群要素 w = (σ* Πi=0..(q-2)Ψ(Ai)i)1/γ-1 を計算。
      • ※ (m*,σ*)が正しければ、wγ-1 = (g1')1/(x+m*) Ψ(g2-γ(x)).
      • ※ 両辺をγ乗して、w = g1(f(x)/(x+m*) - γ(x))/γ-1 = g11/(x+m*).
    • (m*, w)を出力して停止。

アルゴリズムBの解析
  • BのAに対する署名オラクル(その他)のシミュレーションは完ぺき。よって成功確率はε。
  • time(B) = time(A) + O(q2) ≦ t + O(q2) ≦ t'
    • 各メッセージmiについて、O(q).  (i=1..q)

Q.E.D.










最終更新:2009年10月29日 19:41