パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

SHA-1ハッシュの衝突を現実的な時間で生成する攻撃「Shatterd」」記事へのコメント

  • 同じ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]という論文に書かれてるみたいなのですが……さっぱりわからん。

開いた括弧は必ず閉じる -- あるプログラマー

処理中...