Upload
ryoichi-teramura
View
1.295
Download
1
Embed Size (px)
Citation preview
CTF 勉強会 #3Crypto 編20151220trmr (@trmr105)katagaitai
注意事項 本スライドは勉強会で利用したものを元に作成しています。
勉強会では問題サーバを利用しましたが、既に停止しています。 問題サーバの IP やホスト名が出てくる箇所がありますが、随時読み替えをお願いいたします。 リンク切れ等ご容赦ください。
問題は下記 URL に配置しています。 http://pastebin.com/Ea3Gm8w2
最後のページに勉強会参加者有志の writeup を載せています。 私の writeup よりも 100 倍いい出来なので、ぜひそちらを参照してください。
2
上級編とはなんぞや
好きなことを分かり合える人を増やしたい!
3
楽しみにしていることTwitter の巡回 Writeup 収集
#katagaitaiCTF
4
katagaitai と愉快な仲間たち 今回発表する人
bata(@bata_24) リーダー trmr(@trmr105) センセイ
資料レビュー askn(@asai_ken) エース
# 実は他にも結構いるらしい# 総数は誰も知らないWe are katagaitai!
5
今日の問題 [Ghost in the shellcode CTF 2013] Q20 - Subme
CODE
6
今日 subme をやるべき 4 つの理由 共通鍵暗号だから 公開鍵暗号の解き方がパターン化してる問題
あまり writeup ないから MSLC の writeup しか見つけられんかった たぶん MMA がもっと詳しい writeup 書いてくれるはず
暗号解析してるから 問題を解く過程が実際の暗号アルゴリズム解析に近い気がした
最近の問題についていけてないから 子育てに追われている 復帰目指して頑張る
7
最初の問題
まずはじめに次の SHA1 ハッシュを要求される SHA1 ハッシュの末尾 16 ビットが” 1” 入力値が与えられた文字列で始まる 入力長は 21 バイト
腕慣らしにやってみましょう。 終わったら問題を解き始めてください。
20 分8
共通鍵暗号と公開鍵暗号 共通鍵暗号 – 共通の鍵を利用して暗号化 / 復号を実施 公開鍵暗号 – 暗号化と復号に異なる鍵を利用
9
共通鍵暗号のカテゴリー 大体このようなカテゴリわけできる(はず) ストリーム暗号
LFSR 型: snow, K-Cipher2 etc. 状態遷移型: RC4, trivium, chacha-20 etc.
ブロック暗号 Feistel 構造: DES, MISTY, Camellia etc. SPN 構造: AES, Serpent etc.
今日はこれ
10
SPN 構造
© GaborPete
11
SPN 構造
© GaborPete
AddRoundKey
Substitution
Permutation
1 Round is
and iterate it
12
SPN 構造の概要 Substitution
非線形関数で乱雑化 小さい単位(バイト)ごとに処理することが多い 置換テーブル( S-box )が利用されることが多い
Permutation 全体をシャッフルして影響を広範化 ブロック全体に対する処理
Input
S S S S S S S S
Permutation
13
SPN 構造の概要 Substitution
非線形関数で乱雑化 小さい単位(バイト)ごとに処理することが多い 置換テーブル( S-box )が利用されることが多い
Permutation 全体をシャッフルして影響を広範化 ブロック全体に対する処理
S S S S S S S S
Permutation
1byte の違いが全体に影響
14
AES を見ていこう! AES: Advanced Encryption Standard
元 Rijndael 。リンデール?ラインダール? 2001 年に FIPS197 。米国標準なのにベルギー製 128, 192, 256bit があり、微妙に仕様が違う
15
AES の構造 AES: Advanced Encryption Standard
初期化として KEY EXPANTION
通常処理として下記処理を 1 ラウンドとする AddRoundKey SubBytes ShiftRows MixColumns
上記処理を 10 ラウンド繰り返す (128bit の場合 )
16
AES の構造 (1 ラウンド )Input
Key (K) (expanded)
Output
S S S S S S S S
MixColumns
1 AddRoundKey
2 SubBytes
ShiftRows 3 ShiftRows
4 MixColumns
17
AES の構造 (1 ラウンド )Input
Key (K) (expanded)
Output
S S S S S S S S
MixColumns
1 AddRoundKey
2 SubBytes→ Substitution
ShiftRows 3 ShiftRows→ Permutation
4 MixColumns→ Permutation
Permutation
18
AES の全体概観S S S S S S S S
ShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
平文
暗号文
19
AES の全体概観S S S S S S S S
ShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
平文
暗号文
AES を書くのはしんどい
20
subme のソースコード Subme.py
21
subme のソースコード Subme.py
22
1 AddRoundKey
2 Substitution
3 Permutation
subme のソースコード Subme.py
23
1 AddRoundKey
2 Substitution
3 Permutation
AES と同じ SPN 構造やん!
subme のソースコード 説明の都合上、下記と定義
24
Step 1
Step 2
Step 3
Subme の構造
Step1
Plaintext (P)
Key (K)
Ciphertext (C)
Step2
Step3
25
Subme Step1Input
Key (K)
Output
S S S S S S S S
Permutation
26
Subme Step1Input
Key (K)
Output
S S S S S S S S
Permutation
1-2 S-box変換=Substitution
1-3 置換テーブル変換=Permutation
1-1 入力に鍵の値を XoR=AddRoundKey
27
Subme Step2Input
Key (K)
Output
S S S S S S S S
Permutation
1-2 S-box変換=Substitution
1-3 置換テーブル変換=Permutation
1-1 入力に鍵の値を XoR=AddRoundKey
Step2 は Step1 と同じ処理
28
Subme Step3
Input
Key (K)
Output
3-1 入力値を byte 単位でリバース
3-2 鍵の値を足す ※ 桁上がり分は捨てる
Add
29
Subme 全体概観
Output
S S S S S S S S
Permutation
S S S S S S S S
Permutation
+
平文
暗号文
30
[再掲 ] AES の全体概観S S S S S S S S
ShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
平文
暗号文
31
比較
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S S
Permutation
S S S S S S S S
Permutation
AES subme32
比較
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S SShiftRowsPermutation
S S S S S S S S
Permutation
S S S S S S S S
Permutation
AES subme
Subme は解けそうな気がする!
33
比較 ラウンド数
AES-128:10 ラウンド Subme:2 ラウンド
変換処理 Substitution
AES: [0x63, 0x7c, 0x77,….,0xbb, 0x16] Subme: [0x63, 0x7c, 0x77,….,0xbb, 0x16]
Permutation AES: Shift-Rows&MixColumns Subme: bit並び替え
AES と同じ処理でラウンド数が少ない = 十分鍵の情報が混ざらんのでは?
34
入力情報の適切な攪拌
Key (K) Key (K)
暗号化 暗号化
入力情報(鍵・平文)の適切な攪拌ができてないと
暗号文に鍵の情報が残る
35
差分解析
Plaintext A Plaintext A + ⊿
Key (K) Key (K)
暗号化 暗号化diff
入力に差分
入力情報(鍵・平文)ペアに差分を与える 出力に相関が生じないか解析
入力情報が得られる
36
Subme の相関を見ていこう
S S S S S S S S
Permutation
S S S S S S S S
Permutation
+
平文
暗号文
Step ごとに相関を見ていく37
定義
Output
S S S S S S S S
Permutation
S S S S S S S S
Permutation
+
平文
暗号文
K1
K2
K3
C11
C12
C13C21
C22
C23C31
C=C33
38
Subme の相関( Step 1 )Input
Key (K)
Output
S S S S S S S S
Permutation
1-2 S-box変換=Substitution
1-3 置換テーブル変換=Permutation
1-1 入力に鍵の値を XoR=AddRoundKey
C11
C12
C13
39
Subme の相関( Step 1 )Input
Output
S S S S S S S S
Permutation
Key (K)C11 に 1byte差分を与える
Key (K)Permutation で攪拌も8bit にしか影響しない
Key (K)S-box で非線形変換されるが他の byte に影響はしない
C11
C12
C13
40
Subme の相関 (Step1)
S S S S S S S S
Permutation
S S S S S S S S
Permutation
Perm(S(A)) Perm(S(A+⊿))diff
AA + ⊿
B
41
Subme の差分 (Step1)
diff
この差分パターン B が出ればC11 が特定ペア A と A+⊿ である可能性が高い
𝑃=𝑃 [𝑜𝑢𝑡𝑝𝑢𝑡に差分 パターン|𝑖𝑛𝑝𝑢𝑡に差分 ]∗𝑃 [ 𝑖𝑛𝑝𝑢𝑡に差分]
¿𝑃 [𝑜𝑢𝑡𝑝𝑢𝑡に差分パターン]
¿
42
攻撃原理 (Step1) 前提:次の状況を仮定 (今回と同じ状況)
攻撃者は鍵の情報はわからない 任意の平文に対応した暗号文を取得可能(選択平文攻撃)
43
攻撃原理 (Step1) 差分⊿を決定 ある C11 ペア (A, A+⊿) を決定し差分パターン B を取得
44
S S S S S S S S
Permutation
S S S S S S S S
Permutation
C11[0] = A C11[0] = A + ⊿
K
diff
B
攻撃原理 (Step1)
S S S S S S S S
Permutation
S S S S S S S S
Permutation
下記の平文を入力 (σ は {0,..,255} の任意の値 )
K
45
P[0] = A+σ P[0] = A+⊿+σ
攻撃原理 (Step1)
S S S S S S S S
Permutation
S S S S S S S S
Permutation
σ ≠ K[0] のとき : とくになし
K
46
P[0] = A+σ P[0] = A+⊿+σ
A + σ + K[0] A + ⊿ +σ + K[0]
攻撃原理 (Step1)
S S S S S S S S
Permutation
S S S S S S S S
Permutation
σ = K[0] のとき : パターンが出る!
K
47
P[0] = A+σ P[0] = A+⊿+σ
A + K[0] + K[0] = A
A + ⊿ + K[0] + K[0]
= A + ⊿
攻撃原理 (Step1)
S S S S S S S S
Permutation
S S S S S S S S
Permutation
σ = K[0] のとき : パターンが出る!
K
48
P[0] = A+σ P[0] = A+⊿+σ
A + K[0] + K[0] = A
A + ⊿ + K[0] + K[0]
= A + ⊿
暗号文に特定の差分パターン B が出た際の平文の差分 σ の値が鍵の 1 バイトと推測可能!
現実は step は 2 回あるS S S S S S S S
Permutation
S S S S S S S S
Permutation
1byte目に差分
Step1 終了時に8bit差分
Step2 終了時に全体に広がる単に入力差分を与えるだけでは
Step2 終了時に全体に攪拌される→ 解析しづらい
Step1 の手法はこの時点の出力が得られることが前提
49
現実は step は 2 回あるS S S S S S S S
Permutation
S S S S S S S S
Permutation
1byte目に差分
Step1 終了時に8bit差分
Step2 終了時に全体に広がる単に入力差分を与えるだけでは
Step2 終了時に全体に攪拌される→ 解析しづらい
Step1 の手法はこの時点の出力が得られるこあと前提
50
Step を 2 回実施することで対策済み?
方針 問題点
1 回の Step だけなら鍵の推測が可能 2 回の Step 実施で鍵の推測が困難に
51
S S S S S S S S
Permutation
S S S S S S S S
Permutation
Step2への入力が様々な byte に広がることが問題
方針 問題点
1 回の Step だけなら鍵の推測が可能 2 回の Step 実施で鍵の推測が困難に
考察 Step1 の出力が広がらなければ Step2 の出力は Step1 と同等に
52
S S S S S S S S
Permutation
S S S S S S S S
Permutation
都合のよい処理をする Step1
Step1 の出力が1byte にしか広がらなければ
Step2 の出力が先の Step1 と同等に
方針 問題点
1 回の Step だけなら鍵の推測が可能 2 回の Step 実施で鍵の推測が困難に
考察 Step1 の出力が広がらなければ Step2 の出力は Step1 と同等に
53
S S S S S S S S
Permutation
全体に広がってしまう…。
入力差分を1bit にしてみる
S S S S S S S S
Permutation
S-box がbyte-to-byte変換
方針 問題点
1 回の Step だけなら鍵の推測が可能 2 回の Step 実施で鍵の推測が困難に
考察 Step1 の出力が広がらなければ Step2 の出力は Step1 と同等に
54
S S S S S S S S
Permutation
全体に広がってしまう…。
入力差分を1bit にしてみる
S S S S S S S S
Permutation
S-box がbyte-to-byte変換
ここじゃね?
方針 問題点
1 回の Step だけなら鍵の推測が可能 2 回の Step 実施で鍵の推測が困難に
考察 Step1 の出力が広がらなければ Step2 の出力は Step1 と同等に
55
S S S S S S S S
Permutation
鍵が解読できるパターンが出力!
ここの差分が1bit であれば
S S S S S S S S
Permutation
Permutation では影響範囲は広がらない
方針 問題点
1 回の Step だけなら鍵の推測が可能 2 回の Step 実施で鍵の推測が困難に
考察 Step1 の出力が広がらなければ Step2 の出力は Step1 と同等に
56
S S S S S S S S
Permutation
鍵が解読できるパターンが出力!
ここの差分が1bit であれば
S S S S S S S S
Permutation
Permutation では影響範囲は広がらない
とは言っても直接内部状態はいじれない
方針 問題点
1 回の Step だけなら鍵の推測が可能 2 回の Step 実施で鍵の推測が困難に
考察 Step1 の出力が広がらなければ Step2 の出力は Step1 と同等に
方針 S-box を 1 回通過後に 1bit差分を 生み出す平文ペアを入力 特定の出力が出る差分を探索
57
S S S S S S S S
Permutation
S S S S S S S S
Permutation
S-box 通過後に 1bit差分を生み出すような平文ペアを入力
特定の出力差分パターンをゲット!
平文の作り方
S S S S S S S S
Permutation
S S S S S S S S
Permutation
実際に差分がある状態から逆算
K
58
C12[0] = D C12’[0] = D+1
平文の作り方
S S S S S S S S
Permutation
S S S S S S S S
Permutation
実際に差分がある状態から逆算
K
59
C12[0] = D C12’[0] = D+1
C11[0] = inv_S[D] C12’[0] = inv_S[D+1]
平文の作り方
S S S S S S S S
Permutation
S S S S S S S S
Permutation
実際に差分がある状態から逆算
K
60
C12[0] = D C12’[0] = D+1
C11[0] = inv_S[D] C12’[0] = inv_S[D+1]
P[0] = inv_S[D]+σ P’[0] = inv_S[D+1]+σ
平文の作り方
S S S S S S S S
Permutation
S S S S S S S S
Permutation
実際に差分がある状態から逆算
K
61
C12[0] = D C12’[0] = D+ 1
C11[0] = inv_S[D] C12’[0] = inv_S[D+1]
P[0] = inv_S[D]+σ P’[0] = inv_S[D+1]+σ
σ=K[0] のとき暗号文に特定の差分パターン B が出力σ の値が鍵の 1 バイトと推測可能!
K1, K2 の鍵が解読可能?S S S S S S S S
Permutation
S S S S S S S S
Permutation
1) 順次試していくことで K1 が解読
62
2) ここで同様の手順を実施することで K2 が解読
K1, K2 の鍵が解読可能?S S S S S S S S
Permutation
S S S S S S S S
Permutation
1) 順次試していくことで K1 が解読
63
2) ここで同様の手順を実施することで K2 が解読
なんか忘れてない?
Subme の相関 (Step3) 鍵の処理が XoR ではなく Add
2進数で見た際に桁上がりの概念が発生 XoR で差分をとった際にノイズが混じる
差分をとる際に桁上がりを意識する必要がある
Input = Step2 の出力Key (K)
Output
3-1 入力値を byte 単位でリバース
3-2 鍵の値を足す ※ 桁上がり分は捨てる
Add
64
Subme の相関 (Step3) もし K3 が XoR であれば Step2 の出力が XoR で出る
Input = Step2 の出力
Output
65
Input = Step2 の出力
Outputdiff
Subme の相関 (Step3) もし K3 が Add であれば Step2 の出力が XoR で出る
Input = Step2 の出力
Output
66
Input = Step2 の出力
Outputdiff
足し算なので XoR でStep2 の出力が出ない
Add と XoR の違い XoR の場合1111 0 1111
1111 0 1 0 0 1
67
暗号文 C
暗号文 C’
0 1 0 0 1 1 0 1 0 K3
0 1 0 0 1 1 0 1 0 K3
1 0 1 1 1 0 1 0 1
1 0 1 1 0 0 0 1 1
C23
C23’
XoR
XoR
Add と XoR の違い XoR の場合1111 0 1111
1111 0 1 0 0 1
暗号文の XoR
0 0 0 0 1 0 1 1 0
68
暗号文 C
暗号文 C’
0 1 0 0 1 1 0 1 0 K3
0 1 0 0 1 1 0 1 0 K3
1 0 1 1 1 0 1 0 1
1 0 1 1 0 0 0 1 1
C23
C23’
XoR
XoR
C23 の XoR
0 0 0 0 1 0 1 1 0
期待する差分パターン出力差分パターン
Add と XoR の違い XoR の場合1111 0 1111
1111 0 1 0 0 1
暗号文の XoR
0 0 0 0 1 0 1 1 0
69
暗号文 C
暗号文 C’
0 1 0 0 1 1 0 1 0 K3
0 1 0 0 1 1 0 1 0 K3
1 0 1 1 1 0 1 0 1
1 0 1 1 0 0 0 1 1
C23
C23’
XoR
XoR
C23 の XoR
0 0 0 0 1 0 1 1 0
期待する差分パターン出力差分パターン
K3 が XoR であれば暗号文ペアの XoR はC23, C23’ の XoR と一致する
Add と XoR の違い Add の場合
0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 0 1
70
暗号文 C
暗号文 C’
0 1 0 0 1 1 0 1 0 K3
0 1 0 0 1 1 0 1 0 K3
1 0 1 1 1 0 1 0 1
1 0 1 1 0 0 0 1 1
C23
C23’
Add
Add
Add と XoR の違い Add の場合
0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 0 1
71
暗号文 C
暗号文 C’
0 1 0 0 1 1 0 1 0 K3
0 1 0 0 1 1 0 1 0 K3
1 0 1 1 1 0 1 0 1
1 0 1 1 0 0 0 1 1
C23
C23’
Add
Add
暗号文の XoR
1 1 1 1 1 0 0 1 0
C23 の XoR
0 0 0 0 1 0 1 1 0
期待する差分パターン出力差分パターン
Add と XoR の違い Add の場合
0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 0 1
72
暗号文 C
暗号文 C’
0 1 0 0 1 1 0 1 0 K3
0 1 0 0 1 1 0 1 0 K3
1 0 1 1 1 0 1 0 1
1 0 1 1 0 0 0 1 1
C23
C23’
Add
Add
暗号文の XoR
1 1 1 1 1 0 0 1 0
C23 の XoR
0 0 0 0 1 0 1 1 0
期待する差分パターン出力差分パターン
K3 が Add なので暗号文ペアの XoR はC23, C23’ の XoR と一致しない
Add と XoR の違い Add と XoR の違い = 繰り上がり
XoR
1 1 1 1 0 0 1 0 0
73
0 0 0 0 1 0 1 1 0
1 1 1 1 1 0 0 1 0
C23,C23’ の差分Add の出力差分
Add の出力差分(繰り上がり)の特徴・ C23,C23’ の差分で 1 が立ってる場所以降に 1 が出力・必ず連続して出力
trmr版 Step3攻略 下記手法で識別
もっといい方法はあるはず1 0 0 1 0 0 0 0 1
74
事前に C23,C23’ の差分パターン取得
trmr版 Step3攻略 下記手法で識別
もっといい方法はあるはず1 0 0 1 0 0 0 0 1
75
事前に C23,C23’ の差分パターン取得1 0 1 0 0 1 0 1 1平文ペア P[0], P’[0]の diff 結果
XoR
0 0 1 1 0 1 0 1 0XoR 結果が次の条件を満たすか確認・ C23,C23’ で 1 が立ってる場所から連続して 1 が立っているかNG
すべての鍵を解読可能
S S S S S S S S
Permutation
S S S S S S S S
Permutation
+
Step ごとに鍵を導出76
1) 順次試していくことで K1 が解読
2) 順次試していくことで K2 が解読
3)K3 = 暗号文 – C23
実習 とりあえずやってみましょう
先に writeup を紹介します trmr版: http://pastebin.com/WQdc2knT MSLC版: http://mslc.ctf.su/wp/gits-ctf-2013-crypto-500
わかる人はガシガシやってください 残り 30 分になったら writeup のコード解説しようと思ってます
が、そんな良いコードでもないのであんまやりたくないです 誰か書き直して
音楽にリクエストがあれば@trmr105 または #katagaitai でツイートしてください
90 分77
trmr版 Subme の解き方 差分を使った解き方はいろいろある、と思う。
あくまで一例。
78
trmr版 Subme の解き方 1) C12 の差分リストを GET
79
C12 が 1bit 違うと C22 は 1byte 異なる。それぞれの出力差分が出る場所を、 subme のpermutation テーブルより求めれば、差分リストとなる
trmr版 Subme の解き方 2) 鍵を戻すよー
80
C12 と差分 1 ビットの C12’ を作成Inv_S変換したものを暗号化※リスト処理してるのは、サーバ負荷と計算速度のため
出力の diff が差分リストに合致してるかチェック
trmr版 Subme の解き方 3) 差分チェック (MSLC インスパイア )
そんな変わったことはしてないけど
81
差分リストの場所以降は繰り上がりの可能性あり
実際の出力差分とリストの違いが連続しなければ繰り上がりの可能性がなくなったと仮定繰り上がりの可能性がない状態で出力差分とリストに違いがあれば
NG
解答 Key{HackerLikesHakkaAme}
※k1||k2||k3[::-1] の値
Flag{HackTheKatagaitai!}
と、いう値が勉強会の問題サーバでは入っていました。
82
[余談 ]当日の trmr Step3
鍵を Add Add は XoR と高い相関 2 つの出力の差分をとればほぼ消せる
Step1,2 S-box
s = [0x63, 0x7c, 0x77,….,0xbb, 0x16]→ AES と同じ s-box を利用
Permutation → bit の並び替え 実施したこと
Step3 はいったん無視して 2 回 Step1 を通った入力と出力に着目 差分を与えたペアを作成し、相関分析 → 解けなかった
何かしら差分を与えて、それらのペアを XoR してやれば、面白い相関が出そう
AES と同じ s-box→ いったん安全と仮定置換テーブル
→ 1byte の違いを 8bit に攪拌→ 1 回のラウンドで大きく攪拌するわけではない
83
参考文献 参考文献
More Smoked Leet Chicken http://mslc.ctf.su/wp/gits-ctf-2013-crypto-500/
Wikipedia[英語版 ] https://
en.wikipedia.org/wiki/Advanced_Encryption_Standard 暗号技術大全 ( アップデート希望 ) その他論文
84
Writeup & Impression85
勉強会実施後の recon で見つけた writeup や感想です。 http://fish.minidns.net/news/55
kanata さんによる感想。今頃解いてくれてるはず? http://qiita.com/kusano_k/items/33d3d634f80a4999a400
kusano_k さんによる writeup 。 3段目の導出処理を変えてるのがさすがです。 https://bitbucket.org/snippets/nomeaning777/kEK5j
no_meaning さんによる writeup 。 ruby にて記述。これも 3段目の導出処理を変えてますね。
他載せられてない人。私の Recon 力不足です。ごめんなさい。 もし writeup 書いたら twitter 等で連絡いただけると助かります。