1 / 99

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

情報セキュリティ特論( 7 ). 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp. 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 安全性

gracie
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 情報セキュリティ特論(7) 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp

  2. RSA暗号 • C=Me mod N • C=0のとき、M=0とわかってしまう。 • C=1のとき、M=1とわかってしまう。 • 平文Mのどんな部分情報も   漏れないようにするには?

  3. 公開鍵暗号系 • 鍵生成アルゴリズム G • 暗号化アルゴリズム E • 復号アルゴリズム D

  4. 公開鍵暗号系の安全性 • IND-CPA安全性 Chosen Plaintext(平文)Attack • IND-CCA安全性 Chosen Ciphertext(暗号文) Attack

  5. IND-CPAを定義するゲーム チャレンジャー 敵 pk (pk,sk)←G m0, m1 b←{0,1} C=E(mb) b’

  6. IND-CPA安全 if |Pr(b’=b)-1/2|<ε チャレンジャー 敵 pk (pk,sk)←G m0, m1 b←{0,1} C=E(mb) b’

  7. IND-CPA安全 if |Pr(b’=b)-1/2|<εfor 全ての多項式時間の敵 チャレンジャー 敵 pk (pk,sk)←G m0, m1 b←{0,1} C=E(mb) b’

  8. ElGamal暗号のIND-CPA安全性 チャレンジャー 敵 g, y x←ランダム y=gx mod p m0, m1 b←{0,1} C=(gr, mbyr) C b’ Pr( b’=b )≃1/2

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

  10. RSA≠IND-CPA安全 チャレンジャー 敵の動作 (N,e) m0=0, m1=1 b←{0,1} C=mbe mod N b’=0 if C=0 b’=1 if C=1 Pr( b’=b )=1

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

  12. IND-CPA安全なRSA-based暗号 • r←ランダム • c1=re mod N • c2=M + H(r) mod N ただし、Hはハッシュ関数 • 暗号文 C=(c1, c2)

  13. IND-CPA安全なRSA-based暗号 • r←ランダム • K=H(r) • c1=re mod N • c2=M+擬似乱数生成器(K) (One-Time-PAD) • 暗号文 C=(c1, c2) 公開鍵暗号でKを暗号化 共通鍵暗号で平文Mを暗号化

  14. IND-CPA安全なRSA-based暗号 • r←ランダム • c1=re mod N • c2=M + H(r) mod N • 暗号文 C=(c1, c2)

  15. AES AES AES AES暗号を利用した擬似乱数生成器 Seed … … 出力 AES暗号が擬似ランダム置換と仮定すると、 これは、標準モデルで擬似乱数生成器

  16. ハイブリッド暗号 • C=公開鍵暗号(共通鍵K) + 共通鍵暗号(K,平文m) • 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ

  17. ハイブリッド暗号 • C=公開鍵暗号(共通鍵K) ← KEM + 共通鍵暗号(K,平文m) ← DEM • 公開鍵を使うので、 ハイブリッド暗号は公開鍵暗号の1つ

  18. KEM-DEMフレームワーク • CPA安全なKEM + One-Time-PAD = IND-CPA安全な 公開鍵暗号(ハイブリッド暗号)

  19. KEM • 鍵生成アルゴリズム G • 暗号化アルゴリズム E E(pk)=(暗号文 C, 鍵 K) • 復号アルゴリズム D D(C, sk)=K

  20. RSA-KEM • 公開鍵 (N,e) • 暗号化 r ← ランダム 暗号文 C=re mod N 鍵  K=H(r)

  21. KEMのCPA安全性 チャレンジャー 敵 pk (pk,sk)←G (C, K0) ← E(pk) K1=ランダム b←{0,1} C, Kb b’ Pr( b’=b )~1/2

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

  23. pk, C, Kb r1, r2, H 敵 H(r1), H(r2), b’ KEMのCPA安全性 in RO Pr( b’=b )~1/2

  24. (N,e), C(=re mod N), K0 =H(r) or K1=乱数 r1, r2, H 敵 H(r1), H(r2), b’ RSA-KEMのCPA安全性 in RO

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

  26. 補題 • Pr(b’=b)-1/2=ε(non-negligible)  と仮定すると Pr(敵がrをHオラクルに質問する)≧2ε

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

  28. 証明 • 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)

  29. 証明 • 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)

  30. 証明 • 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))

  31. 証明 • 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)

  32. 証明 • 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=ε

  33. 補題 • Pr(b’=b)-1/2=ε (non-negligible)  と仮定すると Pr(敵がrをHオラクルに質問する)≧2ε • (証明完了)

  34. (N, e), C=re mod N (N, e), C, b←{0,1}、Kb =乱数 r1, r2, H 敵 H(r1), H(r2), b’ RSA-KEMのCPA安全性の証明 r

  35. (N, e), C=re mod N (N, e), C, Kb =乱数 補題より どこかでr H 敵

  36. (N, e), C=re mod N (N, e), C, Kb =乱数 補題より どこかでr H 敵 r if C=re mod N

  37. (N, e), C=re mod N (N, e), C, Kb =乱数 r1 H 敵 r=r1 if C=r1e mod N

  38. (N, e), C=re mod N (N, e), C, Kb =乱数 r1 H 敵 C≠r1e mod Nのとき H(r1)=乱数

  39. (N, e), C=re mod N (N, e), C, Kb =乱数 r2 H 敵 r=r2 if C=r2e mod N

  40. 定理 • RSA仮定の下で、 RSA-KEMはCPA安全 in the RO モデル • (証明完了)

  41. 定理 • RSA仮定の下で、以下の暗号系はCPA安全 in the RO モデル • r←ランダム、K=H(r) • c1=re mod N • c2=M+擬似乱数生成器(K) (One-Time-PAD) • 暗号文 C=(c1, c2) RSA-KEM

  42. 証明 • CPA安全なKEM(公開鍵暗号) + One-Time-PAD = IND-CPA安全な公開鍵暗号 RSA-KEMはCPA安全、を証明した。                     (証明終)

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

  44. ハイブリッド暗号に関する定理 • CPA安全なKEM(公開鍵暗号) + One-Time-PAD = IND-CPA安全な公開鍵暗号 (証明)

  45. ハイブリッド暗号のIND-CPA チャレンジャー 敵 pk (pk,sk)←G m0, m1 m0, m1 b←{0,1} (c1*, K*)←KEM(pk) c2*=mb+擬似乱数(K*) C*=(c1*, c2*) b’

  46. Game 0 チャレンジャー 敵 pk (pk,sk)←G m0, m1 m0, m1 b←{0,1} (c1*, K* )←KEM(pk) c2*=mb+擬似乱数(seed=K* ) C*=(c1*, c2*) b’

  47. Game 1 チャレンジャー 敵 pk (pk,sk)←G m0, m1 m0, m1 b←{0,1} (c1*, K*)←KEM(pk) c2*=mb+擬似乱数(seed=乱数) C*=(c1*, c2*) b’

  48. 補題1 • ハイブリッド暗号において Pr(b’=b in Game 0)~ Pr(b’=b in Game 1) if KEM is CPA 安全 • (証明)   ハイブリッド暗号の敵を基に、 KEMの敵を以下のように構成する。

  49. KEMの敵 KEMの チャレンジャー ハイブリッド暗号の敵 pk pk (pk,sk)←G (c1*, K0)←KEM K1←ランダム d←{0,1} c1*, Kd m0, m1 b←{0,1} c2*= mb + 擬似乱数(seed=Kd) C*=(c1*, c2*) b’ d’ =1 if b’=b

  50. d=0のとき KEMの敵 KEMの チャレンジャー ハイブリッド暗号の敵 pk pk (pk,sk)←G Game 0 (c1*,K0)←KEM K1←ランダム d←0 c1*, K0 m0, m1 b←{0,1} c2*= mb + 擬似乱数(seed=K0) C*=(c1*, c2*) b’ d’ =1 if b’=b

More Related