多くのファイルのチェックサムを含むデータベースを作成したいのですが、チェックサムの衝突(同じチェックサムを持つ2つの異なるファイル)が心配です。
質問1:2つの異なるファイルが同じMD5合計を持つ確率はどれくらいですか?
回避策として、チェックサムを増やすことを考えました。小さなチェックサムから始めて、衝突の場合には、小さなチェックサムから導出できる大きなチェックサムを計算するので、データベースにすでにあるすべてのファイルのチェックサムを再計算する必要はありません...小さいサイズのチェックサムを検索できます。
質問2:どのチェックサム/ダイジェストアルゴリズムがこのトリックを実行できますか?特定のサイズの値を計算でき、(より小さなサイズの)「下位」互換性のあるチェックサムアルゴリズムが必要です。つまり。file1には0x1234の2バイトのチェックサムと0x12345678の4バイトのチェックサムがあります。2バイトのチェックサムは4バイトのチェックサムから導出できます。