Provable Security2

39
http://w3.ibm.com/ibm/presentations Tokyo Research Laboratory 講講講講 © 2008 IBM Corporation 講講講講講講講講講講講講講講Identification Protocol 講講講講講講講講講 Witness-Hiding 講 羽羽 羽羽IBM 羽羽羽羽羽羽羽Satoshi Hada (IBM Research - Tokyo) mailto: satoshih at jp ibm com

description

大学での暗号の講義(その2) 2008-2010

Transcript of Provable Security2

Page 1: Provable Security2

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

暗号理論における安全性の証明:Identification Protocol (ユーザ認証プロトコル)の Witness-Hiding 性

羽田 知史( IBM 東京基礎研究所)Satoshi Hada (IBM Research - Tokyo)

mailto: satoshih at jp ibm com

Page 2: Provable Security2

2

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

主要な参考文献

1. C. Schnorr: Efficient Identification and Signatures for Smart Cards. CRYPTO 1989: 239-252

2. T. Okamoto: Provably Secure and Practical Identification Schemes and Corresponding Signature Schemes. CRYPTO 1992: 31-53

Page 3: Provable Security2

3

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

安全性の証明を行うには、まず安全性を定義する必要があります。そのための、2つの基本的なアプローチがあります。

1.攻撃ベースの定義 一方向性関数 公開鍵暗号 ユーザ認証プロトコル (Identification Protocol)

Okamoto92 の安全性の証明2. Simulation Paradigm に基づく定義

公開鍵暗号 ゼロ知識認証プロトコル ( Zero-Knowledge Identification

Protocol )

Page 4: Provable Security2

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

どうやって安全性を定義するか?その1:攻撃ベースの定義

Page 5: Provable Security2

5

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

攻撃ベースの定義は、安全性を定義する直観的にわかりやすい方法です。

1.「攻撃が成功する」を定義する。2.「任意の攻撃者にとって、 攻撃が成功する

確率が、無視できるほど小さい」、を定義する。

Page 6: Provable Security2

6

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

一方向性関数の定義

y=f(x) の一方向性 x から y の計算は簡単 y から x を計算するのが困難

安全性(一方向性)の定義 攻撃が成功するとは?

y が与えられたとき、 x s.t. y=f (x) を出力する

任意の攻撃者にとって、攻撃が成功する確率が無視できるほど小さいとは? ∀ 攻撃者 A, negligible function δ(n) s.t.∃

Pr[x ← {0,1} n; x’ ← A(f (x)) : x=x’] < δ(n)

Page 7: Provable Security2

7

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

公開鍵暗号の安全性の定義

表記 Key generator KG

入力: 1n (セキュリティパラメータ) 出力:( pk,sk )

pk: a public key of length n

sk: a corresponding secret key Encryption/decryption algorithms

C ← E(pk, M): {0,1}n×{0,1} n →{0,1} n

M=D(sk, C)

∀ n, M {0,1} ∀ ∈ n, Pr[(pk,sk) ←KG(1n) ; C ← E(pk, M) : D(sk, C)=M]=1 安全性の定義

攻撃が成功するとは? (pk, C) が与えられたとき、 M s.t. D(sk, C)=M を出力する

任意の攻撃者にとって、攻撃が成功する確率が無視できるほど小さいとは? ∀ 攻撃者 A, negligible function δ(n) s.t.∃

Pr[ M ← {0,1} n ; (pk,sk) ← KG(1n) ; C ← E(pk,M); M’ ← A(pk,C) : M=M’] < δ(n)

Page 8: Provable Security2

8

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

ユーザ認証( Identification )プロトコルとはネットワーク上にて通信相手の身元を証明、検証するためのプロトコルです。

証明者( P さん)

検証者

Interaction

本当にP さん ?

Page 9: Provable Security2

9

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

パスワード認証

悪意のある検証者は、パスワードを盗み、後に、 P さんになりすましが可能

証明者( P さん)

検証者

ID=P, PW

Page 10: Provable Security2

10

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

ディジタル署名ベースのユーザ認証プロトコル( SSL のサーバ認証など)

明らかに(署名の)情報がもれている その情報を使って、悪意のある検証者はなりすましできるかもしれない

乱数 R

PK, Sign(P’s SK, R)

証明者( P さん)

