Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Crypto講義資料

palloc
March 27, 2016

 Crypto講義資料

CpawCTF勉強会のCrypto講義資料です。

palloc

March 27, 2016
Tweet

More Decks by palloc

Other Decks in Technology

Transcript

  1. A君 Bさん 好きです! 付き合ってくださ い! 手 紙 Bさん の下駄 箱

    C君 A君はBさんの ことが好き だったのか! 8
  2. 暗号の種類 —  古典暗号 —  換字式暗号 : 別の文字を割り当てる暗号 —  転置式暗号 :

    文字を並び替える暗号 —  現代暗号 —  共通鍵暗号 : 一つの鍵で暗号化&復号する暗号 —  公開鍵暗号 : 暗号化と復号でそれぞれ別の鍵を 使う暗号 18 ※大雑把に分類しています。
  3. 暗号の種類 —  古典暗号 —  換字式暗号 : 別の文字を割り当てる暗号 —  転置式暗号 :

    文字を並び替える暗号 —  現代暗号 —  共通鍵暗号 : 一つの鍵で暗号化&復号する暗号 —  公開鍵暗号 : 暗号化と復号でそれぞれ別の鍵を 使う暗号 19 ※大雑把に分類しています。
  4. 暗号の種類 —  古典暗号 —  換字式暗号 : 別の文字を割り当てる暗号 —  転置式暗号 :

    文字を並び替える暗号 —  現代暗号 —  共通鍵暗号 : 一つの鍵で暗号化&復号する暗号 —  公開鍵暗号 : 暗号化と復号でそれぞれ別の鍵を 使う暗号 45 ※大雑把に分類しています。
  5. RSA暗号(鍵生成編) ① 素数を2つ用意する。(p,qとする) ②          とする。 ③             と互いに素な数(最大公約数が1となる 数)eを決める。 ④  公開鍵完成。( n

    と e の2つ) 54 n = p×q φ(n) = (p−1)(q −1) (p−1)×(q −1) ※よく、いろいろなサイトで                と表現 します。これは、オイラーの関数と呼ばれるものです。
  6. (参考1)式変形の詳細 (e× d) /φ(n) = x…1 ed ≡1(mod(p−1)(q −1)) e×

    d = φ(n)× x +1 これは、eとdを掛け合わせたものをΦ(n)で割った 余りが1という意味なので、以下のようにかける。 φ(n) = (p−1)(q −1) と書くことができる。これを、式変形すると、 ed +φ(n)(−x) =1 72
  7. ed +φ(n)(−x) =1 (参考2)拡張ユークリッド互除法できる? edとΦ(n)はそれぞれ定数なので、例えば以下のよ うな式と同じ形である。 5x + 21y =1

    なので、拡張ユークリッド互除法によって、dとxが整 数となる組み合わせを探せばよい。 拡張ユークリッド互除法のやり方については、次頁 を参照。 73
  8. 23x + 7y =1 (参考3)拡張ユークリッド互除法の例 上の式を満たす整数の組み合わせ(x,y)を求める。 式の意味などは省略する。 23/ 7 =

    3...2 7 / 2 = 3...1 2 /1= 2...0 74 2 = 23− 7×3 1= 7− 2×3 1= 7−(23− 7×3)×3 1= 23×(−3)+ 7×10 23×(−3)+ 7×10 =1 x = −3, y =10 代入
  9. 平方採中法 —  3桁の乱数を4つ作ってみる。 —  46212 = 21353641 —  35362 =

    12503296 —  50322 = 25321024 —  32102 = 10304100 —  乱数列[3536, 5032, 3210, 3041] 82
  10. 線形合同法 —  A=13,B=57,M=89とする。 —  シードX 0 を12とすると、X 1 は、 — 

    このようにして、乱数を求めていく。 85 (13×12 + 57)mod89 = X 1 X 1 = 35
  11. メルセンヌ・ツイスタ —  http://www.math.sci.hiroshima-u.ac.jp/~m-mat/ MT/MT2002/CODES/mt19937ar.c —  メルセンヌ・ツイスタは2種類あって、主に使われているの はmt19937というアルゴリズム。 —  周期が219937-1ととても長い。 — 

    623個の今までに出現した数値があれば予測可能なため、 暗号論的ではない。 —  開発者のソースコード↑。 —  興味のある方は読んでみてください。 87