1

Adler32 と CRC は、 、 、 から安価に計算できる性質を持ってf(a || b)ます。このプロパティを持つ他の一般的な非暗号化ハッシュ関数はありますか?f(a)f(b)len(b)

コンテキスト (XY 問題を回避するため) は、ハッシュによってインデックス付けされたチャンクに文字列を分割して、文字列を重複排除していることです。入力文字列は、連結された一連のチャンクとして表すことができます。文字列のすべての表現が同じハッシュを持つようにハッシュ関数を使用したいと思います。これは、不特定の順序でストリーミングされているため、利用できない可能性があるため、基になるデータを必要とせずにチャンク ハッシュから直接計算できます。いつでも同じ場所に。

私の設計では、およそ 2^32 チャンクが必要です。衝突は非常にコストがかかりますが、正確性を損なうことはありません。それに基づいて、CRC64が機能すると思いますが、私の代替手段は何ですか. 将来の校正のために 128 ビット ハッシュを使用してもかまいません (例: データセットのサイズが大きくなる可能性があります)。

4

1 に答える 1

1

2 32個の 64 ビット CRCのすべてのペア間で衝突が 1 回発生する確率は、約 1/2 です。それが高すぎる場合は、128 ビット CRC を使用できます。これにより、1 回の衝突の確率が 3x10 -20に低下します。

于 2021-11-26T21:26:06.533 に答える