朝の待ち時間の有効活用
① サーバにつなげてみよう
$ nckatagaitai.orz.hm 7777 (17777 or 27777 or 37777)
② ローカルで待ち受けてみよう
# socat tcp-listen:7777,fork,reuseaddr exec:"stdbuf -i0 -o0 python
crypto200.py“
③ 問題を眺めてみよう
18 10分
Merkle-Damgård構造37
内部
状態𝐼𝑉 …
Hello, World
m1m2 m3
① メッセージを分割
pad
② パディング付与
関
数
R
関
数
R
関
数
R
関
数
R
③ 分割したメッセージごとに処理
を繰り返して内部状態を生成
e4d7f1b4ed2e42d15898f4b27b019da4
出力
関数
④ 内部状態からハッシュ値を出力
Wangの攻撃
ΔH0を打ち消すΔH1を出力する入力ペアを効率よく探索する
手法を提案
Wangの発表のあとMD5に対する攻撃が活発化
Klimaや佐々木らによりさらに高速化
数秒で衝突探索できるまでに発展
118
[1] How to break MD5 and other hash functions, Xiaoyun Wang et al.,
http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf
[3] On collisions for MD5, M. Stevens,
http://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%2
0-%20M.M.J.%20Stevens.pdf
[2] Finding MD5 Collisions on a Notebook PC Using Multi-message
Modifications, V. Klima, http://eprint.iacr.org/2005/102.pdf
119.
Wangの攻撃
ΔH0を打ち消すΔH1を出力する入力ペアを効率よく探索する
手法を提案
Wangの発表のあとMD5に対する攻撃が活発化
Klimaや佐々木らによりさらに高速化
数秒で衝突探索できるまでに発展
119
[1] How to break MD5 and other hash functions, Xiaoyun Wang et al.,
http://merlot.usc.edu/csac-f06/papers/Wang05a.pdf
[3] On collisions for MD5, M. Stevens,
http://www.win.tue.nl/hashclash/On%20Collisions%20for%20MD5%2
0-%20M.M.J.%20Stevens.pdf
[2] Finding MD5 Collisions on a Notebook PC Using Multi-message
Modifications, V. Klima, http://eprint.iacr.org/2005/102.pdf
自分で「差分パス」を発見するのは難しい
→ 先人の知恵に頼る
解答(衝突ペアの増加)
さらに[m1 m2]にFASTCOLLによりm3,m’3が付与されたと仮定
下記メッセージが衝突
md5[m1 m2 m3]
md5[m1 m’2 m’3]
137
m1
R
m2
R
m’2
R
m3
R
m’3
R
[m1 m’2]にm3, m’3を付与
m3
R
m’3
R
138.
解答(衝突ペアの増加)
さらに[m1 m2]にFASTCOLLによりm3,m’3が付与されたと仮定
下記メッセージが衝突
md5[m1 m2 m3]
md5[m1 m’2 m’3]
138
m1
R
m2
R
m’2
R
m3
R
m’3
R
[m1 m’2]にm3, m’3を付与
m3
R
m’3
R
下記4メッセージが衝突
md5[m1 m2 m3]
md5[m1 m2 m’3]
md5[m1 m’2 m3]
md5[m1 m’2 m’3]
→ 倍々ゲームで衝突
メッセージを増殖可能
解答(衝突ペアの増加)143
1_msg1_msg1.exe =1.exe+m2+m3
1_msg1_msg2.exe = 1.exe+m2+m’3
1_msg2_msg1.exe = 1.exe+m’2+m3
1_msg2_msg2.exe = 1.exe+m’2+m’3
m1
R
m2
R
m’2
R
m3
R
m’3
R
m3
R
m’3
R
参考文献
[1] Howto break MD5 and other hash functions, Xiaoyun Wang et al., http://merlot.usc.edu/csac-
f06/papers/Wang05a.pdf
[2] Finding MD5 Collisions on a Notebook PC Using Multi-message Modifications, V. Klima,
http://eprint.iacr.org/2005/102.pdf
[3] On collisions for MD5, M. Stevens, http://www.win.tue.nl/hashclash/On%20Collisions%20for%
20MD5%20-%20M.M.J.%20Stevens.pdf
[4] Free Start Collision for full SHA-1, M. Stevens et al., https://marc-stevens.nl/research/papers/K
PS_freestart80.pdf
[5] The Keccak sponge function family, Guido Bertoni et al., http://keccak.noekeon.org/specs_sum
mary.html
[5] 新版暗号技術入門 秘密の国のアリス, 結城浩
[6] 暗号技術大全, Bruce Schneier
145