情報セキュリティ特論( 7 )

99
情情情情情情情情情情7 情情 情情情情情 () [email protected]

description

情報セキュリティ特論( 7 ). 黒澤 馨 (茨城大学) [email protected]. RSA 暗号. C=M e mod N C=0 のとき、 M=0 とわかってしまう。 C=1 のとき、 M=1 とわかってしまう。 平文 M のどんな部分情報も   漏れないようにするには?. 公開鍵暗号系. 鍵生成アルゴリズム G 暗号化アルゴリズム E 復号アルゴリズム D. 公開鍵暗号系の安全性. IND-CPA 安全性 Chosen Plaintext (平文) Attack IND-CCA 安全性 - PowerPoint PPT Presentation

Transcript of 情報セキュリティ特論( 7 )

Page 1: 情報セキュリティ特論( 7 )

情報セキュリティ特論( 7 )

黒澤 馨 (茨城大学)[email protected]

Page 2: 情報セキュリティ特論( 7 )

RSA 暗号

• C=Me mod N

• C=0 のとき、 M=0 とわかってしまう。• C=1 のとき、 M=1 とわかってしまう。

• 平文 M のどんな部分情報も  漏れないようにするには?

Page 3: 情報セキュリティ特論( 7 )

公開鍵暗号系

• 鍵生成アルゴリズム G

• 暗号化アルゴリズム E

• 復号アルゴリズム D

Page 4: 情報セキュリティ特論( 7 )

公開鍵暗号系の安全性

• IND-CPA 安全性 Chosen Plaintext (平文) Attack

• IND-CCA 安全性 Chosen Ciphertext (暗号文) Attack

Page 5: 情報セキュリティ特論( 7 )

IND-CPA を定義するゲーム

チャレンジャー

(pk,sk)←G

m0, m1

pk

b←{0,1}C=E(mb)

b’

Page 6: 情報セキュリティ特論( 7 )

IND-CPA 安全 if |Pr(b’=b)-1/2|<ε

チャレンジャー

(pk,sk)←G

m0, m1

pk

b←{0,1}C=E(mb)

b’

Page 7: 情報セキュリティ特論( 7 )

IND-CPA 安全 if |Pr(b’=b)-1/2|<εfor 全ての多項式時間の敵

チャレンジャー

(pk,sk)←G

m0, m1

pk

b←{0,1}C=E(mb)

b’

Page 8: 情報セキュリティ特論( 7 )

ElGamal 暗号の IND-CPA 安全性

チャレンジャー

x← ランダムy=gx mod p

m0, m1

g, y

b←{0,1}C=(gr, mbyr)

b’

C

Pr( b’=b )≃ 1/2

Page 9: 情報セキュリティ特論( 7 )

定理

• ElGamal 暗号は IND-CPA 安全   under DDH 仮定• (証明) 演習

Page 10: 情報セキュリティ特論( 7 )

RSA≠IND-CPA 安全

チャレンジャー 敵の動作

m0=0, m1=1

(N,e)

b←{0,1}C=mb

e mod N

b’=0 if C=0b’=1 if C=1

Pr( b’=b )=1

Page 11: 情報セキュリティ特論( 7 )

Pr(b’=b)=1 なので、

• |Pr(b’=b)-1/2|=|1-1/2|=1/2 ε≧• よって、    RSA 暗号≠ IND-CPA 安全

Page 12: 情報セキュリティ特論( 7 )

IND-CPA 安全な RSA-based 暗号

• r← ランダム• c1=re mod N

• c2=M + H(r) mod N

ただし、 H はハッシュ関数

• 暗号文 C=(c1, c2)

Page 13: 情報セキュリティ特論( 7 )

IND-CPA 安全な RSA-based 暗号

• r← ランダム• K=H(r)

• c1=re mod N

• c2=M+ 擬似乱数生成器 (K)

(One-Time-PAD)

• 暗号文 C=(c1, c2)

公開鍵暗号で K を暗号化

共通鍵暗号で平文 M を暗号化

Page 14: 情報セキュリティ特論( 7 )

IND-CPA 安全な RSA-based 暗号

• r← ランダム• c1=re mod N

• c2=M + H(r) mod N

• 暗号文 C=(c1, c2)

