CH-J Server ManagerSSH によるサーバー管理
メニュー
すべてのガイドと記事 →

SHA-256・SHA-512・BLAKE3:どのチェックサムを使うべきか

3つのアルゴリズムの安全性、速度、互換性の違いと、チェックサムでは証明できないこと、選び方を解説します。

短い答え

比較には同じアルゴリズムが必要なので、ファイルの公開元が示しているものを使ってください。新しい用途ではSHA-256が最も互換性の高い選択肢で、SHA-512も適しています。自分の大規模データには、関係するすべてのシステムでツールを利用できるなら、BLAKE3が最速の選択肢です。現在、3つとも安全とされており、実用的な攻撃はどれについても知られていません。

アルゴリズムの違い

SHA-256とSHA-512はNISTが標準化したSHA-2ファミリーに属し、コンプライアンス規則で要求されることもよくあります。BLAKE3はより新しく、NIST標準ではないため、そうした規則を満たさない場合があります。SHA-256とデフォルト出力のBLAKE3は256ビットを出力し、衝突耐性は約128ビットです。SHA-512は512ビットを出力し、耐性は約256ビットです。実際には、どちらの水準も実行可能な攻撃の能力をはるかに超えています。

速度はハードウェアによって変わる

BLAKE3は複数のCPUコアと最新のベクトル命令を活用する設計のため、大きなファイルでは通常、明確に優位に立ちます。SHA-2の各方式の結果は環境によって異なります。専用命令のない64ビットCPUではSHA-512のほうが速いことが多く、SHA拡張を持つCPUではSHA-256が高速化されます。キャッシュやディスクが結果に影響するため、自分のマシンで大きなファイルを使って測定してください。b3sumは別途インストールが必要な場合があります。

time sha256sum large.iso
time sha512sum large.iso
time b3sum large.iso

チェックサムが証明すること

チェックサムの一致は、ファイルがそのダイジェストの計算元と同一であることを示します。誰がファイルを作ったかは示しません。攻撃者がダウンロードファイルと同じページ上のチェックサムの両方を書き換えられる場合、比較は成功してしまいます。出所を確認するには、別の信頼できる経路から得たダイジェストか、GPGなどの署名が必要です。

sha256sum -c SHA256SUMS
gpg --verify SHA256SUMS.asc SHA256SUMS

避けるべきもの

MD5とSHA-1は衝突耐性が破られているため、意図的な改ざんへの対策には使うべきではありません。古いマニフェストに残っている場合もありますが、そこで検出できるのは偶発的な破損だけです。CRC-32やxxHashなどの非暗号学的関数は、速度と偶発的なエラーの検出を目的としており、セキュリティのために使うものではありません。

CH-J Server Managerのチェックサム機能

Hash & Checksumモジュールは3つのアルゴリズムをすべて備え、SHA-256、SHA-512、BLAKE3を推奨、MD5とSHA-1を破られた方式として表示します。ダイジェストの計算、ファイルの比較、期待値の検証が可能です。期待値そのものが信頼できるかどうかはモジュールでは判断できないため、信頼できる情報源から取得してください。アプリ自身の更新は、SHA-512とOpenPGP署名を併用して検証します。

詳しいドキュメント

NIST FIPS 180-4 →

BLAKE3 specification →

生体認証によるロック解除とセキュリティ →