検証者

鍵ペア (PK,SK) 署名が正しいかを検証

Page 11: Provable Security2

11

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Identification プロトコルの安全性も攻撃ベースで定義できます

表記 Key generator KG

入力: 1n (セキュリティパラメータ) 出力:( pk,sk )

pk: a public key of length nsk: a corresponding secret key

Identification プロトコル (P,V) (P,V) への共通入力 pk P への秘密入力 sk 出力 < P(pk,sk), V(pk) > : V の decision Pr[(pk,sk) ←KG(1n) ; d ← < P(pk,sk), V(pk) >: d=Accept]=1

安全性の定義 攻撃が成功するとは?

P と通信したあとに、 P になりますことができる 任意の攻撃者にとって、攻撃が成功する確率が無視できるほど小さいとは?

∀ 攻撃者 (A1, A2), negligible function δ(n) s.t., ∃Pr[(pk,sk) ← KG(1n) ; view ← < P(pk,sk), A1(pk) >; d ← <A2(pk,view), V(pk)>

: d=Accept] < δ(n)

A1: 悪意のある検証者A2: 悪意のある証明者

2 種類の悪意:悪意のある検証者悪意のある証明者

Page 12: Provable Security2

12

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

証明者 検証者

公開鍵: v秘密鍵: s

s.t. v=g-s (mod p)

x=vegy が成り立てばAccept

左辺: x=gr

右辺: vegy =g-esgr+es=gr

e

x=gr (mod p)

y=r+es (mod q)

乱数:r Z∈ q

乱数:e ( n bits )

Schnorr の Identification プロトコルは離散対数問題の困難性に基づいたプロトコルです

離散対数が困難という仮定の下では、公開鍵から秘密鍵を計算できない

Page 13: Provable Security2

13

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

証明者 検証者

公開鍵: v秘密鍵: s

s.t. v=g-s

e

y=r+es (mod q)

乱数:r Z∈ q

乱数:e ( n bits )

悪意のある証明者の観点から、プロトコルは安全か?

x=vegy ?

x=gr (mod p)

e が予測できれば、 s を知らなくても、なりすましは簡単だが、正しく予測でき

る確率は 1/2n (negligible)

Page 14: Provable Security2

14

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

証明者 検証者

公開鍵: v秘密鍵: s

s.t. v=g-s

e

y=r+es (mod q)

乱数:r Z∈ q

乱数:e ( n bits )

悪意のある証明者の観点から、プロトコルは安全か?

x=vegy ?

x=gr (mod p)

ある x=gr を送信したとき、2つの異なる (e,e’)に対して、正しく返事できるなら、つまり、

(y,y’) s.t. x=vegy=ve’gy’ を計算できるなら、秘密鍵を s=(y’-y)/(e-e’) mod q として計算できる。つまり、高い確率で、なりすましできるためには、s の知識が必須である。

Page 15: Provable Security2

15

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

証明者 検証者

公開鍵: v秘密鍵: s

s.t. v=g-s

e

y=r+es (mod q)

乱数:r Z∈ q

乱数:e ( n bits )

悪意のある検証者の観点から、プロトコルは安全か?

x=vegy ?

x=gr (mod p)

y から s を計算するには、 r を計算する必要があるが、 x から r を計算するのは困難(離散対数問題)。

Page 16: Provable Security2

16

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

離散対数問題の困難性と Schnorr の Identification プロトコルの安全性の関係は未解決な部分があります

自明な定理: Schnorr の Identification プロトコルが安全なら、離散対数問題は困難 証明(背理法)

離散対数問題が簡単なら、公開鍵から秘密鍵を計算することは可能。

したがって、なりすましも容易。 非自明な定理:

離散対数問題が困難なら、 Schnorr の Identification プロトコルは安全であるこれを証明したいが、未解決問題です。安全性が証明できるような修正版 (Okamoto92@CRYPTO’92) が

提案されています

Page 17: Provable Security2

17

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Okamoto92 では、一つの公開鍵に複数の秘密鍵が存在するように公開鍵/秘密鍵の関係式を一般化している(関係式は、 Collision Resistant ハッシュ関数と同じ)

v=g-s (mod p) v=g1-s1g2-s2関係式

秘密鍵

公開鍵 v v

s Z∈ q s1, s2 Z∈ q

