SHA-512ハッシュアルゴリズム

SHA-512の512ビット出力について解説。SHA-256よりSHA-512を選ぶべき場面、64ビットシステムでのパフォーマンス、高セキュリティ用途での役割を学びます。

SHA-512

詳細な説明

SHA-512はSHA-2ファミリーの最大メンバーで、512ビット(64バイト)のダイジェスト(128文字の16進数文字列)を生成します。2001年にNISTがSHA-256とともに公開しました。より広いセキュリティマージンを提供し、64ビットプロセッサではSHA-256より高速に動作する場合があります。

内部構造:

SHA-256と同様にMerkle-Damgard構造を使用しますが、1024ビットブロック(512ビットの代わりに)で動作し、80ラウンドの圧縮(64ラウンドの代わりに)を行います。作業変数は32ビットではなく64ビットの8ワードです。この広いデータパスにより、SHA-512は64ビットアーキテクチャでSHA-256を上回ります。各ラウンドでネイティブに2倍のデータを処理するためです。

パフォーマンス特性:

最新の64ビットCPU(x86-64、ARM64)では、SHA-512はSHA-256より30〜50%高速に動作します。64ビット演算がプロセッサのネイティブワードサイズに直接マッピングされるためです。32ビットシステムでは、各64ビット演算を複数の32ビット命令でエミュレートする必要があるため、大幅に遅くなります。

セキュリティ分析:

SHA-512は256ビットの衝突耐性と512ビットの原像耐性を提供し、SHA-256の2倍です。実用的な攻撃は存在しません。切り詰め版のSHA-512/224とSHA-512/256は同じコアアルゴリズムを使用しながら短い出力を生成し、SHA-512の速度と小さなダイジェストサイズを両立します。

SHA-512を選ぶべき場面:

64ビットシステムで動作する場合、より高いセキュリティマージンが必要な場合、または実装するプロトコルが要求する場合にSHA-512を選択してください。HMAC-SHA512は多くの暗号プロトコル(一部のTLS暗号スイートやBIP-32の暗号通貨鍵導出など)でデフォルトで使用されています。

ユースケース

SHA-512は暗号通貨ウォレットのHMACベースの鍵導出(BIP-32/BIP-39)や、64ビットハードウェアで最高のセキュリティマージンを必要とするシステムで使用されます。

Try It — Hash Generator

フルツールを開く