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

MD4/MD5 コリジョンの実証コードが公開」記事へのコメント

  • この手のハッシュのコリジョンの話題が出るたびにいつも思うのですが,組み合わせて使うわけにはいかないのでしょうか?

    たとえば,MD5で同じハッシュ値の出る二つのデータ列は何とか得られるでしょうが,これらのデータ列のSHA-1のハッシュ値も一致するものを探すのは,さすがに無理だと思うのですが。

    ハッシュ値の長さが倍になるのは,各種の暗号化仕様にとってそんなに致命的なんでしょうか?
    • 却って解読のヒントが増えるだけだと思います。
      セキュリティ分野に関して素人考えは百害あって一利なし。
      • 今話題になってるのは、コリジョンが次々と見つかっている事です。
        AからMD5でハッシュ値を計算して、それが既知のハッシュ値Xと等しければ本物のAだ、と言えたのが、BからもXが計算されるのでは、ハッシュ値は計算前データの証明にならなくなってしまう、と。

        しかし、AからMD5で計算し、かつAからSHA-1で計算し、それぞれ既知のX、Yと等しいもの、とすればどうでしょう?
        MD5(B)=X , SHA-1(B)=Y を同時に満たすBが存在する確率は、片方の時の比ではないと思います。

        …という素人考えですがいかがでしょうか。
        • by Anonymous Coward
          >…という素人考えですがいかがでしょうか。

          単独のハッシュ関数では安全なのに、複数組み合わせると安全性が低下してしまう
          簡単な例を示してみます。

          a,bの2数からなるデータのハッシュ値を作る関数として、以下の2つがあるとします。
           hash1(a,b)= a+b
           hash2(a,b)= a-b
          この場合、どちらか片方のハッシュ関数の値からは元の値を求めることは不可能ですが、
          両方のハッシュ値があると、
              (hash1(a,b)+hash2(a,b))/2=a
              (hash1(a,b)-hash2(a,b))/2=b
          となり、元の値を求めることが出来てしまいます。

          実用されているハッシュ関数では上記の例のように簡単にはいきませんが、
          複数のハッシュ関数で求めた値を提供する場合安全性が低下する可能性があります。
          なので、複数のハッシュ値を提供するには、慎重な検討が必要です。
          #素人考えでレスしてるのでAC
          • 2つ使うと互いの弱衝突耐性の足を引っ張るんじゃないか、と言うのはその通りです。
            でも今は「2つ使うと強衝突耐性の低さをカバーできるんじゃないか」、という話題ですよね?
            • 脱線 (スコア:2, 参考になる)

              by seoth (17664) on 2005年11月18日 17時26分 (#834184)
              # 話の流れから脱線しますが。

              先のコメントを書きつつ、「MD5は死んだ」と言われる意味がようやく飲み込めました。
              つまり”関数単独で弱・強両方が高度である事が出来ない”点でもう使えないと言われてるわけですね。
              当然ひとつの関数で両方達成できたほうが良いに決まってるし、最近までMD5はそういう関数だと期待されていたわけですから。

              ハッシュ関数はこうして”死んで”いくのだなあ、と初歩的な事をしみじみ考えてしまいました。
              親コメント

ソースを見ろ -- ある4桁UID

処理中...