1. 暗号理論における安全性の証明: Identification Protocol (ユーザ認証プロトコル)の Zero-Knowledge 性 羽田 知史( IBM 東京基礎研究所) Satoshi Hada (IBM Research - Tokyo) mailto: satoshih at jp ibm com
2.
3.
4.
5.
6.
7.
8. 証明者 検証者 公開鍵: v 秘密鍵: s s.t. v=g -s (mod p) x=v e g y が成り立てば Accept 左辺: x=g r 右辺: v e g y =g -es g r+es =g r e x=g r (mod p) y=r+es (mod q) 乱数: r ∈ Z q 乱数: e ( n bits ) Schnorr の Identification プロトコル は離散対数問題の困難性に基づいたプロトコルです 離散対数が困難という仮定の下では、公開鍵から秘密鍵を計算できない
9. 証明者 検証者 公開鍵: v 秘密鍵: s s.t. v=g -s e y=r+es (mod q) 乱数: r ∈ Z q 乱数: e ( n bits ) 悪意のある証明者の観点から、 プロトコル は安全か? x=v e g y ? x=g r (mod p) ある x=g r を送信したとき、2つの異なる (e,e’) に対して、正しく返事できるなら、つまり、 (y,y’) s.t. x=v e g y =v e’ g y’ を計算できるなら、 s=(y’-y)/(e-e’) mod q として計算できる。つまり、高い確率で、なりすましできるためには、 s の知識が必須である。
11. 証明者 検証者 公開鍵: v 秘密鍵: s s.t. v=g -s (mod p) x=v e g y が成り立てば Accept 左辺: x=g r 右辺: v e g y =g -es g r+es =g r e=0 or 1 x=g r (mod p) y=r+es (mod q) 乱数: r ∈ Z q 乱数: e ( 1 bits ) Schnorr の Identification プロトコル において、 e が 1 ビットの場合を考えます。 離散対数が困難という仮定の下では、公開鍵から秘密鍵を計算できない
12. 公開鍵: v 秘密鍵: s s.t. v=g -s e=0 or 1 x=g r (mod p) y=r+es (mod q) 乱数: r ∈ Z q 乱数: e ( 1 bits ) Schnorr の Identification プロトコル において、 e が 1 ビットの場合を考えます。 e が 1/2 の確率で予測できるので、 s を知らなくても、なりすましは 1/2 の確率で成功する。 ある x=g r を送信したとき、 e=0 and 1 の両方に対して、正しく返事できるなら、つまり、 (y,y’) s.t. x=g y =vg y’ を計算できるなら、 s=y-y’mod q として計算できる。 y から s を計算するには、 r を計算する必要があるが、 x から r を計算するのは困難(離散対数問題)。 => 実際、 ZK 性を満たす x=v e g y ?
13.
14. 正直な検証者と悪意のある検証者の違い e=0 or 1 x=g r (mod p) e=0 or 1 x=g r (mod p) 正直な検証者は、 e を x とは独立にランダムに生成 悪意のある検証者は、 e を x に依存して、生成できる。 e=f(x) x より e を先に決められない
15.
16.
17.
18. 不可能性 O. Goldreich and H. Krawczyk, ``On the Composition of Zero-Knowledge Proof Systems,'' SIAM Journal on Computing, Vol.25, No.1, pp.169-192, 1996. T. Itoh and K. Sakurai, ``On the Complexity of Constant Round ZKIP of Possession of Knowledge,” IEICE Trans. Fundamentals, Vol. E76-A, No. 1, pp. 31-39, 1993.
19.
20. 証明者 検証者 公開鍵: v 秘密鍵: s s.t. v=g -s (mod p) x=v e g y が成り立てば Accept 左辺: x=g r 右辺: v e g y =g -es g r+es =g r e x=g r (mod p) y=r+es (mod q) 乱数: r ∈ Z q 乱数: e ( n bits ) Schnorr のオリジナルのプロトコルでは、 e が n ビットなので、 Simulation は難しそう 離散対数が困難という仮定の下では、公開鍵から秘密鍵を計算できない
21. Simulation が難しいのはどういう場合か? e (n ビット ) x Simulator こういうやりかたで有用な情報を得ることができるかは、不明であるが、プロトコルの規定通りに振舞わないという意味では、悪意がある。 悪意のある検証者は、 e を x から Deterministic に計算する。 e=f(x) 出力される n ビットの e を予測できない場合
22.
23. f が乱数表のときは、 Simulation は、本当に難しいです e (n ビット ) 悪意のある検証者は、 e を x に Deterministic に 依存して、生成できる。 e=f(x) 乱数表(非一様な Advice として与えられる) ただし、乱数表のサイズ (qn) は、指数関数的に大きいので、このような検証者に対して、 Simulation できることを ZK 性の定義は要求しません。ですが議論がシンプルにするために、とりあえず、この問題は忘れます。 Simulator x E0 x=g 0 Eq x=g q-1 … E2 x=g 2 E1 x=g 1 (ランダムな) e の値 x の値