Schnorr Okamoto92

システム p, q, g p, q, g1, g2

Page 18: Provable Security2

18

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

証明者 検証者

公開鍵: v秘密鍵: s1,s2

s.t. v= g1-s1g2-s2

x=veg1y1g2y2

をチェック

e

x= g1r1 g2r2

y1=r1+e*s1y2=r2+e*s2

乱数:r1,r2 Z∈ q

乱数:e ( n bits )

Okamoto92

公開鍵 v から秘密鍵 (s1,s2) を計算する問題は、離散対数問題と等価

Page 19: Provable Security2

19

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

離散対数問題の困難性と Okamoto92 の安全性は等価であることが知られています

自明な定理:Okamoto92 が安全なら、離散対数問題は困難証明(背理法)

離散対数問題が簡単なら、公開鍵から秘密鍵を計算することは可能。

f(p,q,g)(x)=gx と f(p,q,g1,g2)(x1,x2) の一方向性が等価だから

したがって、なりすましも容易。非自明な定理:

離散対数問題が困難なら、 Okamoto92 は安全であるどうやって証明するか?

Page 20: Provable Security2

20

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Okamoto92 の安全性の証明の流れ

Step 1: Okamoto92 の2つの性質を証明1.知識の証明 (Proof of Knowledge) である。

2.離散対数問題の困難性の仮定の下では、 Witness Hiding プロトコルである。

Step2: 一般的な定理を証明「 WH 性」を持つ「知識の証明」は、安

全な Identification プロトコルである

Page 21: Provable Security2

21

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

知識の証明( Proof of Knowledge )とは?

表記 Key generator KG

入力: 1n

出力:( pk,sk )pk: a public key of length nsk: a corresponding secret key

Identification プロトコル (P,V) (P,V) への共通入力 pk P への秘密入力 sk 出力 < P(pk,sk), V(pk) > : V の decision Pr[(pk,sk) ←KG(1n) : < P(pk,sk), V(pk) >=Accept]=1

知識の証明の定義 ある証明者 P’ が、検証者 V を accept させることができるなら、 P’ を使って秘密鍵 s を抽

出できるような Knowledge Extractor が存在する。つまり、 P’ は秘密鍵 s を知っているはずです。

∃ probabilistic polynomial-time machine E (knowledge extractor) s.t. prover P’, ∀

If Pr[(pk,sk) ←KG(1n) ; d ← < P’(pk), V(pk) > : d=Accept] is not negligible, then Pr[(pk,sk) ←KG(1n) ; sk ← EP’(pk) > : sk is a secret key corresponding to pk] is not negligible

Page 22: Provable Security2

22

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Okamoto92 は知識の証明である

Pr[(pk,sk) ←KG(1n) ; d ← < P’(pk), V(pk) > : d=Accept] is not negligible と仮定します

P’ を以下のように使って Knowledge Extractor を構築します。1. P’ から第一メッセージ x を受信

2. e Z∈ q をランダムに生成して P’ に送信

3. P’ から (y1, y2) s.t. x=veg1y1g2y2 を受信 ( 無視できない確率で )

4. P’ の計算の状態を Step1 直後まで巻き戻す (rewinding)

5. e’ Z∈ q(not equal to e) をランダムに生成して P’ に送信

6. P’ から (y1’, y2’) s.t. x=ve’g1y1’g2y2’ を受信 ( 無視できない確率で )

7. veg1y1g2y2=ve’g1y1’g2y2’

ve-e’=g1y1’-y1g2y2’-y2

v=g1y1’-y1/e-e’g2y2’-y2/e-e’

つまり、 v に対応する秘密鍵を生成できる ( 無視できない確率で )

Page 23: Provable Security2

23

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Witness Hiding プロトコルとは?

表記 Key generator KG

入力: 1n (セキュリティパラメータ) 出力:( pk,sk )

pk: a public key of length n

sk: a corresponding secret key Identification プロトコル (P,V)

(P,V) への共通入力 pk P への秘密入力 sk 出力 < P(pk,sk), V(pk) > : V の decision Pr[(pk,sk) ←KG(1n) : < P(pk,sk), V(pk) >=Accept]=1

WH 性の定義 ( 攻撃ベースの考え方で定義 ) 攻撃が成功するとは?

