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

SHA-0、MD5、 MD4にコリジョン発見、reduced SHA-1も」記事へのコメント

  • > 驚くことに、コリジョン発見に要する時間はMD5でわずか数分で

    論文には、

    On IBM P690, it takes about one hour to find such M and M', after that, it takes only 15 seconds to 5 minutes to find N_i and N_i' , so that (M, N_i) and (M', N_i') will produce the same hash same value.

    とありますので、最初に1時間くらいかかるけど、それが終われば15秒から数分で計算できる、と読めます。
    それ以前に、この論文は不明瞭な点(our attack works for any given initial val

    • initial value は MD5 のアルゴリズム内で使われている4つの定数のことです.RFC1321 [ipa.go.jp] ではセクション 3.3 に書いてある A, B, C, D です.

      4バイトになってないものは先頭の 0 が抜けているような感じです.

      肝心の M, N を発見する方法がどこにも書いてない気がしますが...

      -- 暑いからスーツはやめよう
      • 重複を起こすファイルどっかに置いてありませんか? table1の
        内容をファイルにすればいいのだろうけど、うまくいかない。

        # 恥をしのばずAC
        • #607581 [srad.jp]でひろのぶ氏も言及していますが199.pdfではエンディアンの間違いがあるそうです。
          結城さんとこ [hyuki.com]経由でA collision in MD5 [mail-archive.com]

          ひょっとしてXia
          • by aurora (5149) on 2004年08月20日 0時43分 (#607766) 日記
            A real MD5 collision [rtfm.com] を見て perl で再現してみました.それぞれ実行結果を md5 にかけると 79054025255fb1a26e4bc422aef54eb4 で一致しました.後半部分はリトルエンディアンにするのが面倒だったのでちょっと変ですが,とりあえず.

            その1
            @M = (0x02dd31d1, 0xc4eee6c5, 0x069a3d69, 0x5cf9af98,
              0x87b5ca2f, 0xab7e4612, 0x3e580440, 0x897ffbb8,
              0x0634ad55, 0x02b3f409, 0x8388e483, 0x5a417125,
              0xe8255108, 0x9fc9cdf7, 0xf2bd1dd9, 0x5b3c3780);
            @N1 = (0xd8823e31, 0x56348f5b, 0xae6dacd4, 0x36c919c6,
              0xdd53e2b4, 0x87da03fd, 0x02396306, 0xd248cda0,
              0xe99f3342, 0x0f577ee8, 0xce54b670, 0x80a80d1e,
              0xc69821bc, 0xb6a88393, 0x96f9652b, 0x6ff72a70);
            print pack ("I*", @M) . pack("N*", @N1);

            その2
            @M_ = (0x02dd31d1, 0xc4eee6c5, 0x069a3d69, 0x5cf9af98,
              0x07b5ca2f, 0xab7e4612, 0x3e580440, 0x897ffbb8,
              0x0634ad55, 0x02b3f409, 0x8388e483, 0x5a41f125,
              0xe8255108, 0x9fc9cdf7, 0x72bd1dd9, 0x5b3c3780);
            @N2 = (0xd8823e31, 0x56348f5b, 0xae6dacd4, 0x36c919c6,
              0xdd53e234, 0x87da03fd, 0x02396306, 0xd248cda0,
              0xe99f3342, 0x0f577ee8, 0xce54b670, 0x80280d1e,
              0xc69821bc, 0xb6a88393, 0x96f965ab, 0x6ff72a70);
            print pack ("I*", @M_) . pack("N*", @N2);

            -- 暑いからスーツはやめよう
            親コメント

ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ

処理中...