Page 15: 情報セキュリティ特論( 7 )

AES 暗号を利用した擬似乱数生成器

2)0(

AES

0k

K

2)1(

AES

2)2(

AESK K

1k 2k

Seed

AES 暗号が擬似ランダム置換と仮定すると、これは、標準モデルで擬似乱数生成器

出力

Page 16: 情報セキュリティ特論( 7 )

ハイブリッド暗号

• C=  公開鍵暗号 ( 共通鍵 K)

      + 共通鍵暗号( K, 平文 m)

• 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ

Page 17: 情報セキュリティ特論( 7 )

ハイブリッド暗号

• C=  公開鍵暗号 ( 共通鍵 K) ← KEM

      + 共通鍵暗号( K, 平文 m) ← DEM

• 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ

Page 18: 情報セキュリティ特論( 7 )

KEM-DEM フレームワーク

• CPA 安全な KEM

  + One-Time-PAD

= IND-CPA 安全な  公開鍵暗号(ハイブリッド暗号) 

Page 19: 情報セキュリティ特論( 7 )

KEM

• 鍵生成アルゴリズム G

• 暗号化アルゴリズム E

E(pk)=( 暗号文 C, 鍵 K)

• 復号アルゴリズム D

D(C, sk)=K

Page 20: 情報セキュリティ特論( 7 )

RSA-KEM

• 公開鍵 (N,e)

• 暗号化 r ← ランダム 暗号文 C=re mod N

鍵  K=H(r)

Page 21: 情報セキュリティ特論( 7 )

KEM の CPA 安全性

チャレンジャー

(pk,sk)←G

pk

(C, K0) ← E(pk)K1= ランダム

b←{0,1}

b’

C, Kb

Pr( b’=b ) ~ 1/2

Page 22: 情報セキュリティ特論( 7 )

KEM は CPA 安全

• If 全ての多項式時間の敵に対し、     |Pr(b’=b)-1/2|<ε

Page 23: 情報セキュリティ特論( 7 )

KEM のC P A安全性 in RO

b’

H

r1, r2,

H(r1), H(r2),

pk, C, Kb

Pr( b’=b ) ~ 1/2

Page 24: 情報セキュリティ特論( 7 )

RSA-KEM のC P A安全性 in RO

b’

H

r1, r2,

H(r1), H(r2),

(N,e), C(=re mod N), K0 =H(r) or K1 = 乱数

Page 25: 情報セキュリティ特論( 7 )

定理

• RSA 仮定の下で、 RSA-KEM は CPA 安全 in the ランダム・オラクル・モデル

Page 26: 情報セキュリティ特論( 7 )

補題

• Pr(b’=b)-1/2=ε (non-negligible)

 と仮定すると Pr( 敵が r を H オラクルに質問する )≧2ε

Page 27: 情報セキュリティ特論( 7 )

証明

• X= 敵が r を H オラクルに質問する事象• Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬ X)

Page 28: 情報セキュリティ特論( 7 )

証明

• X= 敵が r を H オラクルに質問する事象• Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬ X)=Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr( ¬

X)

Page 29: 情報セキュリティ特論( 7 )

証明

• X= 敵が r を H オラクルに質問する事象• Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬ X)=Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr( ¬

X)≦Pr(X) + 1/2 Pr( ¬ X)

Page 30: 情報セキュリティ特論( 7 )

証明

• X= 敵が r を H オラクルに質問する事象• Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬ X)=Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr( ¬

X)≦Pr(X) + 1/2 Pr( ¬ X)=Pr(X) + 1/2 (1-Pr(X))

Page 31: 情報セキュリティ特論( 7 )

証明

• X= 敵が r を H オラクルに質問する事象• Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬ X)=Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr( ¬

X)≦Pr(X) + 1/2 Pr( ¬ X)=Pr(X) + 1/2 (1-Pr(X))=1/2+1/2Pr(X)

Page 32: 情報セキュリティ特論( 7 )

証明

• X= 敵が r を H オラクルに質問する事象• Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬ X)=Pr(b’=b | X) Pr(X) + Pr(b’=b | ¬ X) Pr( ¬

X)≦Pr(X) + 1/2 Pr( ¬ X)=Pr(X) + 1/2 (1-Pr(X))=1/2+1/2Pr(X)

