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

攻撃者Aが構成(LinearTBE)のタグt*、公開鍵
  • pk = (q, g1, g2, z, u1, u2)
に関する暗号文
  • ctbe* = (c*1=g1r1, c*2=g2r2, d1 = zt*r1 u1r1, d2 = zt*r2 u2r2, e = m zr1+r2)
を入手したとする。

判定線形仮定より、上のzr1+r2は群G上のランダムな要素と思ってよい。
よって、ctbe* はmの情報を漏らさない。
  • 厳密には、d1やd2にもr1, r2が含まれるので、この議論は不十分。

攻撃者Aが構成(LinearTEB)の妥当な暗号文 ctbe = (c1, c2, d1, d2, e) を生成できたとする。
  • 正しいd1, d2を計算したのだから、Aはci=giriとなるr1, r2を知っているだろう。
  • そうならば、m = e/zr1+r2なので、
攻撃者Aは最初からmを知っていることとなり、復号オラクルは役に立たないはず。

定理(LinearTBE)の証明

構成(LinearTBE)に対する任意のタグ選択攻撃者をAとする。Aを用いて判定線形仮定における識別者Dを構成する:

識別者D: (g1, g2, z, g1r1, g2r2, w)を入力として、
  • ※ Dはwについて、w=zr1+r2 なのか、それとも独立なランダム要素なのか、識別したい。
  • 1nを入力としてタグ選択攻撃者Aを起動し、ターゲットタグt*を受け取る。
  • γ12Zq, u1 = z-t*g1γ1, u2 = z-t*g2γ2
  • pk = (g1, g2, z, u1, u2)をAに送る。
  • ※ タグt*についてだけは、u1zt*, u2zt*のg1,g2に関する離散対数γ1, γ2がわかる!
  • ※ x1 := logg1(z), x2 := logg2(z), y1 := logg1(u1) = -t*x1 + γ1, y2 := logg2(u2) = -t*x2 + γ2.
  • Aからチャレンジクエリ(m0,m1)を受け取ったら、
    • b ← {0,1} をランダムに選択し、
    • ctbe* = (c1*=g1r1, c2*=g2r2, d1* = (g1r1)γ1, d2* = (g2r2)γ2, e* = mbw)を返す。
    • ※ di* = (giri)γi = (uizt*)ri.
    • ※ よって、w = zr1+r2のとき、ctbe*はmbの正当な暗号文。
  • Aからタグ t (≠t*) について復号クエリ ctbe = (c1, c2, d1, d2, e) を受け取ったら、
    • Pvtbe(pk, t, ctbe) =? 0 : ランダムメッセージを返す。
    • else k = ( (d1 d2)/(c1γ1 c2γ2) )1/(t-t*), m = e/k を返す。
      • ※ di = citxi+yi = citxi+(-t*xii) = (cixi)t-t* ciγi.
      • ※ ∴ (di/ciγi)1/(t-t*) = cixi.
  • Aが出力b' で終了したら、b =? b' を出力して終了。

識別者Dの解析:
  • w = zr1+r2のとき、Pr[D=1] = Pr[Aが成功].
  • wがランダムのとき、Pr[D=1] = 1/2.

よって、Dの識別利得 = Aの識別利得 ≦ ネグリジブル(n).
Q.E.D.
















最終更新:2009年11月04日 17:30