Download - 情報セキュリティ特論( 7 )
![Page 2: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/2.jpg)
RSA 暗号
• C=Me mod N
• C=0 のとき、 M=0 とわかってしまう。• C=1 のとき、 M=1 とわかってしまう。
• 平文 M のどんな部分情報も 漏れないようにするには?
![Page 3: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/3.jpg)
公開鍵暗号系
• 鍵生成アルゴリズム G
• 暗号化アルゴリズム E
• 復号アルゴリズム D
![Page 4: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/4.jpg)
公開鍵暗号系の安全性
• IND-CPA 安全性 Chosen Plaintext (平文) Attack
• IND-CCA 安全性 Chosen Ciphertext (暗号文) Attack
![Page 5: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/5.jpg)
IND-CPA を定義するゲーム
チャレンジャー
(pk,sk)←G
敵
m0, m1
pk
b←{0,1}C=E(mb)
b’
![Page 6: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/6.jpg)
IND-CPA 安全 if |Pr(b’=b)-1/2|<ε
チャレンジャー
(pk,sk)←G
敵
m0, m1
pk
b←{0,1}C=E(mb)
b’
![Page 7: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/7.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/8.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/9.jpg)
定理
• ElGamal 暗号は IND-CPA 安全 under DDH 仮定• (証明) 演習
![Page 10: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/10.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/11.jpg)
Pr(b’=b)=1 なので、
• |Pr(b’=b)-1/2|=|1-1/2|=1/2 ε≧• よって、 RSA 暗号≠ IND-CPA 安全
![Page 12: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/12.jpg)
IND-CPA 安全な RSA-based 暗号
• r← ランダム• c1=re mod N
• c2=M + H(r) mod N
ただし、 H はハッシュ関数
• 暗号文 C=(c1, c2)
![Page 13: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/13.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/14.jpg)
IND-CPA 安全な RSA-based 暗号
• r← ランダム• c1=re mod N
• c2=M + H(r) mod N
• 暗号文 C=(c1, c2)
![Page 15: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/15.jpg)
AES 暗号を利用した擬似乱数生成器
2)0(
AES
0k
K
2)1(
AES
2)2(
AESK K
1k 2k
…
Seed
…
AES 暗号が擬似ランダム置換と仮定すると、これは、標準モデルで擬似乱数生成器
出力
![Page 16: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/16.jpg)
ハイブリッド暗号
• C= 公開鍵暗号 ( 共通鍵 K)
+ 共通鍵暗号( K, 平文 m)
• 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ
![Page 17: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/17.jpg)
ハイブリッド暗号
• C= 公開鍵暗号 ( 共通鍵 K) ← KEM
+ 共通鍵暗号( K, 平文 m) ← DEM
• 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ
![Page 18: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/18.jpg)
KEM-DEM フレームワーク
• CPA 安全な KEM
+ One-Time-PAD
= IND-CPA 安全な 公開鍵暗号(ハイブリッド暗号)
![Page 19: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/19.jpg)
KEM
• 鍵生成アルゴリズム G
• 暗号化アルゴリズム E
E(pk)=( 暗号文 C, 鍵 K)
• 復号アルゴリズム D
D(C, sk)=K
![Page 20: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/20.jpg)
RSA-KEM
• 公開鍵 (N,e)
• 暗号化 r ← ランダム 暗号文 C=re mod N
鍵 K=H(r)
![Page 21: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/21.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/22.jpg)
KEM は CPA 安全
• If 全ての多項式時間の敵に対し、 |Pr(b’=b)-1/2|<ε
![Page 23: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/23.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/24.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/25.jpg)
定理
• RSA 仮定の下で、 RSA-KEM は CPA 安全 in the ランダム・オラクル・モデル
![Page 26: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/26.jpg)
補題
• Pr(b’=b)-1/2=ε (non-negligible)
と仮定すると Pr( 敵が r を H オラクルに質問する )≧2ε
![Page 27: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/27.jpg)
証明
• X= 敵が r を H オラクルに質問する事象• Pr(b’=b)= Pr(b’=b, X)+ Pr(b’=b, ¬ X)
![Page 28: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/28.jpg)
証明
• 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/29.jpg)
証明
• 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/30.jpg)
証明
• 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/31.jpg)
証明
• 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/32.jpg)
証明
• 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/33.jpg)
補題
• Pr(b’=b)-1/2=ε (non-negligible)
と仮定すると Pr( 敵が r を H オラクルに質問する )≧2ε
• (証明完了)
![Page 34: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/34.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/35.jpg)
敵H
補題よりどこかで r
(N, e), C=re mod N
(N, e), C, Kb = 乱数
![Page 36: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/36.jpg)
敵H
補題よりどこかで r
(N, e), C=re mod N
(N, e), C, Kb = 乱数
r if C=re mod N
![Page 37: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/37.jpg)
敵H
(N, e), C=re mod N
(N, e), C, Kb = 乱数
r1
r=r1 if C=r1e mod N
![Page 38: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/38.jpg)
敵H
(N, e), C=re mod N
(N, e), C, Kb = 乱数
r1
H(r1)= 乱数
C≠r1e mod N のとき
![Page 39: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/39.jpg)
敵H
(N, e), C=re mod N
(N, e), C, Kb = 乱数
r2
r=r2 if C=r2e mod N
![Page 40: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/40.jpg)
定理
• RSA 仮定の下で、 RSA-KEM は CPA 安全 in the RO モデル
• (証明完了)
![Page 41: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/41.jpg)
定理
• 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/42.jpg)
証明
• CPA 安全な KEM (公開鍵暗号) + One-Time-PAD
= IND-CPA 安全な公開鍵暗号
RSA-KEM は CPA 安全、を証明した。
(証明終)
![Page 43: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/43.jpg)
ハイブリッド暗号の効能
• IND-CPA (IND-CCA) 安全な公開鍵暗号 を簡単に作れる• 平文は、任意の長さのビット列でよい。
![Page 44: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/44.jpg)
ハイブリッド暗号に関する定理
• CPA 安全な KEM (公開鍵暗号) + One-Time-PAD
= IND-CPA 安全な公開鍵暗号
(証明)
![Page 45: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/45.jpg)
ハイブリッド暗号の 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/46.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/47.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/48.jpg)
補題1
• ハイブリッド暗号において Pr(b’=b in Game 0) ~ Pr(b’=b in Game
1)
if KEM is CPA 安全• ( 証明) ハイブリッド暗号の敵を基に、 KEM の敵を以下のように構成する。
![Page 49: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/49.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/50.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/51.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/52.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/53.jpg)
証明
• 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/54.jpg)
補題1
• ハイブリッド暗号において Pr(b’=b in Game 0) ~ Pr(b’=b in Game
1)
if KEM is CPA 安全
(証明完了)
![Page 55: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/55.jpg)
補題2
• Pr(b’=b in Game 1) ~ 1/2
![Page 56: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/56.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/57.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/58.jpg)
補題2
• Pr(b’=b in Game 1) ~ 1/2
• (証明完了)
![Page 59: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/59.jpg)
ハイブリッド暗号に関する定理
• CPA 安全な KEM (公開鍵暗号) + One-Time-PAD
= IND-CPA 安全な公開鍵暗号
(証明) 補題1、補題2より。
![Page 60: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/60.jpg)
公開鍵暗号系の安全性
• IND-CPA 安全性 Chosen Plaintext (平文) Attack
• IND-CCA 安全性 Chosen Ciphertext (暗号文) Attack
![Page 61: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/61.jpg)
公開鍵暗号の IND-CCA 安全性
チャレンジャー 敵
(pk,sk)←G
m0, m1
pk
b←{0,1}C=E(mb)
b’
復号オラクル
C 以外の暗号文を復号してもらえる
![Page 62: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/62.jpg)
KEM の CCA 安全性
(C, K0) ← E(pk)K1= ランダム
b←{0,1}
チャレンジャー
(pk,sk)←G
敵
pk
b’
C, Kb
C 以外の暗号文を復号してもらえる
復号オラクル
![Page 63: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/63.jpg)
DEM (共通鍵暗号)の CCA 安全性
チャレンジャー 敵
m0, m1
b’
CCA 安全 if |Pr(b’=b)-1/2|<ε
復号オラクル
C 以外の暗号文を復号してもらえる
K← ランダムb←{0,1}C=EK(mb)
C
![Page 64: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/64.jpg)
KEM-DEM フレームワーク
• CCA 安全な KEM (公開鍵暗号) + CCA 安全な DEM (共通鍵暗号) = IND-CCA 安全な公開鍵暗号
公開鍵暗号の暗号文C=KEM( 共通鍵 K)+DEM( 共通鍵 K,m)
![Page 65: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/65.jpg)
定理
• RSA 仮定の下で、• RSA-KEM は CCA 安全• In the RO モデル
![Page 66: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/66.jpg)
CCA 安全な DEM の構成法
• K → →
• 暗号文 C=(E, Tag)1KME
)(2EMACTimeOneTag K
21,KK擬似乱数生成器
敵は、 MAC オラクルに1回だけ質問して偽造する(通常の MAC で十分)
![Page 67: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/67.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/68.jpg)
RO モデル
IND-CPA 安全なハイブリッド暗号の構成法
IND-CCA 安全なハイブリッド暗号の構成法
RSA-KEM
+ one-time-pad
RSA-KEM
+ one-time-pad
+ MAC
![Page 69: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/69.jpg)
RO なしで、 IND-CPA な暗号
ElGamal 暗号 Paillier 暗号
DDH 仮定 N 次剰余仮定
![Page 70: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/70.jpg)
N 次剰余仮定
• xN = a+bN mod N2 としたとき、• (a,b) と (a, 乱数)は computationally indistinguishable
• ただし、 x←{1,2,…, N-1}
![Page 71: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/71.jpg)
Paillier 暗号
• 公開鍵 N=pq
• 秘密鍵 p, q
• 暗号化 x ←{1,2,…, N-1}
xN=a+bN mod N2
C=(a, b+m mod N)
![Page 72: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/72.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/73.jpg)
定理
• Paillier 暗号は、 N 次剰余仮定の下で IND-CPA 安全
![Page 74: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/74.jpg)
N 次剰余仮定
• xN = a+bN mod N2 としたとき、• (a,b) と (a, 乱数)は computationally indistinguishable
とは、どういう意味か?
![Page 75: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/75.jpg)
確率変数 X と Y
a
Pr(X=a)
Pr(Y=a)
![Page 76: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/76.jpg)
Statistically distance
a
Pr(X=a)
Pr(Y=a)
|X-Y|
![Page 77: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/77.jpg)
X and Y are statistically indistinguishable if
a
Pr(X=a)
Pr(Y=a)
|X-Y|<ε
![Page 78: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/78.jpg)
補題
a
Pr(X=a)
Pr(Y=a)
この面積=この面積
![Page 79: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/79.jpg)
証明
a
Pr(X=a)
Pr(Y=a)
A
B=1-A C=1-A
![Page 80: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/80.jpg)
系
a
Pr(X=a)
Pr(Y=a)
|X-Y| = 2× この面積
![Page 81: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/81.jpg)
Distinguisher
DX 0 or 1
Px = Pr(D=1)
![Page 82: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/82.jpg)
例 (1)
a
Pr(X=a)
Pr(Y=a)
D=1 D=0
PX = Pr(D=1)
![Page 83: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/83.jpg)
例 (1)
a
Pr(X=a)
Pr(Y=a)
D=1 D=0
PY = Pr(D=1)
![Page 84: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/84.jpg)
例 (1)
a
Pr(X=a)
Pr(Y=a)
2×(PX-PY) = |X-Y|
![Page 85: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/85.jpg)
例 (2)
a
Pr(X=a)
Pr(Y=a)
D=1 D=0
PY = Pr(D=1)
![Page 86: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/86.jpg)
例 (2)
a
Pr(X=a)
Pr(Y=a)
D=1 D=0
Px = Pr(D=1)
![Page 87: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/87.jpg)
例 (2)
a
Pr(X=a)
Pr(Y=a)
D=1 D=0
2×(PX-PY) < |X-Y|
![Page 88: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/88.jpg)
定理
• 2×maxD |PX-PY| = |X-Y|
• D は、指数時間アルゴリズムでもよい。
![Page 89: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/89.jpg)
定義
• X and Y are
computationally indistinguishable
if
maxD |PX-PY| < ε
ただし、 D は多項式時間アルゴリズム
![Page 90: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/90.jpg)
DDH 仮定
• (g,ga,gb,gab) と (g,ga,gb,gc) は computationally indistinguishable
• ただし、 a,b,c はランダム
![Page 91: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/91.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/92.jpg)
N 次剰余仮定
• xN = a+bN mod N2 としたとき、• (a,b) と (a, 乱数)は computationally indistinguishable
• ただし、 x←{1,2,…, N-1}
![Page 93: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/93.jpg)
Paillier 暗号
• 公開鍵 N=pq
• 秘密鍵 p, q
• 暗号化 x ←{1,2,…, N-1}
xN=a+bN mod N2
C=(a, b+m mod N)
![Page 94: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/94.jpg)
定理
• Paillier 暗号は、 N 次剰余仮定の下で IND-CPA 安全
![Page 95: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/95.jpg)
証明
• 暗号化 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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/96.jpg)
演習
• ElGamal 暗号の IND-CPA 安全性を破る敵A が存在したと仮定すると、
DDH 仮定を破る distinguisher D
が存在することを示せ。
(ヒント) A をサブルーチンとして使い、 D を構成
せよ。
![Page 97: 情報セキュリティ特論( 7 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/97.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/98.jpg)
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 )](https://reader036.vdocuments.pub/reader036/viewer/2022062519/56814e28550346895dbb8e69/html5/thumbnails/99.jpg)
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