ゆえに、 1/2Pr(X)≧ Pr(b’=b)-1/2=ε

Page 33: 情報セキュリティ特論( 7 )

補題

• Pr(b’=b)-1/2=ε (non-negligible)

 と仮定すると Pr( 敵が r を H オラクルに質問する )≧2ε

• (証明完了)

Page 34: 情報セキュリティ特論( 7 )

r

敵H

r1, r2,

H(r1), H(r2),

b’

(N, e), C=re mod N

(N, e), C, b←{0,1} 、 Kb = 乱数

RSA-KEM の CPA 安全性の証明

Page 35: 情報セキュリティ特論( 7 )

敵H

補題よりどこかで r

(N, e), C=re mod N

(N, e), C, Kb = 乱数

Page 36: 情報セキュリティ特論( 7 )

敵H

補題よりどこかで r

(N, e), C=re mod N

(N, e), C, Kb = 乱数

r if C=re mod N

Page 37: 情報セキュリティ特論( 7 )

敵H

(N, e), C=re mod N

(N, e), C, Kb = 乱数

r1

r=r1 if C=r1e mod N

Page 38: 情報セキュリティ特論( 7 )

敵H

(N, e), C=re mod N

(N, e), C, Kb = 乱数

r1

H(r1)= 乱数

C≠r1e mod N のとき

Page 39: 情報セキュリティ特論( 7 )

敵H

(N, e), C=re mod N

(N, e), C, Kb = 乱数

r2

r=r2 if C=r2e mod N

Page 40: 情報セキュリティ特論( 7 )

定理

• RSA 仮定の下で、 RSA-KEM は CPA 安全 in the RO モデル

• (証明完了)

Page 41: 情報セキュリティ特論( 7 )

定理

• RSA 仮定の下で、以下の暗号系は CPA 安全 in the RO モデル

• r← ランダム、 K=H(r)• c1=re mod N• c2=M+ 擬似乱数生成器 (K) (One-Time-PAD)• 暗号文 C=(c1, c2)

RSA-KEM

Page 42: 情報セキュリティ特論( 7 )

証明

• CPA 安全な KEM (公開鍵暗号)  + One-Time-PAD

= IND-CPA 安全な公開鍵暗号

RSA-KEM は CPA 安全、を証明した。                   

 (証明終) 

Page 43: 情報セキュリティ特論( 7 )

ハイブリッド暗号の効能

• IND-CPA (IND-CCA) 安全な公開鍵暗号 を簡単に作れる• 平文は、任意の長さのビット列でよい。

Page 44: 情報セキュリティ特論( 7 )

ハイブリッド暗号に関する定理

• CPA 安全な KEM (公開鍵暗号)  + One-Time-PAD

= IND-CPA 安全な公開鍵暗号

(証明) 

Page 45: 情報セキュリティ特論( 7 )

ハイブリッド暗号の IND-CPA

(pk,sk)←G

b←{0,1}(c1*, K*)←KEM(pk) c2*=mb+ 擬似乱数 (K*)

チャレンジャー 敵

m0, m1

pk

C*=(c1*, c2*)

m0, m1

b’

Page 46: 情報セキュリティ特論( 7 )

Game 0

(pk,sk)←G

b←{0,1}(c1*, K* )←KEM(pk) c2*=mb+ 擬似乱数 (seed=K* )

チャレンジャー 敵

m0, m1

pk

C*=(c1*, c2*)

m0, m1

b’

Page 47: 情報セキュリティ特論( 7 )

Game 1

b←{0,1}(c1*, K*)←KEM(pk) c2*=mb+ 擬似乱数 (seed= 乱数 )

(pk,sk)←G

チャレンジャー 敵

m0, m1

pk

C*=(c1*, c2*)

m0, m1

b’

Page 48: 情報セキュリティ特論( 7 )

補題1

• ハイブリッド暗号において Pr(b’=b in Game 0) ~ Pr(b’=b in Game

1)

if KEM is CPA 安全• ( 証明)  ハイブリッド暗号の敵を基に、   KEM の敵を以下のように構成する。

Page 49: 情報セキュリティ特論( 7 )

KEM のチャレンジャー

(pk,sk)←G

