SHA-2とは?「特徴」や「種類」などを解説【ハッシュ関数】

この記事ではハッシュ関数の『SHA-2』について、

  • SHA-2の「特徴」と「種類」
  • SHA-1とSHA-2の違い

などを図を用いて分かりやすく説明するように心掛けています。ご参考になれば幸いです。

SHA-2の「特徴」と「種類」

SHA-2は入力データ(文字列やファイルなど)を受け取り、その入力データから計算された決まった長さのハッシュ値(一般的には16進数の文字列)を出力するハッシュ関数です。

ハッシュ関数は、同じ入力データに対しては常に同じハッシュ値を出力しますが、入力データがわずかに異なると、全く異なるハッシュ値が出力される特性を持っています。この性質により、データの整合性確認やパスワードの保存など、様々なセキュリティ上の用途に使用されます。

SHA-2には以下の6種類があります。

  • 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-256は入力データの長さに関わらず、256ビット(16進数では64桁)の文字列を出力するハッシュ関数です。

一例として「こんにちは」という入力データをSHA-224、SHA-256、SHA-384、SHA-512のハッシュ関数を用いて、ハッシュ値へ変換した例を下図に示します。ハッシュ関数の種類が異なると、ハッシュ値の長さも値も異なります。

SHA-2の「特徴」と「種類」

あわせて読みたい

SHA-256は実装しやすさ、計算速度、暗号学的な安全性のバランスに優れているため、SHA-2ファミリーの中では最も広く普及しているハッシュ関数です。『SHA-256』については下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。

補足

  • SHAは「SHA(Secure Hash Algorithm: セキュア・ハッシュ・アルゴリズム)」の略です。SHAには、SHA-0、SHA-1、SHA-2、SHA-3の4つのバージョンがあります。
  • SHA-2はアメリカ国家安全保障局(National Security Agency: NSA)が開発し、2001年に米国国立標準技術研究所(National Institute of Standards and Technology: NIST)によって連邦情報処理の一つとして標準化されています。

SHA-1とSHA-2の違い

SHA-2は、前規格であるSHA-1から多くの改良が加えられています。

計算のアルゴリズム構造自体は同じですが、内部関数や計算手法は異なります。また、ハッシュ値の出力の長さに関しても違いがあり、SHA-1は160ビットの固定長を出力するのに対し、SHA-2は224ビットから512ビットの範囲で出力することができます。

なお、2017年にSHA-1に脆弱性(衝突攻撃)が発見たことから非推奨になりました。そのため、現在では多くのアプリケーションやセキュリティ製品がSHA-2を使用しており、SHA-2ファミリーがより安全な選択として広く推奨されています。

本記事のまとめ

この記事ではハッシュ関数の『SHA-2』について、以下の内容を説明しました。

  • SHA-2の「特徴」と「種類」
  • SHA-1とSHA-2の違い

お読み頂きありがとうございました。