Enviar pesquisa
Carregar
Katagaitai CTF勉強会 #4 Crypto
•
8 gostaram
•
5,123 visualizações
T
trmr
Seguir
20160123に秋葉原UDX、20160206に梅田ブリーゼプラザにて実施したkatagaitai勉強会 #4で利用したスライド±αです。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 59
Baixar agora
Baixar para ler offline
Recomendados
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
trmr
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
ts21
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato
秘密分散法の数理
秘密分散法の数理
Akito Tabira
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
Recomendados
katagaitai CTF勉強会 #3 crypto
katagaitai CTF勉強会 #3 crypto
trmr
katagaitai CTF勉強会 #5 Crypto
katagaitai CTF勉強会 #5 Crypto
trmr
RSA暗号運用でやってはいけない n のこと #ssmjp
RSA暗号運用でやってはいけない n のこと #ssmjp
sonickun
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
ts21
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
Kimikazu Kato
秘密分散法の数理
秘密分散法の数理
Akito Tabira
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
準同型暗号の実装とMontgomery, Karatsuba, FFT の性能
MITSUNARI Shigeo
Xbyakの紹介とその周辺
Xbyakの紹介とその周辺
MITSUNARI Shigeo
楕円曲線と暗号
楕円曲線と暗号
MITSUNARI Shigeo
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
trmr
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
MITSUNARI Shigeo
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
Shota Shinogi
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
mariydi1
楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり
MITSUNARI Shigeo
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
CRC-32
CRC-32
7shi
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
MITSUNARI Shigeo
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
llvm入門
llvm入門
MITSUNARI Shigeo
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
Masaki Hara
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
Magic Ring Buffer
Magic Ring Buffer
Takeshi Fujiwara
Tensor flow勉強会3
Tensor flow勉強会3
tak9029
Mais conteúdo relacionado
Mais procurados
楕円曲線と暗号
楕円曲線と暗号
MITSUNARI Shigeo
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
trmr
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
MITSUNARI Shigeo
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
Shota Shinogi
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
Masahiro Sakai
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
kazkiti
ウェーブレット木の世界
ウェーブレット木の世界
Preferred Networks
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
HCPC: 北海道大学競技プログラミングサークル
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
mariydi1
楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり
MITSUNARI Shigeo
Binary indexed tree
Binary indexed tree
HCPC: 北海道大学競技プログラミングサークル
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Preferred Networks
CRC-32
CRC-32
7shi
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
natrium11321
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
MITSUNARI Shigeo
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
llvm入門
llvm入門
MITSUNARI Shigeo
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
Masaki Hara
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
京大 マイコンクラブ
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Preferred Networks
Mais procurados
(20)
楕円曲線と暗号
楕円曲線と暗号
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
ブロックチェーン系プロジェクトで着目される暗号技術
ブロックチェーン系プロジェクトで着目される暗号技術
CyberChefの使い方(HamaCTF2019 WriteUp編)
CyberChefの使い方(HamaCTF2019 WriteUp編)
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
初心者向けCTFのWeb分野の強化法
初心者向けCTFのWeb分野の強化法
ウェーブレット木の世界
ウェーブレット木の世界
グラフネットワーク〜フロー&カット〜
グラフネットワーク〜フロー&カット〜
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
初心者がRSA暗号を教わったら自力でCTFの問題が解けるようになった話
楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり
Binary indexed tree
Binary indexed tree
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
Pythonの理解を試みる 〜バイトコードインタプリタを作成する〜
CRC-32
CRC-32
競技プログラミングのためのC++入門
競技プログラミングのためのC++入門
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
llvm入門
llvm入門
Re永続データ構造が分からない人のためのスライド
Re永続データ構造が分からない人のためのスライド
暗号技術入門 秘密の国のアリス 総集編
暗号技術入門 秘密の国のアリス 総集編
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
[GTCJ2018]CuPy -NumPy互換GPUライブラリによるPythonでの高速計算- PFN奥田遼介
Semelhante a 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
Semelhante a 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
Último
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Último
(11)
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
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
Baixar agora