SHA-2
SHA-256アルゴリズムの疑似コードは以下の通りである。
ch および maj の計算は、SHA-1と同様の手法により最適化できる。
SHA-224は本質的にSHA-256と同じであるが、以下の点が異なる。
初期値 h0 から h7 が異なる
h7 を除去することで出力が得られる
SHA-512の構造は本質的にSHA-256と同じであるが、以下の点が異なる。
メッセージが512ビットごとではなく1024ビットごとのチャンクに分けられる
初期値とラウンド定数が64ビットに拡張されている
ラウンド数が64から80に変更されている
メッセージ配列wは64個の32ビットワードではなく、80個の64ビットワードを持つ
メッセージ配列wを拡張するためのループは16~63ではなく16~79
ラウンド定数が最初の80個の素数 2..409 に基づいている
演算に用いられるワード長が64ビットである
末尾に追加されるメッセージ長が128ビットのビッグエンディアンである
シフトとローテートの数が異なる
SHA-384は本質的にSHA-512と同じであるが、以下の点が異なる。
初期値 h0 から h7 が異なる
h6 および h7 を除去することで出力が得られる
SHA-512/tは本質的にSHA-512と同じであるが、以下の点が異なる。
初期値 h0 から h7 は SHA-512/t IV generation function によって与えられる
h0 から h7 の t ビット目までで切り詰めることで出力が得られる
t が384となることは認められていない(SHA-384を使うべきである)
t が224および256であるものが認定されている