0

さて、これがユースケースです。やや長い(200〜500文字)文字列がたくさんあるので、より小さな決定論的ハッシュを使用したいと思います。160ビットのSHA1値全体をわずか20バイトに格納できるため、文字列ごとに1桁のスペースの改善が得られます。

しかしもちろん、まともな雪崩効果のある暗号化ハッシュを使用した場合でも、文字列のハッシュとの衝突について心配する必要があります。チャンスは無限に小さいことは知っていますが、もっと保守的になりたいと思います。私がこのようなことをした場合:

hash(input)= CONCAT(HF1(input)、HF2(input))

ここで、HF1は適切なロバストハッシュf()であり、HF2は別の明確でロバストなハッシュf()です。これにより、衝突の可能性がほぼ不可能になりますか(20バイトではなく40バイトのコストで)?注:ユースケースでのSHA-1のセキュリティ/暗号化への影響については気にしません。

明確化:元の質問は、外部ハッシュ関数のハッシュ衝突確率を変更しないハッシュを連結するのではなく、連結されたハッシュ値をハッシュすることについて提起されました。

4

2 に答える 2

3

「合理的な」ハッシュ関数を想定し、連結することで、より大きな出力スペースを持つハッシュ関数を作成するだけです。そうです、これは衝突の可能性を減らします。

しかし、いずれにしても、心配する価値はないでしょう。2 ^ 320は、宇宙の粒子数のようなものです。したがって、攻撃者を予期している場合にのみ心配する必要があります。

于 2013-01-11T03:29:52.683 に答える
0

私は最初に間違った質問をしました。これはおそらく私が探していた質問でした:

SHA1衝突の確率

これも光っていた

sha-1の衝突の弱点を理解する

連結サイズが20バイトよりも小さい2つのハッシュ関数、たとえば2つの異なる32ビットハッシュ関数があるかどうかを尋ねるのは公平だと思います。それらを連結すると、実際には無視できるほど小さい確率が生成されます。これは、連結されたものの2つ(または3つ)がSHA-1よりも小さいためです。

于 2013-01-11T03:49:26.900 に答える