テキスト
SHA-512ハッシュの計算
入力した文字列のSHA-512ハッシュ値をブラウザ上でリアルタイムに計算します。512ビットの長いハッシュ値を生成し、64ビット環境での高速動作と最高レベルの衝突耐性が特徴です。
| SHA-512 |
|---|
Tips
- SHA-512はSHA-2ファミリーに属する512ビットのハッシュ関数で、出力は128文字の16進数です。SHA-256の2倍の出力長を持ちます。
- SHA-512は64ビットCPU向けに最適化されており、64ビット環境ではSHA-256より高速に動作することがあります。サーバーサイドの処理では一般的にSHA-512の方が効率的です。
- SHA-256もSHA-512も同様に安全ですが、SHA-512はより長い出力長を提供するため、より高いセキュリティマージンを求める用途に適しています。
- Linuxシステムのパスワードハッシュ(
/etc/shadow)には、SHA-512をベースにしたsha512cryptが標準的に使われています(ただしパスワード保存には専用アルゴリズム推奨)。 - SHA-512/256という派生版があり、SHA-512の内部計算を使いながら256ビットに切り詰めた出力を持ちます。32ビット環境ではSHA-256より遅くなるため、用途に応じて選択してください。
余談ですが ― なぜ「512ビット」が必要なのか ― ビット長と安全性の関係
ハッシュ関数の衝突耐性を語るとき重要な指標の一つが誕生日問題です。n ビットのハッシュ関数の衝突を見つけるには理論上 2^(n/2) 回の試行で済みます。SHA-256なら 2^128 回、SHA-512なら 2^256 回の計算が必要です。
2^128という数字は現実的にどのくらいの大きさでしょうか。世界中のすべてのコンピュータを合わせたとしても宇宙の年齢(約138億年)を遥かに超える時間が必要になる計算量です。SHA-256で十分安全ですが、SHA-512はさらにその平方乗(2^256)という文字通り「計算不可能」な域に到達しています。
量子コンピュータが実用化されるとグローバーのアルゴリズムによってハッシュ関数の有効セキュリティは半分になります(n ビットが n/2 ビット相当になる)。SHA-256なら128ビット相当に落ちますが、SHA-512なら256ビット相当を保てます。量子コンピュータ時代を見据えたシステムにはSHA-512が有利とも言われています。