Provable Security2
-
Upload
satoshi-hada -
Category
Technology
-
view
281 -
download
0
description
Transcript of Provable Security2
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
暗号理論における安全性の証明:Identification Protocol (ユーザ認証プロトコル)の Witness-Hiding 性
羽田 知史( IBM 東京基礎研究所)Satoshi Hada (IBM Research - Tokyo)
mailto: satoshih at jp ibm com
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
3
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
安全性の証明を行うには、まず安全性を定義する必要があります。そのための、2つの基本的なアプローチがあります。
1.攻撃ベースの定義 一方向性関数 公開鍵暗号 ユーザ認証プロトコル (Identification Protocol)
Okamoto92 の安全性の証明2. Simulation Paradigm に基づく定義
公開鍵暗号 ゼロ知識認証プロトコル ( Zero-Knowledge Identification
Protocol )
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
どうやって安全性を定義するか?その1:攻撃ベースの定義
5
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
攻撃ベースの定義は、安全性を定義する直観的にわかりやすい方法です。
1.「攻撃が成功する」を定義する。2.「任意の攻撃者にとって、 攻撃が成功する
確率が、無視できるほど小さい」、を定義する。
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)
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)
8
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
ユーザ認証( Identification )プロトコルとはネットワーク上にて通信相手の身元を証明、検証するためのプロトコルです。
証明者( P さん)
検証者
Interaction
本当にP さん ?
9
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
パスワード認証
悪意のある検証者は、パスワードを盗み、後に、 P さんになりすましが可能
証明者( P さん)
検証者
ID=P, PW
10
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
ディジタル署名ベースのユーザ認証プロトコル( SSL のサーバ認証など)
明らかに(署名の)情報がもれている その情報を使って、悪意のある検証者はなりすましできるかもしれない
乱数 R
PK, Sign(P’s SK, R)
証明者( P さん)
検証者
鍵ペア (PK,SK) 署名が正しいかを検証
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 種類の悪意:悪意のある検証者悪意のある証明者
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 プロトコルは離散対数問題の困難性に基づいたプロトコルです
離散対数が困難という仮定の下では、公開鍵から秘密鍵を計算できない
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)
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 の知識が必須である。
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 を計算するのは困難(離散対数問題)。
16
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
離散対数問題の困難性と Schnorr の Identification プロトコルの安全性の関係は未解決な部分があります
自明な定理: Schnorr の Identification プロトコルが安全なら、離散対数問題は困難 証明(背理法)
離散対数問題が簡単なら、公開鍵から秘密鍵を計算することは可能。
したがって、なりすましも容易。 非自明な定理:
離散対数問題が困難なら、 Schnorr の Identification プロトコルは安全であるこれを証明したいが、未解決問題です。安全性が証明できるような修正版 (Okamoto92@CRYPTO’92) が
提案されています
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
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) を計算する問題は、離散対数問題と等価
19
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
離散対数問題の困難性と Okamoto92 の安全性は等価であることが知られています
自明な定理:Okamoto92 が安全なら、離散対数問題は困難証明(背理法)
離散対数問題が簡単なら、公開鍵から秘密鍵を計算することは可能。
f(p,q,g)(x)=gx と f(p,q,g1,g2)(x1,x2) の一方向性が等価だから
したがって、なりすましも容易。非自明な定理:
離散対数問題が困難なら、 Okamoto92 は安全であるどうやって証明するか?
20
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
Okamoto92 の安全性の証明の流れ
Step 1: Okamoto92 の2つの性質を証明1.知識の証明 (Proof of Knowledge) である。
2.離散対数問題の困難性の仮定の下では、 Witness Hiding プロトコルである。
Step2: 一般的な定理を証明「 WH 性」を持つ「知識の証明」は、安
全な Identification プロトコルである
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
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 に対応する秘密鍵を生成できる ( 無視できない確率で )
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)
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
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 離散対数問題の困難性に矛盾
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 性に矛盾します
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
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
どうやって安全性を定義するか?その2: Simulation Paradigm に基づく定義
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から漏れるかもしれない、という
可能性を否定するほど強い定義ではない
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で攻撃に成功する しかし、上記の安全性の要求としては、この確率も ½程度でなければなら
ない。つまり、上記安全性の定義の要求は強すぎると言える。 攻撃ベースの定義では、「一切、情報が漏れない」を適切に表現するのは
難しそう。
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.
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 を出力すればいい。
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 プロトコルの安全性には十分
ゼロ知識性は、この問題を解決できます
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}
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
まとめ
36
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
まとめ
安全性の定義
実現可能
実現不可能
安全性の証明が既知(証明が可能)
安全性の証明が不可能あるいは
未解決
•ユーザ認証プロトコル•WH プロトコル
•離散対数に基づく•Schnorr のプロトコル•Okamoto92
•Okamoto92 の安全性
•Schnorr のプロトコルの安全性
•強すぎる公開鍵暗号の安全性定義
Tokyo Research Laboratory
講義資料 © 2008 IBM Corporation
Backup
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)
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’ を出力する 離散対数問題の困難性に矛盾