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

Crypto講義資料

Avatar for palloc palloc
March 27, 2016

 Crypto講義資料

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

Avatar for palloc

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