XCR署名


構成(4m-Schnorr)
(q, g) ← GenG(1k)
各パーティBは鍵ペア(B, b)をもつ。(B = gb)
  • 検証者A: Bを入力として、
    • x ← Zq, X = gx、XをBに送信。
  • 証明者B: (B, b)を入力として、Xを受け取ると、
    • y ← Zq, Y = gy, YをAに送信。
  • 検証者A: Yを受け取ると、
    • e ← Zq, eをBに送信。
  • 証明者B: eを受け取ると、
    • s = y + e b mod q, S = Xs, SをBに送信。
  • 検証者A: Sを受け取ると、
    • S =? (Y Be)x を出力。

構成(XCR署名)
(q, g) ← GenG(1k)
各パーティBは鍵ペア(B, b)をもつ。(B = gb)
G : {0,1}* → {0,1}l : ハッシュ関数(l = |q|/2, ハーフサイズ)
  • 検証者A: (m, B)を入力として、
    • x ← Zq, X = gx、(m, X)をBに送信。
  • 署名者B: (B, b)を入力として、(m, X)を受け取ると、
    • y ← Zq, Y = gy, σ = Xy + G(Y,m) b
    • (Y,σ)をAに送信。
  • 検証者A: (Y,σ)を受け取ると、
    • Y ≠ ⊥ ∧ (Y BG(Y,m))x =? σ : valid を出力。

Experiment ForgeXCRF(k):
  • B, X0(=gx0) ← <g>
  • (B, X0)を入力として、偽造者Fを起動する:
    • Fが署名オラクルBに m を問い合わせたら、
      • y ← Zq, Y = gy.
      • Y を答え、Fから X を受け取る。
      • σ = Xy + G(Y,m) b を返答する。
  • Fが (Y0, m0, σ0) を出力して停止したら、以下がともに成り立つとき(のみ)1を出力:
    • Y0 ≠ ⊥ ∧ (Y0 BG(Y0,m0))x0 =? σ0
    • (Y0,m0) はオラクルBの返答に含まれない。

定義(XCR署名の安全性)
XCR署名が安全であるとは、どのようなPPT偽造者Fについても Pr[ ForgeXCRF(k) ] が(kについて)ネグリジブルであることをいう。

定理(XCR署名)
GenGに対する計算DH仮定が成り立つならば、Gについてのランダムオラクルモデルのもとで、
XCR署名は安全である。


双対XCR署名


構成(双対XCR署名)
(q, g) ← GenG(1k)
各パーティAは鍵ペア(A, a)をもつ。(A = ga)
G : {0,1}* → {0,1}l : ハッシュ関数(l = |q|/2, ハーフサイズ)
  • A: (A, a, m1)を入力として、
    • x ← Zq, X = gx、(X, m1)をBに送信。
  • B: (B, b, m2)を入力として、
    • y ← Zq, Y = gy, (Y, m2)をAに送信。
  • A: (Y, m2)を受け取ると、
    • d = G(X, m2), e = G(Y, m1)
    • (Y Be)x + d aを出力。
  • B: (X, m1)を受け取ると、
    • d = G(X, m2), e = G(Y, m1)
    • (X Ad)y + e bを出力。

Experiment ForgeDXCRF(k):
  • B = gb, X0 = gx0 ← <g>
  • (B, X0)を入力として、(A(=ga), a)を補助入力として、偽造者Fを起動する:
    • Fが署名オラクルBに (m, m') を問い合わせたら、
      • y ← Zq, Y = gy.
      • Y を答え、Fから X を受け取る。
      • d = G(X, m'), e = G(Y, m)
      • σ = (X Ad)y + e b を返答する。
  • Fが (Y0, m0, m1, σ) を出力して停止したら、以下がともに成り立つとき(のみ)1を出力:
    • d = G(X0, m1), e = G(Y0, m0)について、
      • Y0 ≠ ⊥ ∧ (Y0 Be)x0 + a d =? σ
    • (Y0,m0) はオラクルBの返答に含まれない。

定義(双対XCR署名の安全性)
双対XCR署名が安全であるとは、どのようなPPT偽造者Fについても Pr[ ForgeDXCRF(k) ] が(kについて)ネグリジブルであることをいう。

定理(双対XCR署名)
GenGに対する計算DH仮定が成り立つならば、Gについてのランダムオラクルモデルのもとで、
双対XCR署名は安全である。ただし、A ≠ B とする。


鍵共有プロトコルHMQV


構成(HMQV)
(q, g) ← GenG(1k)
各パーティAは鍵ペア(A, a)をもつ。(A = ga)
G : {0,1}* → {0,1}l : ハッシュ関数(l = |q|/2, ハーフサイズ)
H : {0,1}* → {0,1}k : ハッシュ関数
  • A: (A, B)を入力として、
    • x ← Zq, X = gx、(A, B, X)をBに送信。
  • B: (A, B, X)を受け取ると、
    • y ← Zq, Y = gy、(B, A, Y)をAに送信。
    • d = G(X, B), e = G(Y, A)
      • (※ 自身で生成した群要素Yとピアの公開鍵AとをセットにしてハッシュGに投入する。)
    • σB = (X Ad)y + e b, K = H(σB)
      • (※ σBはメッセージ(B,A)のBによる双対XCR署名。)
    • (B, A, (B,A,Y,X), K)を出力。 (※ (B,A,Y,X)はセッション識別子)
  • A: (B, A, Y)を受け取ると、
    • e = G(Y, A), d = G(X, B)
    • σA = (Y Be)x + d a, K = H(σA)
      • (※ σAはメッセージ(A,B)のAによる双対XCR署名。)
    • (A, B, (A,B,X,Y), K)を出力。

定理(HMQV)
GenGに対する計算DH仮定が成り立つならば、G,Hについてのランダムオラクルモデルのもとで、
HMQVプロトコルはCanetti-KrawczykモデルでフォーワードなしのSK安全性をもつ。



















最終更新:2009年09月01日 16:56