Submit Search
Upload
Katagaitai CTF勉強会 #4 Crypto
•
8 likes
•
5,119 views
T
trmr
Follow
20160123に秋葉原UDX、20160206に梅田ブリーゼプラザにて実施したkatagaitai勉強会 #4で利用したスライド±αです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 59
Download now
Download to read offline
Recommended
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
trmr
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
trmr
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
暗認本読書会6
暗認本読書会6
MITSUNARI Shigeo
楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり
MITSUNARI Shigeo
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
MITSUNARI Shigeo
Recommended
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
trmr
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
trmr
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
暗号文のままで計算しよう - 準同型暗号入門 -
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
暗認本読書会6
暗認本読書会6
MITSUNARI Shigeo
楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり
MITSUNARI Shigeo
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
MITSUNARI Shigeo
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
秘密分散法の数理
秘密分散法の数理
Akito Tabira
暗認本読書会11
暗認本読書会11
MITSUNARI Shigeo
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
MITSUNARI Shigeo
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
Masaki Hara
楕円曲線と暗号
楕円曲線と暗号
MITSUNARI Shigeo
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
MITSUNARI Shigeo
新しい暗号技術
新しい暗号技術
MITSUNARI Shigeo
Rolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
暗認本読書会4
暗認本読書会4
MITSUNARI Shigeo
集約署名
集約署名
MITSUNARI Shigeo
暗認本読書会12
暗認本読書会12
MITSUNARI Shigeo
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
暗認本読書会5
暗認本読書会5
MITSUNARI Shigeo
Magic Ring Buffer
Magic Ring Buffer
Takeshi Fujiwara
Tensor flow勉強会3
Tensor flow勉強会3
tak9029
More Related Content
What's hot
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
MITSUNARI Shigeo
Rolling Hashを殺す話
Rolling Hashを殺す話
Nagisa Eto
秘密分散法の数理
秘密分散法の数理
Akito Tabira
暗認本読書会11
暗認本読書会11
MITSUNARI Shigeo
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
MITSUNARI Shigeo
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
MITSUNARI Shigeo
暗号技術の実装と数学
暗号技術の実装と数学
MITSUNARI Shigeo
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
Masaki Hara
楕円曲線と暗号
楕円曲線と暗号
MITSUNARI Shigeo
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
MITSUNARI Shigeo
新しい暗号技術
新しい暗号技術
MITSUNARI Shigeo
Rolling hash
Rolling hash
HCPC: 北海道大学競技プログラミングサークル
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
MITSUNARI Shigeo
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
shindannin
暗認本読書会4
暗認本読書会4
MITSUNARI Shigeo
集約署名
集約署名
MITSUNARI Shigeo
暗認本読書会12
暗認本読書会12
MITSUNARI Shigeo
指数時間アルゴリズム入門
指数時間アルゴリズム入門
Yoichi Iwata
明日使えないすごいビット演算
明日使えないすごいビット演算
京大 マイコンクラブ
暗認本読書会5
暗認本読書会5
MITSUNARI Shigeo
What's hot
(20)
AVX-512(フォーマット)詳解
AVX-512(フォーマット)詳解
Rolling Hashを殺す話
Rolling Hashを殺す話
秘密分散法の数理
秘密分散法の数理
暗認本読書会11
暗認本読書会11
SSE4.2の文字列処理命令の紹介
SSE4.2の文字列処理命令の紹介
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
暗号技術の実装と数学
暗号技術の実装と数学
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
楕円曲線と暗号
楕円曲線と暗号
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)
新しい暗号技術
新しい暗号技術
Rolling hash
Rolling hash
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
暗認本読書会4
暗認本読書会4
集約署名
集約署名
暗認本読書会12
暗認本読書会12
指数時間アルゴリズム入門
指数時間アルゴリズム入門
明日使えないすごいビット演算
明日使えないすごいビット演算
暗認本読書会5
暗認本読書会5
Similar to Katagaitai CTF勉強会 #4 Crypto
Magic Ring Buffer
Magic Ring Buffer
Takeshi Fujiwara
Tensor flow勉強会3
Tensor flow勉強会3
tak9029
「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc
Hiroyuki Ohnaka
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
徹 上野山
競プロでGo!
競プロでGo!
鈴木 セシル
JAWSUG 20210128
JAWSUG 20210128
陽平 山口
プログラマのための文書推薦入門
プログラマのための文書推薦入門
y-uti
Nseg2 自宅サーバ運用について
Nseg2 自宅サーバ運用について
hATrayflood
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka
OpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
kimukou_26 Kimukou
Similar to Katagaitai CTF勉強会 #4 Crypto
(11)
Magic Ring Buffer
Magic Ring Buffer
Tensor flow勉強会3
Tensor flow勉強会3
「TDDはじめて物語」 #tddbc
「TDDはじめて物語」 #tddbc
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
競プロでGo!
競プロでGo!
JAWSUG 20210128
JAWSUG 20210128
プログラマのための文書推薦入門
プログラマのための文書推薦入門
Nseg2 自宅サーバ運用について
Nseg2 自宅サーバ運用について
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
OpenVRやOpenXRの基本的なことを調べてみた
OpenVRやOpenXRの基本的なことを調べてみた
Twitter sphere of #twitter4j #twtr_hack
Twitter sphere of #twitter4j #twtr_hack
Recently uploaded
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(7)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
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
Download now