(c1*, K0)←KEMK1← ランダムd←{0,1}

b’

ハイブリッド暗号の敵

pk

C*=(c1*, c2*)

b←{0,1}c2*= mb + 擬似乱数 (seed=Kd)

c1*, Kd

m0, m1

pk

KEM の敵

d’ =1if b’=b

Page 50: 情報セキュリティ特論( 7 )

d=0 のとき

KEM のチャレンジャー

(pk,sk)←G

(c1*, K0)←KEMK1← ランダムd←0

b’

ハイブリッド暗号の敵

pk

C*=(c1*, c2*)

b←{0,1}c2*= mb + 擬似乱数 (seed=K0)

c1*, K0

m0, m1

pk

KEM の敵

d’ =1if b’=b

Game 0

Page 51: 情報セキュリティ特論( 7 )

d=1 のとき

KEM のチャレンジャー

(pk,sk)←G

(c1*, K0)←KEMK1← ランダムd←1

b’

ハイブリッド暗号の敵

pk

C*=(c1*, c2*)

b←{0,1}c2*= mb + 擬似乱数 (seed=K1)

c1*, K1

m0, m1

pk

KEM の敵

d’ =1if b’=b

Game 1

Page 52: 情報セキュリティ特論( 7 )

d’=1 if b’=b なので、

• Pr(d’=1 when d=0)=Pr(b’=b in Game 0)

• Pr(d’=1 when d=1)=Pr(b’=b in Game 1)

Page 53: 情報セキュリティ特論( 7 )

証明

• Pr(d’=1 when d=0)=Pr(b’=b in Game 0)

• Pr(d’=1 when d=1)=Pr(b’=b in Game 1)

KEM の敵は、 d=0 or 1 を区別できないので、

• Pr(d’=1 when d=0) ~ Pr(d’=1 when d=1)

よって、• Pr(b’=b in Game 0) ~ Pr(b’=b in Game

1)

Page 54: 情報セキュリティ特論( 7 )

補題1

• ハイブリッド暗号において Pr(b’=b in Game 0) ~ Pr(b’=b in Game

1)

if KEM is CPA 安全

(証明完了)

Page 55: 情報セキュリティ特論( 7 )

補題2

• Pr(b’=b in Game 1) ~ 1/2

Page 56: 情報セキュリティ特論( 7 )

Game 1

b←{0,1}(c1*, K*)←KEM(pk) c2*=mb+ 擬似乱数 (seed= 乱数 )

(pk,sk)←G

チャレンジャー 敵

m0, m1

pk

C*=(c1*, c2*)

m0, m1

b’

Page 57: 情報セキュリティ特論( 7 )

Game 1

b←{0,1}(c1*, K*)←KEM(pk) c2*=mb+ 擬似乱数 (seed= 乱数 )

(pk,sk)←G

チャレンジャー 敵

m0, m1

pk

C*=(c1*, c2*)

m0, m1

b’c2* は、 c1* とは独立な one-time-padなので、Pr(b’=b)=1/2

Page 58: 情報セキュリティ特論( 7 )

補題2

• Pr(b’=b in Game 1) ~ 1/2

• (証明完了)

Page 59: 情報セキュリティ特論( 7 )

ハイブリッド暗号に関する定理

• CPA 安全な KEM (公開鍵暗号)  + One-Time-PAD

= IND-CPA 安全な公開鍵暗号

(証明)  補題1、補題2より。 

Page 60: 情報セキュリティ特論( 7 )

公開鍵暗号系の安全性

• IND-CPA 安全性 Chosen Plaintext (平文) Attack

• IND-CCA 安全性 Chosen Ciphertext (暗号文) Attack

Page 61: 情報セキュリティ特論( 7 )

公開鍵暗号の IND-CCA 安全性

チャレンジャー 敵

(pk,sk)←G

m0, m1

pk

b←{0,1}C=E(mb)

b’

復号オラクル

C 以外の暗号文を復号してもらえる

Page 62: 情報セキュリティ特論( 7 )

KEM の CCA 安全性

(C, K0) ← E(pk)K1= ランダム

b←{0,1}

チャレンジャー

(pk,sk)←G

pk

b’

C, Kb

C 以外の暗号文を復号してもらえる

