アカウント名:
パスワード:
同じSHA-1ハッシュを持つ2ファイルを作ることに成功したという報告。特定のファイルに対して、同じSHA-1ハッシュを持つファイルを作る、というのはまだできていない模様。
日本語のわりとわかりやすい解説がありました。https://www.slideshare.net/herumi/googlesha1 [slideshare.net]
SHA-1の作り方は、・20バイトの内部状態(CV)を持つ・ファイルの次64バイト(1ブロック)と現在のCVから次のCVを計算する・ファイルの最後まで進んだらCVを出力する(これがSHA-1)
という作りになっている。従って、途中でCVを同じでにきれば、それ以降が同じデータであれば同じSHA-1になる。
今回はPDFのヘッダ192バイト(3ブロック)までのCVを出発点(CV3)として、・ファイルAでは4ブロック目でCV4aを計算、5ブロック目でCV5aを計算・ファイルBでは4ブロック目でCV4bを計算、5ブロック目でCV5bを計算したときにCV5a == CV5bとなる4ブロック目5ブロック目を発見した。
ほんの僅かな部分だけ異なるファイルを作るのは簡単(といっても110GPU年)ですが、中身が全体的に異なるものを作るのは逆に難しそうです。
その組み合わせを探索するのにDVという特別なデータが入っていると効率がいいらしく、SHATTEREDのサイト [shattered.it]ではファイルにDVが入っているかどうかチェックしてくれます。そのへんはNew collision attacks on SHA-1based on optimal joint local-collision analysis [marc-stevens.nl]という論文に書かれてるみたいなのですが……さっぱりわからん。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
突破されたのは強衝突耐性 (スコア:5, 参考になる)
同じSHA-1ハッシュを持つ2ファイルを作ることに成功したという報告。
特定のファイルに対して、同じSHA-1ハッシュを持つファイルを作る、というのはまだできていない模様。
日本語のわりとわかりやすい解説がありました。
https://www.slideshare.net/herumi/googlesha1 [slideshare.net]
SHA-1の作り方は、
・20バイトの内部状態(CV)を持つ
・ファイルの次64バイト(1ブロック)と現在のCVから次のCVを計算する
・ファイルの最後まで進んだらCVを出力する(これがSHA-1)
という作りになっている。
従って、途中でCVを同じでにきれば、それ以降が同じデータであれば同じSHA-1になる。
今回はPDFのヘッダ192バイト(3ブロック)までのCVを出発点(CV3)として、
・ファイルAでは4ブロック目でCV4aを計算、5ブロック目でCV5aを計算
・ファイルBでは4ブロック目でCV4bを計算、5ブロック目でCV5bを計算
したときにCV5a == CV5bとなる4ブロック目5ブロック目を発見した。
ほんの僅かな部分だけ異なるファイルを作るのは簡単(といっても110GPU年)ですが、
中身が全体的に異なるものを作るのは逆に難しそうです。
その組み合わせを探索するのにDVという特別なデータが入っていると効率がいいらしく、
SHATTEREDのサイト [shattered.it]ではファイルにDVが入っているかどうかチェックしてくれます。
そのへんはNew collision attacks on SHA-1based on optimal joint local-collision analysis [marc-stevens.nl]という論文に書かれてるみたいなのですが……さっぱりわからん。