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