この記事ではハッシュ関数の『SHA-256』について、
- SHA-256の「特徴」と「読み方」
- SHA-256が属しているSHA-2ファミリーについて
などを図を用いて分かりやすく説明するように心掛けています。ご参考になれば幸いです。
SHA-256の「特徴」と「読み方」
SHA-256は入力データの長さに関わらず、256ビット(16進数では64桁)の文字列を出力するハッシュ関数です。
同じ入力データからは必ず同じハッシュ値が得られ、少しでも入力データが異なれば全く違うハッシュ値が得られるようになっています。例えば、「ABCD」と「ABCE」という入力データをハッシュ関数SHA-256でハッシュ化した場合、以下のハッシュ値が得られます。
- 「ABCD」をハッシュ化した場合に得られるハッシュ値
- E12E115ACF4552B2568B55E93CBD39394C4EF81C82447FAFC997882A02D23677
- 「ABCE」をハッシュ化した場合に得られるハッシュ値
- 7FF1C8304512F393AFDFE46F2F653F03F2F70ABD3D97F0DE2267CF34B9243165
元の文字列は1カ所しか違いませんが、ハッシュ値は大きく異なっていることが分かります。
補足
SHA-256は「しゃーにごろ」と読みます。
SHA-256が属しているSHA-2ファミリーについて
SHA-256は「SHA(Secure Hash Algorithm: セキュア・ハッシュ・アルゴリズム)」というシリーズのハッシュ関数の中の一つである「SHA-2」ファミリーに属する関数です。
SHA-2には以下の6種類がありますが、その中でSHA-256は実装しやすさ、計算速度、暗号学的な安全性のバランスに優れているため、最も広く普及しています。
- SHA-224
- ハッシュ値の長さ: 224ビット
- SHA-256
- ハッシュ値の長さ: 256ビット
- 実装しやすさ、計算速度、暗号学的な安全性のバランスに優れており、最も広く普及している。
- SHA-384
- ハッシュ値の長さ: 384ビット
- SHA-512
- ハッシュ値の長さ: 512ビット
- SHA-512/224
- ハッシュ値の長さ: 224ビット
- SHA-512のアルゴリズムをベースにしており、ハッシュの長さが224ビットになるように切り詰められている。
- SHA-512/256
- ハッシュ値の長さ: 256ビット
- SHA-512のアルゴリズムをベースにしており、ハッシュの長さが256ビットになるように切り詰められている。
補足
- SHA-2はアメリカ国家安全保障局(NSA)が開発し、2001年に米国国立標準技術研究所(NIST)によって連邦情報処理の一つとして標準化されています。
- SHA-2は、先代のSHA-0やSHA-1に続いて開発されたハッシュ関数ファミリーです。SHA-1は脆弱性が発見されたことから非推奨になり、現在ではSHA-2ファミリーがより安全な選択として広く推奨されています。
本記事のまとめ
この記事ではハッシュ関数の『SHA-256』について、以下の内容を説明しました。
- SHA-256の「特徴」と「読み方」
- SHA-256が属しているSHA-2ファミリーについて
お読み頂きありがとうございました。