SHA-512 【Secure Hash Algorithm 512-bit】
概要
SHA-512(Secure Hash Algorithm 512-bit)とは、任意の長さの原文から固定長の特徴的な値を算出するハッシュ関数(要約関数)の一つ。SHA-2規格に含まれる仕様の一つで、どんな長さの原文からも512ビットのハッシュ値を算出する。ハッシュ関数とは
ハッシュ関数は任意の長さの入力データを元に数十バイト程度までの短い固定長のデータを算出する関数で、同じ入力値からは必ず同じ値が得られる一方、わずかでも入力値が異なるとまったく違う出力値になる。
SHA-512はいわゆる「暗号学的ハッシュ関数」の一つで、出力値には規則性がなく、計算過程に逆算困難な一方向関数を含むため、ハッシュ値から入力値を割り出したり、同じハッシュ値となる別の入力値を生成するのは容易ではない。
データの伝送や複製を行なう際、入力側と出力側でハッシュ値を求めて照合すれば同一性を簡単に確認でき、途中でデータの改竄や欠落、破損などが起こっていないことが分かる。また、暗号や認証、デジタル署名などの要素技術として様々な場面で利用されている。
SHA-512とは
SHA-512はNSA(米国家安全保障局)が考案し、2001年にNIST(米国標準技術局)によって連邦情報処理標準の一つ(FIPS 180-4)として標準化された「SHA-2」規格の一部として定義されている。最長で2の128乗-1ビットまでの任意の長さのデータから512ビット(64バイト)のハッシュ値を生成する。
SHA-2では他にハッシュ値の長さが224ビットの「SHA-224」、256ビットの「SHA-256」、384ビットの「SHA-384」などが定義されている。SHA-512はその中でも最もハッシュ値が長く安全で、対応可能な原文の長さも最も長い。ただし、計算回数も最も多く算出に時間がかかる。
なお、SHA-384はSHA-512の出力値を384ビットに切り詰めたもので、実質的な計算手順は同じである。同様に、SHA-512を算出したあとに結果を切り詰める224ビットの「SHA-224/512」、256ビットの「SHA-256/512」が2012年に追加されている。