P と通信したあとに、 sk を計算できる 任意の攻撃者にとって、攻撃が成功する確率が無視できるほど小さいとは?

∀ 攻撃者 A, negligible function δ(n) s.t., ∃

Pr[(pk,sk) ← KG(1n) ; s ← < P(pk,sk), A(pk) > : s is a secret key corresponding to pk] < δ(n)

Page 24: Provable Security2

24

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Crucial Observation: Okamoto92 は Witness Indistinguishability (WI) という性質を満たします

同じ公開鍵に対して複数の秘密鍵が存在します(ハッシュ関数)。 v=g1-s1g2-s2 =g1-s1’g2-s2’

Witness Indistinguishability: 検証者の観点からは、 ( s1,s2 )と( s1’,s2’ )のどちらの秘密鍵を所持しているか情報理論的に識別不可能です。

理由:(悪意のある)検証者の観点からは、どのような e を送ろうが、 ( s1,s2 )を所持しているときの (x,y1,y2) の確率分布と( s1’,s2’ )を所持しているときの (x,y1,y2) の確率分布がまったく同じだからです。無限の計算パワーがあっても、識別できません。

e

x= g1r1 g2r2

y1=r1+e*s1y2=r2+e*s2

Page 25: Provable Security2

25

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

離散対数問題の困難性の仮定の下では、 Okamoto92 は WH プロトコルである

証明(背理法) WH プロトコルではないと仮定する

∃ 攻撃者 A, polynomial p(n) s.t., ∃

Pr[(pk=(p,q,g1,g2),sk=(s1,s2)) ← KG(1n) ; s ← < P(pk,sk), A(pk) > : s is a secret key] > 1/p(n)

この A を使って、離散対数問題を解く 入力: (p,q,g,gx)

g1=g, g2= gx と表記 鍵ペアをランダムに生成 v,(s1,s2) s.t. v=g1-s1g2-s2

<P(v,(s1,s2)), A(v)> を simulate

A は( s1’,s2’ ) s.t. v=g1-s1’g2-s2’ を 1/p(n) の確率で出力 WI 性により (s1,s2)= ( s1’,s2’ )となる確率は無視できる (1/q)

v=g1-s1g2-s2 =g1-s1’g2-s2’ が成り立つ g2=g1s1-s1’/s2’-s2

x=s1-s1’/s2’-s2 離散対数問題の困難性に矛盾

Page 26: Provable Security2

26

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

「 WH 性」を持つ「知識の証明」は、安全なIdentification プロトコルである

証明(背理法)1. 安全な Identification プロトコルでないと仮定

∃ 攻撃者 (A1, A2), polynomial p(n) s.t., ∃

Pr[(pk,sk) ← KG(1n) ; view ← < P(pk,sk), A1(pk) >; d ← <A2(pk,view), V(pk)> : d=Accept] > 1/p(n)

2. 知識の証明だから、 A2 を使う Knowledge Extractor が存在する ∃ 攻撃者 (A1, A2), knowledge extractor E, polynomial p(n) s.t., ∃ ∃

Pr[(pk,sk) ← KG(1n) ; view ← < P(pk,sk), A1(pk) >; s ← EA2(pk,view)(pk) : s is a secret key] > 1/p(n)

3. A1 と EA2 を組み合わせて、新しい攻撃者 A を作ると ∃ 攻撃者 A, polynomial p(n) s.t., ∃

Pr[(pk,sk) ← KG(1n) ; s ← < P(pk,sk), A(pk) > : s is a secret key] > 1/p(n) A の存在は、 WH 性に矛盾します

Page 27: Provable Security2

27

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Schnorr のプロトコルの安全性の証明は何故難しい?

何故? Schnorr のプロトコルが知識の証明であることは、同様に、

証明可能です。 では、 Schnorr のプロトコルの WH 性はどうでしょう

か???Okamoto92 に対する証明を Schnorr のプロトコルに適用するとどうなるでしょうか?

参考:離散対数問題よりも強い仮定の下では、安全性が証明されています。

M. Bellare and A. Palacio, GQ and Schnorr Identification Schemes: Proofs of Security against Impersonation under Active and Concurrent Attacks, CRYPTO 2002. http://www-cse.ucsd.edu/~mihir/papers/gq.pdf

