SlideShare a Scribd company logo
Submit Search
Upload
Katagaitai CTF勉強会 #4 Crypto
Report
Share
T
trmr
Follow
•
8 likes
•
5,091 views
1
of
59
Katagaitai CTF勉強会 #4 Crypto
•
8 likes
•
5,091 views
Report
Share
Download Now
Download to read offline
Technology
20160123に秋葉原UDX、20160206に梅田ブリーゼプラザにて実施したkatagaitai勉強会 #4で利用したスライド±αです。
Read more
T
trmr
Follow
Recommended
katagaitai CTF勉強会 #3 crypto by
katagaitai CTF勉強会 #3 crypto
trmr
7.4K views
•
85 slides
katagaitai CTF勉強会 #5 Crypto by
katagaitai CTF勉強会 #5 Crypto
trmr
6.4K views
•
149 slides
安全性を証明するために知っておくべき4つのこと by
安全性を証明するために知っておくべき4つのこと
shibataka000
7.8K views
•
29 slides
RSA暗号運用でやってはいけない n のこと #ssmjp by
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
58.4K views
•
32 slides
暗号文のままで計算しよう - 準同型暗号入門 - by
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
43.7K views
•
39 slides
HLSについて知っていることを話します by
HLSについて知っていることを話します
Moriyoshi Koizumi
38.7K views
•
24 slides
More Related Content
What's hot
PWNの超入門 大和セキュリティ神戸 2018-03-25 by
PWNの超入門 大和セキュリティ神戸 2018-03-25
Isaac Mathis
9.6K views
•
102 slides
.NET Core 3.0時代のメモリ管理 by
.NET Core 3.0時代のメモリ管理
KageShiron
2K views
•
40 slides
Zynq mp勉強会資料 by
Zynq mp勉強会資料
一路 川染
5.7K views
•
69 slides
僕がつくった 70個のうちの48個のWebサービス達 by
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
18.8K views
•
121 slides
RustによるGPUプログラミング環境 by
RustによるGPUプログラミング環境
KiyotomoHiroyasu
2.6K views
•
12 slides
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP by
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
Masashi Shibata
3K views
•
21 slides
What's hot
(20)
PWNの超入門 大和セキュリティ神戸 2018-03-25 by Isaac Mathis
PWNの超入門 大和セキュリティ神戸 2018-03-25
Isaac Mathis
•
9.6K views
.NET Core 3.0時代のメモリ管理 by KageShiron
.NET Core 3.0時代のメモリ管理
KageShiron
•
2K views
Zynq mp勉強会資料 by 一路 川染
Zynq mp勉強会資料
一路 川染
•
5.7K views
僕がつくった 70個のうちの48個のWebサービス達 by Yusuke Wada
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
•
18.8K views
RustによるGPUプログラミング環境 by KiyotomoHiroyasu
RustによるGPUプログラミング環境
KiyotomoHiroyasu
•
2.6K views
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP by Masashi Shibata
RTMPのはなし - RTMP1.0の仕様とコンセプト / Concepts and Specification of RTMP
Masashi Shibata
•
3K views
Ctfのためのpython入門 by shiracamus
Ctfのためのpython入門
shiracamus
•
41.8K views
JavaScript難読化読経 by Yosuke HASEGAWA
JavaScript難読化読経
Yosuke HASEGAWA
•
50K views
最適コントラスト補正による視程障害画像の明瞭化論文 by doboncho
最適コントラスト補正による視程障害画像の明瞭化論文
doboncho
•
861 views
Xbyakの紹介とその周辺 by MITSUNARI Shigeo
Xbyakの紹介とその周辺
MITSUNARI Shigeo
•
7.8K views
Haswellサーベイと有限体クラスの紹介 by MITSUNARI Shigeo
Haswellサーベイと有限体クラスの紹介
MITSUNARI Shigeo
•
5.4K views
目grep入門 +解説 by murachue
目grep入門 +解説
murachue
•
89.4K views
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015 by CODE BLUE
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
•
5.3K views
Vivado hls勉強会1(基礎編) by marsee101
Vivado hls勉強会1(基礎編)
marsee101
•
27K views
充足可能性問題のいろいろ by Hiroshi Yamashita
充足可能性問題のいろいろ
Hiroshi Yamashita
•
7.3K views
条件分岐とcmovとmaxps by MITSUNARI Shigeo
条件分岐とcmovとmaxps
MITSUNARI Shigeo
•
5.7K views
組み込み関数(intrinsic)によるSIMD入門 by Norishige Fukushima
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
•
47.5K views
Pythonによる黒魔術入門 by 大樹 小倉
Pythonによる黒魔術入門
大樹 小倉
•
44.4K views
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法 by MITSUNARI Shigeo
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
MITSUNARI Shigeo
•
3.9K views
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect - by Naoki Nagazumi
アプリ開発で知っておきたい認証技術 - OAuth 1.0 + OAuth 2.0 + OpenID Connect -
Naoki Nagazumi
•
22.8K views
Similar to Katagaitai CTF勉強会 #4 Crypto
Magic Ring Buffer by
Magic Ring Buffer
Takeshi Fujiwara
2.5K views
•
59 slides
Tensor flow勉強会3 by
Tensor flow勉強会3
tak9029
4.4K views
•
24 slides
「TDDはじめて物語」 #tddbc by
「TDDはじめて物語」 #tddbc
Hiroyuki Ohnaka
12.5K views
•
81 slides
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会) by
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
徹 上野山
319.6K views
•
61 slides
競プロでGo! by
競プロでGo!
鈴木 セシル
1.9K views
•
44 slides
JAWSUG 20210128 by
JAWSUG 20210128
陽平 山口
684 views
•
57 slides
Similar to Katagaitai CTF勉強会 #4 Crypto
(11)
Magic Ring Buffer by Takeshi Fujiwara
Magic Ring Buffer
Takeshi Fujiwara
•
2.5K views
Tensor flow勉強会3 by tak9029
Tensor flow勉強会3
tak9029
•
4.4K views
「TDDはじめて物語」 #tddbc by Hiroyuki Ohnaka
「TDDはじめて物語」 #tddbc
Hiroyuki Ohnaka
•
12.5K views
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会) by 徹 上野山
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
徹 上野山
•
319.6K views
競プロでGo! by 鈴木 セシル
競プロでGo!
鈴木 セシル
•
1.9K views
JAWSUG 20210128 by 陽平 山口
JAWSUG 20210128
陽平 山口
•
684 views
プログラマのための文書推薦入門 by y-uti
プログラマのための文書推薦入門
y-uti
•
19.2K views
Nseg2 自宅サーバ運用について by hATrayflood
Nseg2 自宅サーバ運用について
hATrayflood
•
2.3K views
Sourcecode Reading Workshop2010 by Hiro Yoshioka
Sourcecode Reading Workshop2010
Hiro Yoshioka
•
1.1K views
OpenVRやOpenXRの基本的なことを調べてみた by Takahiro Miyaura
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
•
2.1K views
Twitter sphere of #twitter4j #twtr_hack by kimukou_26 Kimukou
Twitter sphere of #twitter4j #twtr_hack
kimukou_26 Kimukou
•
2.8K views
Recently uploaded
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdf
icebreaker4
353 views
•
13 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門
mkoda
376 views
•
15 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
23 views
•
38 slides
The Things Stack説明資料 by The Things Industries by
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
71 views
•
29 slides
光コラボは契約してはいけない by
光コラボは契約してはいけない
Takuya Matsunaga
18 views
•
17 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
129 views
•
42 slides
Recently uploaded
(11)
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdf
icebreaker4
•
353 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門
mkoda
•
376 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
NTT DATA Technology & Innovation
•
23 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.
•
71 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない
Takuya Matsunaga
•
18 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
•
129 views
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development site
Atomu Hidaka
•
88 views
定例会スライド_キャチs 公開用.pdf by Keio Robotics Association
定例会スライド_キャチs 公開用.pdf
Keio Robotics Association
•
121 views
JJUG CCC.pptx by Kanta Sasaki
JJUG CCC.pptx
Kanta Sasaki
•
6 views
IPsec VPNとSSL-VPNの違い by 富士通クラウドテクノロジーズ株式会社
IPsec VPNとSSL-VPNの違い
富士通クラウドテクノロジーズ株式会社
•
471 views
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by Hitachi, Ltd. OSS Solution Center.
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Hitachi, Ltd. OSS Solution Center.
•
73 views
Katagaitai CTF勉強会 #4 Crypto
1.
CTF勉強会 #4 Crypto 2016.01.23 TOKYO
/ 2016.02.06 OSAKA trmr (@trmr105) katagaitai
2.
注意事項 本スライドは勉強会で利用したものを元に作成しています。 勉強会では問題サーバを利用しましたが既に停止しています。
問題サーバのIPやホスト名が出てくる箇所がありますが、随時 読み替えをお願いいたします。 リンク切れ等ご容赦ください。 勉強会時点で誤っていた個所を一部修正しています。 問題は下記URLに配置しています。 http://pastebin.com/RfwJn2MM 次ページに勉強会参加者有志のwriteupを載せています。 私のwriteupよりも100倍いい出来なので、ぜひそちらも参照し てください。 2
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.
Katagaitai勉強会とはなんぞや 好きなことを分かり合える人を増やしたい! 4
5.
楽しみにしていること Twitterの巡回 Writeup収集 #katagaitaiCTF 5
6.
katagaitaiと愉快な仲間たち 今回発表する人 bata(@bata_24)
リーダー trmr(@trmr105) センセイ 資料レビュー askn(@asai_ken) エース 運営手伝い yagihash(@yagihashoo) シンジン # 実は他にもいるらしい # 総数は誰も知らない We are katagaitai! 6
7.
今日の問題 [CSAW CTF
2014] Crypto300 - FEAL CODE 7
8.
今日FEALをやるべき4つの理由 共通鍵暗号だから 公開鍵暗号の解き方がパターン化してる問題
2014年のCTFベスト暗号問題に選ばれていたから Golden Flag Awards - http://golden-flags.com/ 12月の上級編がこの問題と関連していたから fealの後にsubmeに取り組むことをおすすめ 中級編と上級編の順番を逆にすればよかった… 最近の問題についていけてないから 子育てに追われている… 世の中の父親はすごい 8
9.
とりあえずやってみよう ① 問題につなげてみよう $ nc
katagaitai.orz.hm 8888 (18888 or 28888) ※ホスト名がリアルだけど、気にしない つながりますか? つながらない人は手をあげてください 9
10.
とりあえずやってみよう ② ファイルを落としてみよう 以下のパスにサーバで動作しているpythonコードを置いてます https://goo.gl/9XymPK 10
11.
Pythonコードを見てみよう。11 本番サーバは違う値が 入ってます。 ※鍵の生成方法もちょっ と変えてます。 (固定値にしてます)
12.
最初の問題 まずはじめに次のSHA1ハッシュを要求される SHA1ハッシュの末尾16ビットが”1”
入力値が与えられた文字列で始まる 入力長は21バイト 腕慣らしにやってみましょう。 終わったら問題を解き始めてください。 Solver: https://goo.gl/WUbcgb 20分12 C実装のが速度的によい
13.
注意事項 CSAW CTFの問題はFEAL4.3ですが、元となった暗号FEAL を解説します。
ほんのちょっとだけ仕様が違います。 スライド中に出てくる「+」はXoRです 13
14.
暗号問題の解き方 CTFの暗号問題は二つに分けられる 「公表されている暗号」か「独自に作った暗号」
公表されている暗号 RSA, AESなど 過去に様々な研究者が解析し脆弱性を報告 独自に作った暗号 暗号を独自に作るのはものすごく大変 多くは公表されている暗号を基にして作成 14
15.
暗号のソースコード15 コードを読んで脆弱性を 見つけるのは難しい
16.
暗号問題の解き方手順16 いかに初動であたりをつけるかが重要 マルウェアの解析手順 by
JPCERTの中の人 表層解析 動的解析 静的解析 暗号の解析も同じ 表層解析 → 何の暗号かあたりをつける 動的解析 → 動かしてどのような問題か把握 静的解析 → 問題の重要な場所だけちゃんと読む
17.
暗号問題の解き方 CTFの暗号問題は二つに分けられる 「公表されている暗号」か「独自に作った暗号」
公表されている暗号 RSA, AESなど 過去に様々な研究者が解析し脆弱性を報告 独自に作った暗号 暗号を独自に作るのはものすごく大変 多くは公表されている暗号を基にして作成 17 まずぐぐる まずぐぐる 暗号問題はぐぐることが大事
18.
ぐぐってみた18 Wikipedia!!
19.
Wikipedia19 Differencial Cryptanalysis!!
20.
さらにぐぐってみた20 攻撃コードがあった!!!!!
21.
解けた!!!!!21 これで勝つる!!!!! 本番ならOKですが 勉強会なので勉強します
22.
共通鍵暗号と公開鍵暗号 公開鍵暗号 –
暗号化と復号に異なる鍵を利用 共通鍵暗号 – 共通の鍵を利用して暗号化/復号を実施 22 今日はこれ
23.
共通鍵暗号のカテゴリー 大体このようなカテゴリわけできる(はず) ストリーム暗号
LFSR型:snow, K-Cipher2 etc. 状態遷移型:RC4, trivium, chacha-20 etc. ブロック暗号 Feistel構造:DES, MISTY, Camellia, FEAL etc. SPN構造:AES, Serpent etc. 今日はこれ 23 上級編はこっち
24.
[参考]Feistel構造24
25.
暗号に求められること Key (K) Key
(K) 暗号化 暗号化 入力情報(鍵・平文)の適切な攪拌 出力の値は全く異なるのが望ましい 25 少しでも入力が違えば
26.
差分解析 Plaintext A Plaintext
A + ⊿ Key (K) Key (K) 暗号化 暗号化 diff 入力に差分 入力情報(鍵・平文)ペアに差分を与える 出力の差分を見ることで偏りがないか確認 出力差分に相関が出現! 26
27.
FEAL-4のアルゴリズム FEAL-4 4ラウンドFeistel構造
ラウンド毎にf関数にて処理 27 http://www.theamazingking.com
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.
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.
FEALのラウンド関数の差分 次の条件を満たす入力の出力差分を考える X0=X1
and X2=X3 入力X, X’の出力の差分ΔYは? 30 http://www.theamazingking.com
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.
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.
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.
FEALの差分解析34 http://www.theamazingking.com 1ラウンドなら 特定の入力差分の際に 出力差分に偏り 途中の値はわからない 出力の値はわかる
35.
FEALの差分解析35 http://www.theamazingking.com 全体を通した際に 出力差分は出るか? 1ラウンドなら 特定の入力差分の際に 出力差分に偏り
36.
FEALの差分解析36 http://www.theamazingking.com 次の差分を持つ平文ペアを入力する 0x8080000080800000 0x80800000
0x80800000 暗号文に相関が出てほしい
37.
FEALの差分解析37 http://www.theamazingking.com 次の差分を持つ平文ペアを入力する 0x8080000080800000
同じ鍵で暗号化されているため鍵の入力差分は0 0x80800000 0x80800000 0 0 0
38.
FEALの差分解析38 http://www.theamazingking.com 次の差分を持つ平文ペアを入力する 0x8080000080800000
同じ鍵で暗号化されているため鍵の入力差分は0 0x80800000 0x80800000 0x80800000 0 0x02000000 ここの差分は不明 0 最終ラウンドへの 左入力の差分は 0x02000000 右入力の差分は 不明… 途中で出力の 差分が出せなくなる
39.
FEALの差分解析39 http://www.theamazingking.com 次の差分を持つ平文ペアを入力する 0x8080000080800000
同じ鍵で暗号化されているため鍵の入力差分は0 0x80800000 0x80800000 入力に差分を与えることで 最終ラウンドの入力差分を 操作可能 今度は出力から考える 最終ラウンドに フォーカス
40.
FEALの最終ラウンドの差分解析 左入力差分=0x02000000 右入力差分は特定できない 40 0x02000000 key f Output ????? Output
41.
FEALの最終ラウンドの解析 差分ではなく通常の処理で考える 41 key f 暗号文(C1) 暗号文(C2) 入力(X1)
入力(X2)
42.
FEALの最終ラウンドの解析42 key f 暗号文(C1) 暗号文(C2) C1+C2(=X2) 入力(X1) 入力(X2)
差分ではなく通常の処理で考える
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.
FEALの最終ラウンドの差分解析44 0x02000000 key f 出力差分(ΔC1) ΔC1+ΔC2 入力差分(ΔX1) 入力差分(ΔX2) 出力差分(ΔC2) 最終ラウンドの全入出力差分を特定できた! この値は?
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.
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.
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 http://www.theamazingking.com K3を導出できた!
49.
FEALの次のラウンド鍵解読49 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る
50.
FEALの次のラウンド鍵解読50 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る 今度は3ラウンド目の入力差分と 出力差分よりK2の鍵解読を実施
51.
FEALの次のラウンド鍵解読51 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る 今度は3ラウンド目の入力差分と 出力差分よりK2の鍵解読を実施 これを繰り返すことでK1~K3を 解読可能!
52.
FEALの次のラウンド鍵解読52 http://www.theamazingking.com K3を解読したので 暗号文から逆算することで 3ラウンド目の出力が手に入る 今度は3ラウンド目の入力差分と 出力差分よりK2の鍵解読を実施 これを繰り返すことでK1~K3を 解読可能!
53.
FEALの開始ラウンドの解析53 P1 key4 f 出力(C1) P2 入力平文 入力平文 出力(C2) key5 key0
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.
実習 とりあえずやってみましょう 先に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.
trmr版FEALの解き方 差分を使った解き方はいろいろある、と思う。 あくまで一例。
今回のwriteupの成り立ち trmrがpythonで書く 速度が出ない bata氏がCで書き直す 100倍高速化!! Cは神 writeupの動かし方 1)writeup_feal.cをtest.cにリネーム 2)writeup_feal.pyを実行 ※接続先のホスト名はPython実行前に確認&修正してください ※まずはローカルで試すのをおすすめ 56
57.
解答 writeupを動かすと 57 HackerLikesHakka
58.
本番でのとき方 1. ぐぐる
2. 暗号を特定する 3. 攻撃方針を決定する 4. 公開されている暗号との違いを特定 5. 攻撃する 6. フラグゲット! 今回のように考えて解く場合CSAW300点問題では無いは ず 400~500点くらい?そもそもCSAWで出るのか説 58
59.
参考文献 参考文献 The
Amazing King http://www.theamazingking.com Wikipedia[英語版] https://en.wikipedia.org/wiki/FEAL 暗号技術大全 (アップデート希望) その他論文 59