Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CTF勉強会 #4
Crypto
2016.01.23 TOKYO / 2016.02.06 OSAKA
trmr (@trmr105)
katagaitai
注意事項
 本スライドは勉強会で利用したものを元に作成しています。
 勉強会では問題サーバを利用しましたが既に停止しています。
 問題サーバのIPやホスト名が出てくる箇所がありますが、随時
読み替えをお願いいたします。
 リンク切れ等ご...
Writeup & Impression3
 katagaitai勉強会#4 開催後、reconで見つけたwriteupや感想です。
 http://syagi.hatenablog.com/entry/2016/01/29/225258
...
Katagaitai勉強会とはなんぞや
好きなことを分かり合える人を増やしたい!
4
楽しみにしていること
Twitterの巡回 Writeup収集
#katagaitaiCTF
5
katagaitaiと愉快な仲間たち
 今回発表する人
 bata(@bata_24) リーダー
 trmr(@trmr105) センセイ
 資料レビュー
 askn(@asai_ken) エース
 運営手伝い
 yagihash...
今日の問題
 [CSAW CTF 2014] Crypto300 - FEAL
CODE
7
今日FEALをやるべき4つの理由
 共通鍵暗号だから
 公開鍵暗号の解き方がパターン化してる問題
 2014年のCTFベスト暗号問題に選ばれていたから
 Golden Flag Awards - http://golden-flags....
とりあえずやってみよう
① 問題につなげてみよう
$ nc katagaitai.orz.hm 8888 (18888 or 28888)
※ホスト名がリアルだけど、気にしない
つながりますか?
つながらない人は手をあげてください
9
とりあえずやってみよう
② ファイルを落としてみよう
以下のパスにサーバで動作しているpythonコードを置いてます
https://goo.gl/9XymPK
10
Pythonコードを見てみよう。11
本番サーバは違う値が
入ってます。
※鍵の生成方法もちょっ
と変えてます。
(固定値にしてます)
最初の問題
 まずはじめに次のSHA1ハッシュを要求される
 SHA1ハッシュの末尾16ビットが”1”
 入力値が与えられた文字列で始まる
 入力長は21バイト
 腕慣らしにやってみましょう。
 終わったら問題を解き始めてください。...
注意事項
 CSAW CTFの問題はFEAL4.3ですが、元となった暗号FEAL
を解説します。
 ほんのちょっとだけ仕様が違います。
 スライド中に出てくる「+」はXoRです
13
暗号問題の解き方
 CTFの暗号問題は二つに分けられる
 「公表されている暗号」か「独自に作った暗号」
 公表されている暗号
 RSA, AESなど
 過去に様々な研究者が解析し脆弱性を報告
 独自に作った暗号
 暗号を独自に作る...
暗号のソースコード15
コードを読んで脆弱性を
見つけるのは難しい
暗号問題の解き方手順16
いかに初動であたりをつけるかが重要
 マルウェアの解析手順 by JPCERTの中の人
 表層解析
 動的解析
 静的解析
 暗号の解析も同じ
 表層解析 → 何の暗号かあたりをつける
 動的解析 → 動...
暗号問題の解き方
 CTFの暗号問題は二つに分けられる
 「公表されている暗号」か「独自に作った暗号」
 公表されている暗号
 RSA, AESなど
 過去に様々な研究者が解析し脆弱性を報告
 独自に作った暗号
 暗号を独自に作る...
ぐぐってみた18
Wikipedia!!
Wikipedia19
Differencial Cryptanalysis!!
さらにぐぐってみた20
攻撃コードがあった!!!!!
解けた!!!!!21
これで勝つる!!!!!
本番ならOKですが
勉強会なので勉強します
共通鍵暗号と公開鍵暗号
 公開鍵暗号 – 暗号化と復号に異なる鍵を利用
 共通鍵暗号 – 共通の鍵を利用して暗号化/復号を実施
22
今日はこれ
共通鍵暗号のカテゴリー
 大体このようなカテゴリわけできる(はず)
 ストリーム暗号
 LFSR型:snow, K-Cipher2 etc.
 状態遷移型:RC4, trivium, chacha-20 etc.
 ブロック暗号
 ...