Page 28: Provable Security2

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

どうやって安全性を定義するか?その2: Simulation Paradigm に基づく定義

Page 29: Provable Security2

29

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

攻撃者ベースの公開鍵暗号の安全性定義には問題があります(1)

先ほどの安全性の定義 攻撃が成功するとは?

(pk, C) が与えられたとき、 M s.t. D(sk, C)=M を出力する 任意の攻撃者にとって、攻撃が成功する確率が無視できるほど小さい

とは?∀ 攻撃者 A, negligible function δ(n) s.t. ∃

Pr[M ← {0,1}n ; (pk,sk) ← KG(1n) ; C ← E(pk,M); M’ ← A(pk,C) : M=M’] < δ(n)

問題点 平文 M の特定のビットは、暗号文Cから漏れるかもしれない、という

可能性を否定するほど強い定義ではない

Page 30: Provable Security2

30

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

攻撃者ベースの公開鍵暗号の安全性定義には問題があります(2)

修正した安全性の定義 攻撃が成功するとは?

predicateπ と (pk, C) が与えられたとき、 π(M) を出力する 任意の攻撃者にとって、攻撃が成功する確率が無視できるほど小さいとは?

∀ predicate π, ∀ 攻撃者 A, negligible function δ(n) s.t. ∃

Pr[M ← {0,1}n ; (pk,sk) ← KG(1n) ; C ← E(pk,M); b ← A(pk,C) : π(M)=b] < ½+δ(n)

問題点 一見、問題が解決しているように見えるが、常に π(M) =1(True) になるような

π の場合はどうか? その場合、常に 1 を出力する攻撃者は、確率1で攻撃に成功する しかし、上記の安全性の要求としては、この確率も ½程度でなければなら

ない。つまり、上記安全性の定義の要求は強すぎると言える。 攻撃ベースの定義では、「一切、情報が漏れない」を適切に表現するのは

難しそう。

Page 31: Provable Security2

31

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Simulation Paradigm は、「一切、情報が漏れない」を表現する方法で、前述の問題を解決することができます

アイデア:攻撃者が計算できるものは、攻撃の対象がなくても、計算できる。

例:攻撃者が(公開鍵、暗号文)から計算できるものは、その(公開鍵、暗号文)がなくても計算できる。つまり、攻撃者の出力を(公開鍵、暗号文)がな

くても Simulate できる。∀攻撃者 A 、∃ Simulator S s.t. anything A can

compute from public key and ciphertexts, S can compute without them.

Page 32: Provable Security2

32

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Simulation Paradigm に基づいて、より強い公開鍵暗号の安全性を定義でき、前述の問題を解決します。

修正した安全性の定義 攻撃が成功するとは?

function f と (pk, C) が与えられたとき、 f(M) を出力する 任意の攻撃者に対して、 Simulator が存在するとは?

∀ function f, ∀ 攻撃者 A, simulator S,∃ negligible function δ(n) s.t. ∃

Pr[M ← {0,1}n ; (pk,sk) ← KG(1n) ; C ← E(pk,M); v ← S(1n) : f(M)=v] >

Pr[M ← {0,1}n ; (pk,sk) ← KG(1n) ; C ← E(pk,M); v ← A(pk,C) : f(M)=v] -δ(n)

さきほどの問題がどう解消されるか? 常に π(M) =1(True) になるような π の場合、常に 1 を出力する攻撃者に

対しては、 Simulator も同様に常に 1 を出力すればいい。

Page 33: Provable Security2

33

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Witness Hiding 性の定義も同様の問題があります。

Witness Hiding 性の定義 攻撃が成功するとは?

P と通信したあとに、 sk を計算できる 任意の攻撃者にとって、攻撃が成功する確率が無視できるほど小さい

とは?∀ 攻撃者 A, negligible function δ(n) s.t., ∃

Pr[(pk,sk) ← KG(1n) ; s ← < P(pk,sk), A(pk) > : s=sk] < δ(n)

問題点sk の特定のビットは、 P と通信することにより漏れるかもしれな

い、という可能性を否定するほど強い定義ではないただし、 Identification プロトコルの安全性には十分

ゼロ知識性は、この問題を解決できます

Page 34: Provable Security2

34

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

