たとえば、md5 チェックサムと比較して、adler32 チェックサムはどの程度信頼できるのだろうか? ウィキペディアでは、adler32 は md5 よりも「信頼性がはるかに低い」と言われていましたが、どの程度、どのように?
より具体的には、サイズが 20GB 以上の (tar) ファイルを長時間アーカイブする場合の整合性チェックとして十分信頼できるかどうか疑問に思っています。
たとえば、md5 チェックサムと比較して、adler32 チェックサムはどの程度信頼できるのだろうか? ウィキペディアでは、adler32 は md5 よりも「信頼性がはるかに低い」と言われていましたが、どの程度、どのように?
より具体的には、サイズが 20GB 以上の (tar) ファイルを長時間アーカイブする場合の整合性チェックとして十分信頼できるかどうか疑問に思っています。
Adler-32 チェックサムのエラー チェック機能の詳細については、たとえば、フレッチャー チェックサムとアドラー チェックサムの再検討を参照してください。マキシノ、2006年。
この論文には、これら 2 つのチェックサムによって提供されるハミング距離に関する分析が含まれており、約 2^11 ビットまでのデータ ワードの残留エラー率を示しています。これは明らかに、2 ^ 38ビットの要件よりもはるかに少ないです...
Adler32 には、MD5 とはまったく異なる目的があります。Adler32 はチェックサムです。MD5 は安全なメッセージ ダイジェストです。Adler32 は高速ハッシュ用で、ビット スペースが小さく、アルゴリズムが単純です。その衝突率は低いですが、安全であるほど低くはありません。MD5、SHA、およびその他の暗号化/安全なハッシュ (またはメッセージ ダイジェスト) は、ビット空間がはるかに大きく、アルゴリズムがより複雑であるため、衝突がはるかに少なくなります。たとえば、SHA2-256 を比較してください。Adler32 のわずか 32 ビットと比較して 256 ビット。
アドラーには、たとえばハッシュ テーブルや迅速なデータ整合性チェックなどの目的があります。それでも、MD5 やその他の安全なダイジェストと同じ目的で設計されていません。
ところで、シンプルだがある程度信頼できるチェックサムが必要な場合は、Fletcher が Adler よりも優れているようです。おそらく単純な追加ベースのチェックサムではありませんが(衝突が非常に発生しやすいですが)、どちらもCRCよりも優れていると推測します。パフォーマンスとセキュリティの両方が必要な場合は、両方のアルゴリズムを使用してください。チェックサム アルゴリズムを迅速な計算とルックアップとして使用し、より大きなダイジェストが見つかった場合は、より完全な確認に使用します。
アーカイブの有効性を保証することに関するあなたの質問に答えるには、おそらくそれで十分だと思います。最良の選択?疑わしい。エラーの可能性?とても低い。
これは古いアルゴリズムです。ウィキペディアのページにあるように、「速度と引き換えに正確さ」です。要するに、いいえ、それに頼るべきではありません。
ポイントは、複数の破損がある場合でも、このチェックサムが「OK」として合格する可能性があることです。なだれ効果により、これは最新のアルゴリズム (古い MD5 でさえ) で発生する可能性が大幅に低くなります。
今日のマシンでは、速度はそれほど重要ではないため、TB 範囲のファイルであっても、最新のアルゴリズム (最新のもの) を使用することをお勧めします。古いチェックサムシステムで得られるわずかな時間の節約は、データ破損が検出されないという大幅に増加したリスクのバランスを取るには十分ではありません.そして私はあえて壊れた)アルゴリズム。
MD5やCRCと言うよりも信頼性が低くなります(実際にはCRCとほぼ同じです)。利点は速度であり、欠点は短いデータ (数百バイト) の場合に顕著です。つまり、ハッシュ値の分布が利用可能な 32 ビット出力を十分にカバーしていないということです。大きなファイルの場合、これは良い選択です。