「オープン分散クラウドストレージシステム」を開発しています。
オープンとは、誰でもファイルのホスティングに参加できることを意味します。
私の現在の設計では、ファイルコンテンツのsha1ハッシュをグローバルファイルIDとして使用しています。
クライアントはすでにこのハッシュ値を知っており、「帯域幅ドナー」からファイルを受信していることが与えられます。
クライアントは、ハッシュを生成して期待値と比較することにより、ファイルが実際に正しいものであることを確認する必要があります。
ただし、私の懸念は、誰かが意図的にファイルを変更して同じハッシュを生成する可能性があることです。私の知る限り、これはCRCファミリーのハッシュに対して簡単に実行できます。いくつかの「グーグル」は、MD5でも同じことが簡単であるという多くの主張を明らかにしました。
今私の質問は:蜂の基準を満たすハッシュアルゴリズムはありますか?
- 大量のデータに対して高速
- ハッシュ範囲で十分に分散されている(別名「一意」)
- 十分なターゲット範囲(「ビット長」)がある
- 意図的な衝突攻撃に耐性があります
他のすべての手段は、自分のニーズを満たすセットアップを実現するために、秘密のコンポーネント、たとえば、秘密のopensslキーやハッシュ関数の共有秘密のソルトを使用することを考えることができることを意味します。
残念ながら、私はそれを扱うことができません。