ゼロ知識性は、ユーザ認証プロトコルにおいて1ビットたりとも漏れない、という性質で、 Simulation Paradigmに基づいて定義されます

表記 Key generator KG

入力: 1n (セキュリティパラメータ) 出力:( pk,sk )

pk: a public key of length nsk: a corresponding secret key

Identification プロトコル (P,V) (P,V) への共通入力 pk P への秘密入力 sk 出力 < P(pk,sk), V(pk) > : V の decision Pr[(pk,sk) ←KG(1n) : < P(pk,sk), V(pk) >=Accept]=1 悪意のある検証者 A が得る情報 < P(pk,sk), A(pk) > は、 A の使う乱数 R と交換され

るメッセージ ゼロ知識性の定義

∀ 攻撃者(悪意のある検証者) A, simulator S, ∃ 以下の 2 つの確率分布が(計算量的に)識別不可能

1. {(pk,sk) ← KG(1n) ; history ← < P(pk,sk), A(pk) > : history } と 2. {(pk,sk) ← KG(1n) ; history ← S(pk) : history}

Page 35: Provable Security2

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

まとめ

Page 36: Provable Security2

36

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

まとめ

安全性の定義

実現可能

実現不可能

安全性の証明が既知(証明が可能)

安全性の証明が不可能あるいは

未解決

•ユーザ認証プロトコル•WH プロトコル

•離散対数に基づく•Schnorr のプロトコル•Okamoto92

•Okamoto92 の安全性

•Schnorr のプロトコルの安全性

•強すぎる公開鍵暗号の安全性定義

Page 37: Provable Security2

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Backup

Page 38: Provable Security2

38

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Okamoto92 の公開鍵生成の一方向性:公開鍵から秘密鍵を計算できるか?

Schnorr y=f(p,q,g)(x)=gx mod p

Parameter generator PG

入力: 1n (セキュリティパラメータ) 出力:( p,q,g )

p: a prime of length nq: another prime s.t. q|p-1g: a generator of GF(p) of order q

∀ 攻撃者 A, negligible function δ(n) s.t.∃

Pr[ (p,q,g) ← PG(1n) ; x ← Zq; x’ ← A(p,q,g,f(p,g)(x)) : x=x’] < δ(n) Okamoto92

y=f(p,q,g1,g2)(x1,x2)= g1x1 g2x2 mod p

Parameter generator PG

入力: 1n (セキュリティパラメータ) 出力:( p,q,g1,g2 )

p: a prime of length nq: another prime s.t. q|p-1G1,g2: a generator of GF(p) of order q

∀ 攻撃者 A, negligible function δ(n) s.t.∃

Pr[ (p,q,g1,g2) ← PG(1n) ; (x1,x2) ← Zq; (x1’,x2’) ← A(p,q,g1,g2,f(p,g1,g2)(x1,x2)) : g1x1’ g2x2’ = g1x1 g2x2 ] < δ(n)

Page 39: Provable Security2

39

Tokyo Research Laboratory

講義資料 © 2008 IBM Corporation

Okamoto92 の公開鍵生成の一方向性は離散対数問題の困難性と等価です。

f(p,q,g)(x)=gx が一方向性関数ならば、

y=f(p,q,g1,g2)(x1,x2)= g1x1 g2x2 も一方向性関数である。

証明(背理法) f(p,q,g1,g2)(x1,x2) が一方向性関数でないと仮定する。

∃ 攻撃者 A, polynomial∃ p(n) s.t.

Pr[ (p,q,g1,g2) ← PG(1n) ; (x1’,x2’) ← Zq; (x1,x2) ←

A(p,q,g1,g2,f(p,q,g1,g2)(x1’,x2`)) : g1x1’ g2x2’ = g1x1 g2x2 ] > 1/p(n)

A を使って、 f(p,q,g)(x) に対する攻撃者 A’ を構築 入力 : (p,q,g) & y=f(p,q,g)(x) 乱数生成 :r1,r2 ← Zq A(p,q,g,y,gr1 yr2 ) を実行して、 (r1’,r2’) s.t. gr1 yr2 =gr1’ yr2’ を計算

(g,y) を (g1,g2) と解釈するr1=r1’ & r2=r2’ となる確率は無視できるほど小さい

x=r2’-r2/r1-r1’ を出力する 離散対数問題の困難性に矛盾