1 / 144

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

情報セキュリティ特論( 3 ). 黒澤 馨 (茨城大学) kurosawa@mx.ibaraki.ac.jp. 演習 (1). One-time pad について考える。 鍵 K=(001101) で、平文 M=(111111) を 暗号化せよ。 C=K+M =(001101)+(111111) =(110010). 演習 (1). One-time pad について考える。 鍵 K=(001101) で、暗号文 C=(101101) を 復号せよ。 M=K+C =(001101)+(101101)

monte
Download Presentation

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

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

  2. 演習 (1) One-time padについて考える。 • 鍵K=(001101)で、平文M=(111111)を 暗号化せよ。 • C=K+M =(001101)+(111111) =(110010)

  3. 演習 (1) One-time padについて考える。 • 鍵K=(001101)で、暗号文C=(101101)を 復号せよ。 • M=K+C =(001101)+(101101) =(100000)

  4. 演習 (2) • One-Time Padが無条件に安全であることを、 n=1ビットの場合と同様に、 n=2ビットに対し、証明せよ。

  5. 証明 (n=2の場合) • 敵が暗号文C=(00)を入手した。 • このとき、 Pr(M=00 | C=00)=Pr(M=00)  を証明する。

  6. C=M+K mod 2より、C=00となる(M,K)は、 K 11 10 01 00 1 M 11 00 01 10

  7. C=00という条件の下で、M=00となる事象は、 K 11 10 01 00 1 M 11 00 01 10

  8. K 11 10 01 00 1 M 11 00 01 10 Pr( M=00, K=00) Pr(M=00 | C=00) = Pr( M=00, K=00)+…+Pr( M=11, K=11)

  9. K 11 10 01 00 1 M 11 00 01 10 Pr( M=00) ・1/4 Pr(M=00 | C=00) = Pr( M=00) ・1/4+…+Pr( M=11) ・1/4

  10. K 11 10 01 00 1 M 11 00 01 10 Pr( M=00) Pr(M=00 | C=00) = Pr( M=00) +…+Pr( M=11)

  11. K 11 10 01 00 1 M 11 00 01 10 Pr(M=00 | C=00) = Pr( M=00)

  12. Pr(M=00 | C=00)=Pr(M=00) • 同様にして、 Pr(M=01 | C=00) = Pr(M=01) … Pr(M=11 | C=11) = Pr(M=11)

  13. 演習 (3)   共通鍵暗号系(G,E,D)が無条件に安全 であるための必要十分条件は、 ・ M上の任意の確率関数 PM ・ ∀m ∈ M に対し、 ・ ∀C ∈ C Pr( = c | = m ) = Pr( = c ) であることを証明せよ。

  14. 順方向の証明 • Pr(C=c | M=m)=Pr(C=c)   と仮定する。 • このとき、無条件に安全、すなわち、 Pr(M=m | C=c) =Pr(M=m)  を示す。

  15. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。

  16. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、

  17. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 • 右辺=Pr(M=m)

  18. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 • 右辺=Pr(M=m) • 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c)

  19. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 • 右辺=Pr(M=m) • 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c)

  20. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 • 右辺=Pr(M=m) • 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c) = Pr(M=m | C=c)

  21. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 • 右辺=Pr(M=m) • 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c) = Pr(M=m | C=c) よって、Pr(M=m | C=c) =Pr(M=m)

  22. 証明 • Pr(C=c | M=m)=Pr(C=c)と仮定。 • 両辺に、Pr(M=m) / Pr(C=c)を掛けると、 • 右辺=Pr(M=m) • 左辺= Pr(C=c | M=m) Pr(M=m) / Pr(C=c) = Pr(C=c, M=m) / Pr(C=c) = Pr(M=m | C=c) よって、Pr(M=m | C=c) =Pr(M=m) ゆえに、無条件に安全。

  23. 逆方向の証明 • 無条件に安全と仮定する。   すなわち、 Pr(M=m | C=c) =Pr(M=m) • このとき、 Pr(C=c | M=m)=Pr(C=c)  を示す。

  24. 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。

  25. 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると

  26. 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると • 右辺= Pr(C=c)

  27. 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると • 右辺= Pr(C=c) • 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m)

  28. 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると • 右辺= Pr(C=c) • 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m) = Pr(M=m, C=c) / Pr(M=m)

  29. 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると • 右辺= Pr(C=c) • 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m) = Pr(M=m, C=c) / Pr(M=m) = Pr(C=c | M=m)

  30. 逆方向の証明 • Pr(M=m | C=c) =Pr(M=m)と仮定。 • 両辺に、Pr(C=c) / Pr(M=m)を掛けると • 右辺= Pr(C=c) • 左辺= Pr(M=m | C=c) Pr(C=c) / Pr(M=m) = Pr(M=m, C=c) / Pr(M=m) = Pr(C=c | M=m) よって、Pr(C=c | M=m)=Pr(C=c)

  31. 無条件に安全な暗号系の制限 • 定理   無条件に安全な暗号系においては | K | ≧ | M |

  32. 対策 • 擬似乱数生成器、 PseudoRandom Bit Generator (PRBG)、を利用する。

  33. 擬似乱数生成器 PRBG 短いシード K 長い擬似乱数 PRBG(K) ただし、 ・ |PRBG(K)| > |K| ・ PRBG(K)と真の乱数は、区別がつかない(indistinguishable)。

  34. D PRBG(K) 0 or 1 P0 = Pr(D=1) Distinguisher D 真の乱数 0 or 1 P1 = Pr(D=1)

  35. 定義 • PRBG(K)と真の乱数はindistinguishable if |P0-P1|<ε for 全ての多項式時間のD • 上記が成り立つとき、 PRBG(K)は擬似ランダム

  36. |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合

  37. |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合 {D=1となるnビットの集合}

  38. |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合 {D=1となるnビットの集合} P0= Pr(PRBG(K)が入力のときD=1) = 斜線の面積 / 赤の面積

  39. |PRBG(K)|=nビットとする 全てのnビットの集合 PRBG(K)の集合 {D=1となるnビットの集合} P1= Pr(真の乱数が入力のときD=1) = 黒の面積 / 全面積

  40. 定義 • PRBG(K)と真の乱数はindistinguishable if |P0-P1|<ε for 全ての多項式時間のD • 上記が成り立つとき、 PRBG(K)は擬似ランダム

  41. One-Time Padの改良 PRBG 短い鍵 K 長い擬似乱数 PRBG(K) 暗号文  C = M + PRBG(K)

  42. 擬似ランダム関数FK(x) • 鍵K ← ランダム のとき、 • Y0=(FK(0…0), …, FK(1…1))    と Y1=(乱数、…、乱数) がindistinguishable

  43. 擬似ランダム関数FK(x) • 鍵K ← ランダム のとき、 • Y0=(FK(0…0), …, FK(1…1))    と Y1=(乱数、…、乱数) がindistinguishable しかし、|Y0|=|Y1|=2n

  44. 擬似ランダム関数FK(x) • 鍵K ← ランダム のとき、 • Y0=(FK(0…0), …, FK(1…1)) → D → 0 or 1 • |Y0|=2n • Distinguisher Dは、  読み込むだけで指数時間かかってしまう。

  45. In Experiment 0 K ← randam xi FK(x) Distinguisher D 0 or 1 p0= Pr(D=1) yi i=1, 2, …, q, where q=多項式個

  46. In Experiment 1 f ← nビットからnビットへの全ての関数の集合から randamに選んだ関数 xi f Distinguisher D 0 or 1 p1= Pr(D=1) yi i=1, 2, …, q, where q=多項式個

  47. 定義 • {FK(x)}は、擬似ランダム関数族 if |p0-p1|<ε for 全ての多項式時間アルゴリズム D

  48. 置換 • F:{nビットの集合}→ {nビットの集合}   は置換 if Fが1対1の関数.

  49. 置換 • F:{nビットの集合}→ {nビットの集合}   は置換 if Fが1対1の関数. y=F(x)が置換ならば、 逆関数 x=F-1(y)が存在する

  50. In Experiment 0 K←ランダム xi yj FK Distinguisher D FK-1 yi xj 0 or 1 p0= Pr(D=1)

More Related