対象試験と出題頻度
SHA-256 / SHA-3は、情報セキュリティマネジメント試験、基本情報技術者試験、応用情報技術者試験で出題されます。頻出度は「B(標準)」で、ハッシュ関数の具体例として「現在推奨されるアルゴリズム」を問われることがあります。MD5やSHA-1との違いを押さえておきましょう。
詳細をクリックして確認
情報セキュリティマネジメント
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)
用語の定義
SHA-256とは、一言で言うと「256ビット(64桁の16進数)のハッシュ値を生成する、現在最も広く使われているハッシュアルゴリズム」のことです。SHA(Secure Hash Algorithm)ファミリーの一つで、SHA-2に分類されます。
SHA-3とは、「SHA-2の後継として2015年に標準化された、最新のハッシュアルゴリズム」のことです。
SHA-2とは全く異なる設計(Keccak)を採用しており、SHA-2に万が一脆弱性が見つかった場合の代替として位置づけられています。
📊 SHA-256とSHA-3の基本情報
| 項目 | SHA-256 | SHA-3 |
|---|---|---|
| 分類 | SHA-2ファミリー | SHA-3ファミリー |
| 出力長 | 256ビット固定 | 224/256/384/512ビット |
| 標準化年 | 2001年 | 2015年 |
| 設計 | Merkle–Damgård構造 | Keccak(スポンジ構造) |
| 現在の評価 | ◎ 広く使用、推奨 | ◎ 最新、SHA-2の代替 |
解説
情報処理試験を勉強していると、「SHA-256、SHA-3、MD5、SHA-1…種類が多すぎて覚えられない」と感じるかもしれません。
結論から言うと、試験対策としては「SHA-256 / SHA-3 は安全で推奨」「MD5 / SHA-1 は脆弱で非推奨」という区別ができれば十分です。
SHAファミリーの変遷
SHA(Secure Hash Algorithm)は、米国国立標準技術研究所(NIST)が標準化したハッシュアルゴリズムのシリーズです。世代ごとに進化してきました。
SHA-0 / SHA-1は、1990年代に登場した初期のSHAです。SHA-1は160ビットのハッシュ値を生成し、長年使われてきましたが、2017年にGoogleが衝突攻撃に成功したことで、セキュリティ用途では使用すべきでないとされています。
SHA-2は、2001年に標準化されたファミリーで、SHA-224、SHA-256、SHA-384、SHA-512などがあります。数字は出力のビット数を表しています。現在最も広く使われているのはSHA-256で、SSL/TLS証明書、デジタル署名、ビットコインなど多くの場面で採用されています。
SHA-3は、2015年に標準化された最新世代です。SHA-2とは異なる設計思想(Keccak)で作られており、SHA-2に脆弱性が発見された場合のバックアップとして位置づけられています。現時点ではSHA-2に問題は見つかっていないため、SHA-3への移行は急がれていませんが、新しいシステムでは採用が増えています。
📊 ハッシュアルゴリズムの比較(試験対策)
| アルゴリズム | 出力長 | 安全性 | 推奨度 |
|---|---|---|---|
| SHA-256 | 256ビット | 安全 | ◎ 推奨 |
| SHA-3 | 可変 | 安全 | ◎ 推奨 |
| SHA-1 | 160ビット | 脆弱 | × 非推奨 |
| MD5 | 128ビット | 脆弱 | × 非推奨 |
💡 SHA-256が使われている身近な例
SHA-256は私たちの身の回りで幅広く使われています。
SSL/TLS証明書(HTTPSサイト)のデジタル署名、ビットコインのマイニング(プルーフ・オブ・ワーク)、ソフトウェアのダウンロード検証(改ざんチェック)、パスワードのハッシュ化など、セキュリティが重要な場面で広く採用されています。
なぜSHA-3が必要なのか
「SHA-2が安全なら、なぜSHA-3が作られたの?」と疑問に思うかもしれません。これは「リスク分散」の考え方です。
SHA-1が破られた例からわかるように、暗号アルゴリズムは将来的に脆弱性が見つかる可能性があります。SHA-2とSHA-3は設計が根本的に異なるため、一方に脆弱性が見つかっても、もう一方に同じ問題が発生する可能性は低いです。
現時点でSHA-2に深刻な脆弱性は見つかっていないため、SHA-256は引き続き安全に使用できます。SHA-3は「保険」として用意されており、必要になったときにスムーズに移行できるよう標準化されています。
⚠️ 試験での注意点
試験では「安全なハッシュアルゴリズムはどれか」という問われ方をすることがあります。SHA-256、SHA-3は安全、MD5、SHA-1は脆弱という点を覚えておきましょう。
また、SHA-256は「256ビットのハッシュ値を出力する」という点も押さえておいてください。「SHA-256は128ビット」などの引っかけ選択肢に注意しましょう。
試験ではこう出る!
SHA-256 / SHA-3は、ハッシュアルゴリズムの具体例として出題されます。「現在推奨されるアルゴリズム」として選択肢に登場することが多いです。MD5やSHA-1との違いを押さえておけば対応できます。試験ではここまででOKです。
【重要キーワード】
- SHA-256(SHA-2ファミリー、256ビット出力)
- SHA-3(最新、Keccak設計)
- 現在推奨されるハッシュアルゴリズム
- MD5 / SHA-1 は脆弱で非推奨
- SSL/TLS証明書、デジタル署名で使用
試験問題で「現在推奨されるハッシュアルゴリズム」「安全なハッシュ関数」と聞かれたら、「SHA-256」または「SHA-3」が正解です。
📝 IPA試験での出題ポイント
SHA-256 / SHA-3の問題は、「安全なハッシュアルゴリズムを選べ」「MD5が非推奨である理由」という形式で出題されます。
SHA-256が「256ビットのハッシュ値を出力する」こと、「現在広く使われている標準」であることを押さえておきましょう。SHA-3は「SHA-2の後継・代替」として覚えておけば十分です。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. SHA-256に関する説明として、最も適切なものはどれでしょうか?
- A. 256ビットのハッシュ値を生成するSHA-2ファミリーのアルゴリズムで、現在広く使用されており、SSL/TLS証明書やデジタル署名で採用されている
- B. 128ビットのハッシュ値を生成するアルゴリズムで、処理速度が速いため現在も広く使われている
- C. 160ビットのハッシュ値を生成するアルゴリズムで、衝突攻撃が成功したため現在は非推奨とされている
正解と解説を見る
正解:A
解説:
SHA-256は、SHA-2ファミリーに属するハッシュアルゴリズムで、256ビット(64桁の16進数)のハッシュ値を生成します。2001年に標準化され、現在最も広く使われているハッシュアルゴリズムです。SSL/TLS証明書のデジタル署名、ビットコインのマイニング、ソフトウェアの整合性検証など、セキュリティが重要な場面で採用されています。
選択肢Bは「MD5」の説明ですが、MD5は128ビット出力で現在は脆弱とされ非推奨です。選択肢Cは「SHA-1」の説明で、160ビット出力ですが衝突攻撃が成功したため非推奨です。