[参考]Feistel構造24
暗号に求められること
Key (K) Key (K)
暗号化 暗号化
 入力情報(鍵・平文)の適切な攪拌
出力の値は全く異なるのが望ましい
25
少しでも入力が違えば
差分解析
Plaintext A Plaintext A + ⊿
Key (K) Key (K)
暗号化 暗号化
diff
入力に差分
 入力情報(鍵・平文)ペアに差分を与える
 出力の差分を見ることで偏りがないか確認
出力差分に相関が出現...
FEAL-4のアルゴリズム
 FEAL-4
 4ラウンドFeistel構造
 ラウンド毎にf関数にて処理
27
http://www.theamazingking.com
FEAL-4のラウンド関数
 FEAL-4のラウンド関数f
 Byte(8-bit)ごとの処理
 G0,G1の2つの関数が存在
 G関数は入力a,bが「0」ならば、出力は「0」 or 「4 (1<<2)」
となる
28
http://w...
FEALのラウンド関数の解析
 次の条件を満たす入力を考える
 X0=X1 and X2=X3
 XoRで打ち消しが発生し、Y1およびY2が固定値に
29
http://www.theamazingking.com
4(1<<2) 16(...
FEALのラウンド関数の差分
 次の条件を満たす入力の出力差分を考える
 X0=X1 and X2=X3
 入力X, X’の出力の差分ΔYは?
30
http://www.theamazingking.com
FEALのラウンド関数の差分
 次の条件を満たす入力の出力差分を考える
 X0=X1 and X2=X3
 入力X, X’の出力の差分ΔYは?
31
http://www.theamazingking.com
4 16G(X0+4) G(...
FEALのラウンド関数の解析
 次のような入力ペアの出力差分を考える
 X = 0x00000000 (X0=0x00, X1=0x00, X2=0x00, X3=0x00)
 X’ = 0x80800000 (X0=0x80, X1=0...
FEALのラウンド関数の解析
 次のような入力ペアを考える
 X = 0x00000000 (X0=0x00, X1=0x00, X2=0x00, X3=0x00)
 X’ = 0x80800000 (X0=0x80, X1=0x80, ...
FEALの差分解析34
http://www.theamazingking.com
1ラウンドなら
特定の入力差分の際に
出力差分に偏り
途中の値はわからない
出力の値はわかる
FEALの差分解析35
http://www.theamazingking.com
全体を通した際に
出力差分は出るか?
1ラウンドなら
特定の入力差分の際に
出力差分に偏り
FEALの差分解析36
http://www.theamazingking.com
 次の差分を持つ平文ペアを入力する
 0x8080000080800000
0x80800000 0x80800000
暗号文に相関が出てほしい
FEALの差分解析37
http://www.theamazingking.com
 次の差分を持つ平文ペアを入力する
 0x8080000080800000
 同じ鍵で暗号化されているため鍵の入力差分は0
0x80800000 0x80...
FEALの差分解析38
http://www.theamazingking.com
 次の差分を持つ平文ペアを入力する
 0x8080000080800000
 同じ鍵で暗号化されているため鍵の入力差分は0
0x80800000 0x80...
FEALの差分解析39
http://www.theamazingking.com
 次の差分を持つ平文ペアを入力する
 0x8080000080800000
 同じ鍵で暗号化されているため鍵の入力差分は0
0x80800000 0x80...
FEALの最終ラウンドの差分解析
 左入力差分=0x02000000
 右入力差分は特定できない
40
0x02000000
key
f
Output
?????
Output
FEALの最終ラウンドの解析
 差分ではなく通常の処理で考える
41
key
f
暗号文(C1) 暗号文(C2)
入力(X1) 入力(X2)
FEALの最終ラウンドの解析42
key
f
暗号文(C1) 暗号文(C2)
C1+C2(=X2)
入力(X1) 入力(X2)
 差分ではなく通常の処理で考える
FEALの最終ラウンドの差分解析
 出力ペアの差分より最終ラウンドの右側の入力差分は
C1+C2+C1’+C2’=ΔC1+ΔC2
43
key
f
暗号文(C1) 暗号文(C2)
入力(X1) 入力(X2)
key
f
暗号文(C1’) 暗号...
FEALの最終ラウンドの差分解析44
0x02000000
key
f
出力差分(ΔC1)
ΔC1+ΔC2
入力差分(ΔX1) 入力差分(ΔX2)
出力差分(ΔC2)
最終ラウンドの全入出力差分を特定できた!
この値は?
FEALの最終ラウンドの差分解析
 出力ペアの差分より最終ラウンドの右側の入力差分は
C1+C2+C1’+C2’=ΔC1+ΔC2
 f関数の出力差分はf(C1+C2+key)+f(C1’+C2’+key)
45
key
f
暗号文(C1) ...
FEALの最終ラウンドの差分解析46
0x02000000
key
f
出力差分(ΔC1)
ΔC1+ΔC2
入力差分(ΔX1) 入力差分(ΔX2)
出力差分(ΔC2)
f(C1+C2+key)+f(C1’+C2’+key)
この値は?
ΔC1 ...
FEALの最終ラウンドの差分解析47
0x02000000
key
f
出力差分(ΔC1)
ΔC1+ΔC2
入力差分(ΔX1) 入力差分(ΔX2)
出力差分(ΔC2)
f(C1+C2+key)+f(C1’+C2’+key)
この値は?
ΔC1 ...
何ができたか?48
http://www.theamazingking.com
K3を導出できた!
FEALの次のラウンド鍵解読49
http://www.theamazingking.com
K3を解読したので
暗号文から逆算することで
3ラウンド目の出力が手に入る
FEALの次のラウンド鍵解読50
http://www.theamazingking.com
K3を解読したので
暗号文から逆算することで
3ラウンド目の出力が手に入る
今度は3ラウンド目の入力差分と
出力差分よりK2の鍵解読を実施
FEALの次のラウンド鍵解読51
http://www.theamazingking.com
K3を解読したので
暗号文から逆算することで
3ラウンド目の出力が手に入る
今度は3ラウンド目の入力差分と
出力差分よりK2の鍵解読を実施
これを繰り...
FEALの次のラウンド鍵解読52
http://www.theamazingking.com
K3を解読したので
暗号文から逆算することで
3ラウンド目の出力が手に入る
今度は3ラウンド目の入力差分と
出力差分よりK2の鍵解読を実施
これを繰り...
FEALの開始ラウンドの解析53
P1
key4
f
出力(C1)
P2
入力平文 入力平文
出力(C2)
key5
key0
FEALの開始ラウンドの解析54
P1
key4
f
出力(C1)
P2
入力平文 入力平文
出力(C2)
key5
key0
K4 = C1 + f(C2+K0) + P1
K5 = C2 + K4 + P1 + P2 = C1 + C2 +...
実習
 とりあえずやってみましょう
 先にwriteupを紹介します
 katagaitai版
 http://pastebin.com/eZaHEEQx
 http://pastebin.com/UweM5NsT
 他にも転がって...
trmr版FEALの解き方
 差分を使った解き方はいろいろある、と思う。
 あくまで一例。
 今回のwriteupの成り立ち
 trmrがpythonで書く
 速度が出ない
 bata氏がCで書き直す
 100倍高速化!!
 C...
解答
 writeupを動かすと
57
HackerLikesHakka
本番でのとき方
 1. ぐぐる
 2. 暗号を特定する
 3. 攻撃方針を決定する
 4. 公開されている暗号との違いを特定
 5. 攻撃する
 6. フラグゲット!
 今回のように考えて解く場合CSAW300点問題では無いは
ず...
参考文献
 参考文献
 The Amazing King
 http://www.theamazingking.com
 Wikipedia[英語版]
 https://en.wikipedia.org/wiki/FEAL
 暗号技...
Upcoming SlideShare
Loading in …5
×

Katagaitai CTF勉強会 #4 Crypto

3,884 views

Published on

20160123に秋葉原UDX、20160206に梅田ブリーゼプラザにて実施したkatagaitai勉強会 #4で利用したスライド±αです。

Published in: Technology
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2F4cEJi ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❤❤❤ http://bit.ly/2F4cEJi ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Katagaitai CTF勉強会 #4 Crypto

  1. 1. CTF勉強会 #4 Crypto 2016.01.23 TOKYO / 2016.02.06 OSAKA trmr (@trmr105) katagaitai
  2. 2. 注意事項  本スライドは勉強会で利用したものを元に作成しています。  勉強会では問題サーバを利用しましたが既に停止しています。  問題サーバのIPやホスト名が出てくる箇所がありますが、随時 読み替えをお願いいたします。  リンク切れ等ご容赦ください。  勉強会時点で誤っていた個所を一部修正しています。  問題は下記URLに配置しています。  http://pastebin.com/RfwJn2MM  次ページに勉強会参加者有志のwriteupを載せています。  私のwriteupよりも100倍いい出来なので、ぜひそちらも参照し てください。 2
  3. 3. Writeup & Impression3  katagaitai勉強会#4 開催後、reconで見つけたwriteupや感想です。  http://syagi.hatenablog.com/entry/2016/01/29/225258  linus404さん作。今頃は実装も終わってるはず。  http://encry1024.hatenablog.com/entry/2016/02/02/154645  encry1024さんによる感想。Rubyで回りきったのだろうか。  http://www.slideshare.net/YOKARO-MON/csaw-ctf-2014-quals-crypto300  you_0708さんによるwriteup。英語ですね。グローバルですね。  http://turn-up.hatenablog.com/entry/2016/02/01/192814  turn_upさんによる感想。加筆期待wktk。  https://fish.minidns.net/news/58  Kanataさんによる感想。上級編も感想書いてくれてましたね。ありがとうございます。  http://ydfj.blogspot.jp/2016/02/katagaitai-ctf-2016-med.html  Yudai Fujiwara さんによる感想。暇なときにコード書いたら連絡ください。  http://furutsuki.hatenablog.com/entry/2016/02/10/053531  Furutsukiさんによる感想。いずれ書いてください。  他載せられてない人。私のRecon力不足です。ごめんなさい。  もしwriteup書いたらtwitter等で連絡いただけると助かります。
  4. 4. Katagaitai勉強会とはなんぞや 好きなことを分かり合える人を増やしたい! 4
  5. 5. 楽しみにしていること Twitterの巡回 Writeup収集 #katagaitaiCTF 5
  6. 6. katagaitaiと愉快な仲間たち  今回発表する人  bata(@bata_24) リーダー  trmr(@trmr105) センセイ  資料レビュー  askn(@asai_ken) エース  運営手伝い  yagihash(@yagihashoo) シンジン # 実は他にもいるらしい # 総数は誰も知らない We are katagaitai! 6
  7. 7. 今日の問題  [CSAW CTF 2014] Crypto300 - FEAL CODE 7
  8. 8. 今日FEALをやるべき4つの理由  共通鍵暗号だから  公開鍵暗号の解き方がパターン化してる問題  2014年のCTFベスト暗号問題に選ばれていたから  Golden Flag Awards - http://golden-flags.com/  12月の上級編がこの問題と関連していたから  fealの後にsubmeに取り組むことをおすすめ  中級編と上級編の順番を逆にすればよかった…  最近の問題についていけてないから  子育てに追われている…  世の中の父親はすごい 8
  9. 9. とりあえずやってみよう ① 問題につなげてみよう $ nc katagaitai.orz.hm 8888 (18888 or 28888) ※ホスト名がリアルだけど、気にしない つながりますか? つながらない人は手をあげてください 9
  10. 10. とりあえずやってみよう ② ファイルを落としてみよう 以下のパスにサーバで動作しているpythonコードを置いてます https://goo.gl/9XymPK 10
  11. 11. Pythonコードを見てみよう。11 本番サーバは違う値が 入ってます。 ※鍵の生成方法もちょっ と変えてます。 (固定値にしてます)
  12. 12. 最初の問題  まずはじめに次のSHA1ハッシュを要求される  SHA1ハッシュの末尾16ビットが”1”  入力値が与えられた文字列で始まる  入力長は21バイト  腕慣らしにやってみましょう。  終わったら問題を解き始めてください。  Solver: https://goo.gl/WUbcgb 20分12 C実装のが速度的によい
  13. 13. 注意事項  CSAW CTFの問題はFEAL4.3ですが、元となった暗号FEAL を解説します。  ほんのちょっとだけ仕様が違います。  スライド中に出てくる「+」はXoRです 13
  14. 14. 暗号問題の解き方  CTFの暗号問題は二つに分けられる  「公表されている暗号」か「独自に作った暗号」  公表されている暗号  RSA, AESなど  過去に様々な研究者が解析し脆弱性を報告  独自に作った暗号  暗号を独自に作るのはものすごく大変  多くは公表されている暗号を基にして作成 14
  15. 15. 暗号のソースコード15 コードを読んで脆弱性を 見つけるのは難しい
  16. 16. 暗号問題の解き方手順16 いかに初動であたりをつけるかが重要  マルウェアの解析手順 by JPCERTの中の人  表層解析  動的解析  静的解析  暗号の解析も同じ  表層解析 → 何の暗号かあたりをつける  動的解析 → 動かしてどのような問題か把握  静的解析 → 問題の重要な場所だけちゃんと読む
  17. 17. 暗号問題の解き方  CTFの暗号問題は二つに分けられる  「公表されている暗号」か「独自に作った暗号」  公表されている暗号  RSA, AESなど  過去に様々な研究者が解析し脆弱性を報告  独自に作った暗号  暗号を独自に作るのはものすごく大変  多くは公表されている暗号を基にして作成 17 まずぐぐる まずぐぐる 暗号問題はぐぐることが大事
  18. 18. ぐぐってみた18 Wikipedia!!
  19. 19. Wikipedia19 Differencial Cryptanalysis!!
  20. 20. さらにぐぐってみた20 攻撃コードがあった!!!!!
  21. 21. 解けた!!!!!21 これで勝つる!!!!! 本番ならOKですが 勉強会なので勉強します
  22. 22. 共通鍵暗号と公開鍵暗号  公開鍵暗号 – 暗号化と復号に異なる鍵を利用  共通鍵暗号 – 共通の鍵を利用して暗号化/復号を実施 22 今日はこれ
  23. 23. 共通鍵暗号のカテゴリー  大体このようなカテゴリわけできる(はず)  ストリーム暗号  LFSR型:snow, K-Cipher2 etc.  状態遷移型:RC4, trivium, chacha-20 etc.  ブロック暗号  Feistel構造:DES, MISTY, Camellia, FEAL etc.  SPN構造:AES, Serpent etc. 今日はこれ 23 上級編はこっち
  24. 24. [参考]Feistel構造24
  25. 25. 暗号に求められること Key (K) Key (K) 暗号化 暗号化  入力情報(鍵・平文)の適切な攪拌 出力の値は全く異なるのが望ましい 25 少しでも入力が違えば
  26. 26. 差分解析 Plaintext A Plaintext A + ⊿ Key (K) Key (K) 暗号化 暗号化 diff 入力に差分  入力情報(鍵・平文)ペアに差分を与える  出力の差分を見ることで偏りがないか確認 出力差分に相関が出現! 26
  27. 27. FEAL-4のアルゴリズム  FEAL-4  4ラウンドFeistel構造  ラウンド毎にf関数にて処理 27 http://www.theamazingking.com
  28. 28. FEAL-4のラウンド関数  FEAL-4のラウンド関数f  Byte(8-bit)ごとの処理  G0,G1の2つの関数が存在  G関数は入力a,bが「0」ならば、出力は「0」 or 「4 (1<<2)」 となる 28 http://www.theamazingking.com
  29. 29. FEALのラウンド関数の解析  次の条件を満たす入力を考える  X0=X1 and X2=X3  XoRで打ち消しが発生し、Y1およびY2が固定値に 29 http://www.theamazingking.com 4(1<<2) 16(1<<4)G(X0+4) G(X3+16) X0=X1 X2=X3
  30. 30. FEALのラウンド関数の差分  次の条件を満たす入力の出力差分を考える  X0=X1 and X2=X3  入力X, X’の出力の差分ΔYは? 30 http://www.theamazingking.com
  31. 31. FEALのラウンド関数の差分  次の条件を満たす入力の出力差分を考える  X0=X1 and X2=X3  入力X, X’の出力の差分ΔYは? 31 http://www.theamazingking.com 4 16G(X0+4) G(X3+16) 4 16G(X’0+4) G(X’3+16) ΔY0 = G(X0+4)+G(X’0+4), ΔY1 = 0, ΔY2 = 0, ΔY3 = G(X’3+16)+G(X’3+16) ΔYに大きな偏り X’0=X’1 X’2=X’3X0=X1 X2=X3
  32. 32. FEALのラウンド関数の解析  次のような入力ペアの出力差分を考える  X = 0x00000000 (X0=0x00, X1=0x00, X2=0x00, X3=0x00)  X’ = 0x80800000 (X0=0x80, X1=0x80, X2=0x00, X3=0x00) 32 http://www.theamazingking.com G0(4)=0x10 G1(16) G1(16)G0(84)=0x12
  33. 33. FEALのラウンド関数の解析  次のような入力ペアを考える  X = 0x00000000 (X0=0x00, X1=0x00, X2=0x00, X3=0x00)  X’ = 0x80800000 (X0=0x80, X1=0x80, X2=0x00, X3=0x00) 33 http://www.theamazingking.com G0(4)=0x10 G1(16) G1(16)G0(84)=0x12 ΔY0 = 0x02, ΔY1 = 0, ΔY2 = 0, ΔY3 =0 ΔX=0x80800000ならば必ずΔY=0x02000000 特定の入力差分において、出力差分が一定となる
  34. 34. FEALの差分解析34 http://www.theamazingking.com 1ラウンドなら 特定の入力差分の際に 出力差分に偏り 途中の値はわからない 出力の値はわかる
  35. 35. FEALの差分解析35 http://www.theamazingking.com 全体を通した際に 出力差分は出るか? 1ラウンドなら 特定の入力差分の際に 出力差分に偏り
  36. 36. FEALの差分解析36 http://www.theamazingking.com  次の差分を持つ平文ペアを入力する  0x8080000080800000 0x80800000 0x80800000 暗号文に相関が出てほしい
  37. 37. FEALの差分解析37 http://www.theamazingking.com  次の差分を持つ平文ペアを入力する  0x8080000080800000  同じ鍵で暗号化されているため鍵の入力差分は0 0x80800000 0x80800000 0 0 0
  38. 38. FEALの差分解析38 http://www.theamazingking.com  次の差分を持つ平文ペアを入力する  0x8080000080800000  同じ鍵で暗号化されているため鍵の入力差分は0 0x80800000 0x80800000 0x80800000 0 0x02000000 ここの差分は不明 0 最終ラウンドへの 左入力の差分は 0x02000000 右入力の差分は 不明… 途中で出力の 差分が出せなくなる
  39. 39. FEALの差分解析39 http://www.theamazingking.com  次の差分を持つ平文ペアを入力する  0x8080000080800000  同じ鍵で暗号化されているため鍵の入力差分は0 0x80800000 0x80800000 入力に差分を与えることで 最終ラウンドの入力差分を 操作可能 今度は出力から考える 最終ラウンドに フォーカス
  40. 40. FEALの最終ラウンドの差分解析  左入力差分=0x02000000  右入力差分は特定できない 40 0x02000000 key f Output ????? Output
  41. 41. FEALの最終ラウンドの解析  差分ではなく通常の処理で考える 41 key f 暗号文(C1) 暗号文(C2) 入力(X1) 入力(X2)
  42. 42. FEALの最終ラウンドの解析42 key f 暗号文(C1) 暗号文(C2) C1+C2(=X2) 入力(X1) 入力(X2)  差分ではなく通常の処理で考える
  43. 43. FEALの最終ラウンドの差分解析  出力ペアの差分より最終ラウンドの右側の入力差分は C1+C2+C1’+C2’=ΔC1+ΔC2 43 key f 暗号文(C1) 暗号文(C2) 入力(X1) 入力(X2) key f 暗号文(C1’) 暗号文(C2’) 入力(X1’) 入力(X2’) C1+C2 C1’+C2’ 出力から右入力差分を特定可能
  44. 44. FEALの最終ラウンドの差分解析44 0x02000000 key f 出力差分(ΔC1) ΔC1+ΔC2 入力差分(ΔX1) 入力差分(ΔX2) 出力差分(ΔC2) 最終ラウンドの全入出力差分を特定できた! この値は?
  45. 45. FEALの最終ラウンドの差分解析  出力ペアの差分より最終ラウンドの右側の入力差分は C1+C2+C1’+C2’=ΔC1+ΔC2  f関数の出力差分はf(C1+C2+key)+f(C1’+C2’+key) 45 key f 暗号文(C1) 暗号文(C2) 入力(X1) 入力(X2) key f 暗号文(C1’) 暗号文(C2’) 入力(X1’) 入力(X2’) C1+C2 C1’+C2’ f(C1+C2+key) f(C1’+C2’+key)
  46. 46. FEALの最終ラウンドの差分解析46 0x02000000 key f 出力差分(ΔC1) ΔC1+ΔC2 入力差分(ΔX1) 入力差分(ΔX2) 出力差分(ΔC2) f(C1+C2+key)+f(C1’+C2’+key) この値は? ΔC1 = f(C1+C2+key)+f(C1’+C2’+key)+0x02000000
  47. 47. FEALの最終ラウンドの差分解析47 0x02000000 key f 出力差分(ΔC1) ΔC1+ΔC2 入力差分(ΔX1) 入力差分(ΔX2) 出力差分(ΔC2) f(C1+C2+key)+f(C1’+C2’+key) この値は? ΔC1 = f(C1+C2+key)+f(C1’+C2’+key)+0x02000000 この式を満たすkeyを 探索することで、値を特定可能!!!
  48. 48. 何ができたか?48 http://www.theamazingking.com K3を導出できた!
  49. 49. FEALの次のラウンド鍵解読49 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る
  50. 50. FEALの次のラウンド鍵解読50 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る 今度は3ラウンド目の入力差分と 出力差分よりK2の鍵解読を実施
  51. 51. FEALの次のラウンド鍵解読51 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る 今度は3ラウンド目の入力差分と 出力差分よりK2の鍵解読を実施 これを繰り返すことでK1~K3を 解読可能!
  52. 52. FEALの次のラウンド鍵解読52 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る 今度は3ラウンド目の入力差分と 出力差分よりK2の鍵解読を実施 これを繰り返すことでK1~K3を 解読可能!
  53. 53. FEALの開始ラウンドの解析53 P1 key4 f 出力(C1) P2 入力平文 入力平文 出力(C2) key5 key0
  54. 54. FEALの開始ラウンドの解析54 P1 key4 f 出力(C1) P2 入力平文 入力平文 出力(C2) key5 key0 K4 = C1 + f(C2+K0) + P1 K5 = C2 + K4 + P1 + P2 = C1 + C2 + P2 + f(C2 + K0) この式を満たすK0を 探索することで、K4, K5の値を特定可能!!!
  55. 55. 実習  とりあえずやってみましょう  先にwriteupを紹介します  katagaitai版  http://pastebin.com/eZaHEEQx  http://pastebin.com/UweM5NsT  他にも転がってる。Google先生は神。  解説はFEAL4でしたが問題はFEAL4.3です。  ちょっとだけある箇所が違います。  解けた人は上級編の問題をやってください  スライドはこちら http://www.slideshare.net/trmr105/katagaitai-ctf-3-crypto  残り15分になったらwriteupのコード解説しようと思ってます  音楽にリクエストがあれば@trmr105または#katagaitaiCTFで ツイートしてください  東京ではともりなおにジャックされた 90分55
  56. 56. trmr版FEALの解き方  差分を使った解き方はいろいろある、と思う。  あくまで一例。  今回のwriteupの成り立ち  trmrがpythonで書く  速度が出ない  bata氏がCで書き直す  100倍高速化!!  Cは神  writeupの動かし方  1)writeup_feal.cをtest.cにリネーム  2)writeup_feal.pyを実行  ※接続先のホスト名はPython実行前に確認&修正してください  ※まずはローカルで試すのをおすすめ 56
  57. 57. 解答  writeupを動かすと 57 HackerLikesHakka
  58. 58. 本番でのとき方  1. ぐぐる  2. 暗号を特定する  3. 攻撃方針を決定する  4. 公開されている暗号との違いを特定  5. 攻撃する  6. フラグゲット!  今回のように考えて解く場合CSAW300点問題では無いは ず  400~500点くらい?そもそもCSAWで出るのか説 58
  59. 59. 参考文献  参考文献  The Amazing King  http://www.theamazingking.com  Wikipedia[英語版]  https://en.wikipedia.org/wiki/FEAL  暗号技術大全 (アップデート希望)  その他論文 59

×