3

ファイルを識別するためにハッシュを使用しているとしましょう。そのため、ファイルを安全にする必要はありません。衝突を最小限に抑える必要があります。SIMDを使用して4つのハッシュを並行して実行し、最終結果をハッシュすることで、ハッシュを高速化できると考えていました。ハッシュが512ビットブロックを取るように設計されている場合、一度に4x512ビットブロックを取るファイルをステップスルーし、そこから4つのハッシュを生成します。次に、ファイルの最後で、結果の4つのハッシュを一緒にハッシュします。

この方法ではハッシュが貧弱になると確信しています...しかし、どれだけ貧弱ですか?エンベロープ計算の裏側はありますか?

4

1 に答える 1

4

ファイルのブロックをハッシュするよりも速くディスクから読み取ることができるという考えは、テストされていない仮定ですか?ディスクIO(SSDでさえ)は、ハッシュが行われているRAMよりも桁違いに遅くなります。

衝突を少なくすることは、すべてのハッシュの設計基準であり、すべての主流のハッシュはそれをうまく処理します。MD5などの主流のハッシュを使用するだけです。

ポスターが検討しているソリューションに固有であり、並列ハッシュがハッシュを弱めることは当然のことです。ブロックの並列ハッシュとポスターが述べたように結果を組み合わせるために特別に設計されたハッシュがありますが、おそらくまだ広く採用されていません(たとえば、 SHA3から途切れることなく撤退したMD6)

より一般的には、SIMDを使用するハッシュ関数の主流の実装があります。ハッシュ実装者はパフォーマンスを非常に意識しており、実装を最適化するのに時間がかかります。あなたは彼らの努力に匹敵する大変な仕事をするでしょう。強力なハッシュに最適なソフトウェアは、約6〜10サイクル/バイトです。 ハッシュが本当のボトルネックである場合は、ハードウェアアクセラレーションによるハッシュも利用できます。

于 2009-11-10T08:59:07.347 に答える