復号オラクル

Page 63: 情報セキュリティ特論( 7 )

DEM (共通鍵暗号)の CCA 安全性

チャレンジャー 敵

m0, m1

b’

CCA 安全 if |Pr(b’=b)-1/2|<ε

復号オラクル

C 以外の暗号文を復号してもらえる

K← ランダムb←{0,1}C=EK(mb)

C

Page 64: 情報セキュリティ特論( 7 )

KEM-DEM フレームワーク

• CCA 安全な KEM (公開鍵暗号) + CCA 安全な DEM (共通鍵暗号) = IND-CCA 安全な公開鍵暗号

公開鍵暗号の暗号文C=KEM( 共通鍵 K)+DEM( 共通鍵 K,m)

Page 65: 情報セキュリティ特論( 7 )

定理

• RSA 仮定の下で、• RSA-KEM は CCA 安全• In the RO モデル

Page 66: 情報セキュリティ特論( 7 )

CCA 安全な DEM の構成法

• K → →

• 暗号文   C=(E, Tag)1KME

)(2EMACTimeOneTag K

21,KK擬似乱数生成器

敵は、 MAC オラクルに1回だけ質問して偽造する(通常の MAC で十分)

Page 67: 情報セキュリティ特論( 7 )

IND- CCA安全なハイブリッド暗号

      

Nr e mod

r ← ランダム 共通鍵 K=H

(r)暗号文 C=(φ, χ)

χ =( E, Tag)

RSA 仮定の下で、 IND- CCA安全 in the RO model

公開鍵 (N,e)

KEM の暗号文

DEM の暗号文 (鍵 K)

Page 68: 情報セキュリティ特論( 7 )

RO モデル

IND-CPA 安全なハイブリッド暗号の構成法

IND-CCA 安全なハイブリッド暗号の構成法

RSA-KEM

+ one-time-pad

RSA-KEM

+ one-time-pad

+ MAC

Page 69: 情報セキュリティ特論( 7 )

RO なしで、 IND-CPA な暗号

ElGamal 暗号 Paillier 暗号

DDH 仮定 N 次剰余仮定

Page 70: 情報セキュリティ特論( 7 )

N 次剰余仮定

• xN = a+bN mod N2   としたとき、• (a,b) と (a, 乱数)は   computationally indistinguishable

• ただし、   x←{1,2,…, N-1}

Page 71: 情報セキュリティ特論( 7 )

Paillier 暗号

• 公開鍵 N=pq

• 秘密鍵 p, q

• 暗号化 x ←{1,2,…, N-1}

xN=a+bN mod N2

C=(a, b+m mod N)

Page 72: 情報セキュリティ特論( 7 )

Paillier 暗号

• 暗号化 x ←{1,2,…, N-1}

xN=a+bN mod N2

C=(a, b+m mod N)

復号   xN =a mod N  より、 x=ad mod N

xN=a+bN mod N2  により、 b を求める

Page 73: 情報セキュリティ特論( 7 )

定理

• Paillier 暗号は、 N 次剰余仮定の下で IND-CPA 安全

Page 74: 情報セキュリティ特論( 7 )

N 次剰余仮定

• xN = a+bN mod N2   としたとき、• (a,b) と (a, 乱数)は   computationally indistinguishable

とは、どういう意味か?

Page 75: 情報セキュリティ特論( 7 )

確率変数 X と Y

a

Pr(X=a)

Pr(Y=a)

Page 76: 情報セキュリティ特論( 7 )

Statistically distance

a

Pr(X=a)

Pr(Y=a)

|X-Y|

Page 77: 情報セキュリティ特論( 7 )

X and Y are statistically indistinguishable if

a

Pr(X=a)

Pr(Y=a)

|X-Y|<ε

Page 78: 情報セキュリティ特論( 7 )

補題

a

Pr(X=a)

Pr(Y=a)

この面積=この面積

Page 79: 情報セキュリティ特論( 7 )

証明

a

Pr(X=a)

Pr(Y=a)

A

B=1-A C=1-A

Page 80: 情報セキュリティ特論( 7 )

a

Pr(X=a)

Pr(Y=a)

|X-Y| = 2× この面積

Page 81: 情報セキュリティ特論( 7 )

Distinguisher

DX 0 or 1

Px = Pr(D=1)

Page 82: 情報セキュリティ特論( 7 )

例 (1)

a

Pr(X=a)

Pr(Y=a)

D=1 D=0

PX = Pr(D=1)

Page 83: 情報セキュリティ特論( 7 )

例 (1)

a

Pr(X=a)

Pr(Y=a)

D=1 D=0

PY = Pr(D=1)

Page 84: 情報セキュリティ特論( 7 )

例  (1)

a

Pr(X=a)

Pr(Y=a)

2×(PX-PY) = |X-Y|

Page 85: 情報セキュリティ特論( 7 )

例 (2)

a

Pr(X=a)

Pr(Y=a)

D=1 D=0

PY = Pr(D=1)

Page 86: 情報セキュリティ特論( 7 )

例 (2)

a

Pr(X=a)

Pr(Y=a)

D=1 D=0

Px = Pr(D=1)

Page 87: 情報セキュリティ特論( 7 )

例 (2)

a

Pr(X=a)

Pr(Y=a)

D=1 D=0

2×(PX-PY) < |X-Y|

Page 88: 情報セキュリティ特論( 7 )

定理

• 2×maxD |PX-PY| = |X-Y|

• D は、指数時間アルゴリズムでもよい。

Page 89: 情報セキュリティ特論( 7 )

定義

• X and Y are

computationally indistinguishable

if

maxD |PX-PY| < ε

ただし、 D は多項式時間アルゴリズム

Page 90: 情報セキュリティ特論( 7 )

DDH 仮定

• (g,ga,gb,gab) と (g,ga,gb,gc) は   computationally indistinguishable

• ただし、   a,b,c はランダム

Page 91: 情報セキュリティ特論( 7 )

Distinguisher

DX= (g,ga,gb,gab) Px = Pr(D=1)

DY= (g,ga,gb,gc) PY = Pr(D=1)

maxD |PX-PY| < εただし、 D は多項式時間アルゴリズム

Page 92: 情報セキュリティ特論( 7 )

N 次剰余仮定

• xN = a+bN mod N2   としたとき、• (a,b) と (a, 乱数)は   computationally indistinguishable

• ただし、   x←{1,2,…, N-1}

Page 93: 情報セキュリティ特論( 7 )

Paillier 暗号

• 公開鍵 N=pq

• 秘密鍵 p, q

• 暗号化 x ←{1,2,…, N-1}

xN=a+bN mod N2

C=(a, b+m mod N)

Page 94: 情報セキュリティ特論( 7 )

定理

• Paillier 暗号は、 N 次剰余仮定の下で IND-CPA 安全

Page 95: 情報セキュリティ特論( 7 )

証明

• 暗号化 x ←{1,2,…, N-1}

xN=a+bN mod N2

C=(a, b+m mod N)

        ≒     (a, 乱数 +m mod N)

one-time pad

Page 96: 情報セキュリティ特論( 7 )

演習

• ElGamal 暗号の IND-CPA 安全性を破る敵A が存在したと仮定すると、

  DDH 仮定を破る distinguisher D

が存在することを示せ。

(ヒント) A をサブルーチンとして使い、 D を構成

せよ。

Page 97: 情報セキュリティ特論( 7 )

23/04/21 confidential 97

ElGamal 暗号

• 公開鍵: p, q, g, y(=gx mod p)

• 秘密鍵 : x

• 平文: m

• 暗号化: r ← zp-1

E(m)=(gr, myr)

Page 98: 情報セキュリティ特論( 7 )

23/04/21 confidential 98

直感的な証明

• DDH 仮定より  (g,y,gr,yr) と (g,y,gr,gz) は多項式時間で区別不可能 ただし、 z は乱数• 暗号文: E(m) = (gr, m ・ yr)

      ~ (gr, m ・ gz )

   m×gz=m× 乱数 → one-time pad

m に関する情報は、もれていない

Page 99: 情報セキュリティ特論( 7 )

ElGamal 暗号の IND-CPA 安全性

チャレンジャー

x← ランダムy=gx mod p

m0, m1

g, y

b←{0,1}C=(gr, mbyr)

b’

C

Pr( b’=b )≃ 1/2