定理(ShortSignature)の証明のアイデア
検証鍵 vk = (g1, g2, v = g2x)のもとで、σ*がm*の妥当な署名であるためには、
でなければならない。
署名オラクルから、高々(q-1)個のメッセージmiの署名について
をもらっても、q-強DH問題が困難であるならば、σ* = g11/(x+m*)を計算することはむずかしそう。
なぜならば、
予め指定された mi の g11/(x+mi*) ならば(i=1..(q-1))、
を用いて計算できるから。
定理(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