sg cryptography hash_function security_measures authentication
まず結論
SHA-2は、データから固定長のハッシュ値を作るハッシュ関数群です。
SG試験では、暗号化方式ではなく、改ざん検知や電子署名などで使うハッシュ関数として押さえるのがポイントです。
また、SHA-2は1つの方式名ではなく、SHA-224、SHA-256、SHA-384、SHA-512などを含むグループ名です。
SHA-1は衝突の問題が知られているため、より安全性の高いSHA-2へ移行が進められています。
直感的な説明
SHA-2は、データの「より信頼しやすい指紋」を作る仕組みと考えると分かりやすいです。
同じデータなら同じハッシュ値が作られます。
データが少しでも変わると、ハッシュ値も大きく変わります。
たとえば、ファイルが改ざんされていないか確認したいとき、元のファイルのハッシュ値と、受け取ったファイルのハッシュ値を比べます。
一致していれば、内容が変わっていない可能性が高いと判断できます。
ここで重要なのは、SHA-2は中身を隠す技術ではないことです。
内容を読めなくするのは暗号化で、SHA-2は内容の一致確認や改ざん検知に使われます。
定義・仕組み
SHA-2は、NISTが定めたハッシュ関数群です。
入力データを固定長のハッシュ値に変換します。
代表的なSHA-2の種類は次のとおりです。
| 種類 | 出力長 |
|---|---|
| SHA-224 | 224ビット |
| SHA-256 | 256ビット |
| SHA-384 | 384ビット |
| SHA-512 | 512ビット |
SHA-2の特徴を整理すると、次のようになります。
| 観点 | 内容 |
|---|---|
| 分類 | ハッシュ関数群 |
| 主な目的 | 改ざん検知、電子署名、整合性確認 |
| 出力 | 固定長のハッシュ値 |
| 元に戻せるか | 原則として戻せない |
| 代表例 | SHA-256、SHA-512 |
| 位置づけ | SHA-1より安全性を高めた方式群 |
SHA-2で重要なのは、SHA-1の後継として広く使われていることです。
SHA-1は衝突への懸念があるため、現在はSHA-2の利用が一般的です。
SHA-1との違い
SG試験では、SHA-1とSHA-2の違いを大づかみで整理できると強いです。
| 観点 | SHA-1 | SHA-2 |
|---|---|---|
| 分類 | ハッシュ関数 | ハッシュ関数群 |
| 出力長の例 | 160ビット | 224、256、384、512ビットなど |
| 安全性 | 衝突への注意が必要 | SHA-1より安全性が高い |
| 現在の扱い | 旧式で注意が必要 | 現在よく使われる |
ここでのポイントは、どちらも暗号化ではなくハッシュ関数だということです。
違いは主に、安全性や出力長、現在の利用状況にあります。
どんな場面で使う?
SHA-2は、主にデータが変わっていないかを確認したい場面で使われます。
| 場面 | 使い方 |
|---|---|
| ファイル配布 | 正しいファイルか確認する |
| 改ざん検知 | データ変更の有無を確認する |
| 電子署名 | 署名対象データの要約値を作る |
| 証明書や通信関連 | 整合性確認に使われる |
| パスワード保存 | 直接保存しない工夫に使うことがある |
ただし、パスワード保存では単純にSHA-2をそのまま1回かけるだけでは不十分な場合があります。
実務では、ソルトやストレッチング、専用のパスワードハッシュ方式を組み合わせることが重要です。
よくある誤解・混同
誤解1:SHA-2は暗号化方式である
SHA-2は暗号化方式ではありません。
SHA-2は、ハッシュ値を作るハッシュ関数群です。
暗号化は、内容を読めないようにして、あとで復号して元に戻す技術です。
一方、SHA-2は原則として元に戻せません。
| 用語 | 目的 | 元に戻せるか |
|---|---|---|
| 暗号化 | 内容を隠す | 復号できる |
| SHA-2 | 内容の一致確認、改ざん検知 | 原則戻せない |
誤解2:SHA-2は1つのアルゴリズム名である
SHA-2は、1つだけの方式名ではありません。
SHA-224、SHA-256、SHA-384、SHA-512などをまとめた呼び方です。
試験では、SHA-256が出てきたら「SHA-2に含まれる」と判断できると整理しやすいです。
誤解3:SHA-2なら何にでもそのまま使えば安全である
SHA-2自体は安全性の高いハッシュ関数群ですが、用途に応じた使い方が大切です。
たとえば、パスワード保存では、単純なハッシュだけでは総当たり攻撃への対策が不十分なことがあります。
そのため、何に使うかによって、必要な仕組みは変わります。
試験での切り分けポイント
SHA-2で迷ったら、次の順に確認します。
1. ハッシュ関数かどうか
SHA-2、SHA-256、SHA-512という言葉が出たら、まずハッシュ関数を疑います。
2. 目的が改ざん検知か
「要約値」「ハッシュ値」「改ざん検知」「電子署名」といった言葉が出たら、SHA-2と結びつけやすいです。
3. 暗号化と混同しない
「秘匿」「復号」「鍵で戻す」という話なら暗号化です。
「固定長の値」「同じ内容か確認」「原則戻せない」という話ならハッシュです。
4. SHA-1との比較を意識する
「SHA-1より安全なもの」「現在よく使われるハッシュ関数群」という説明なら、SHA-2を考えるとよいです。
確認問題
SHA-2の説明として、最も適切なものはどれか。
ア. SHA-2は、SHA-256やSHA-512などを含むハッシュ関数群である。
イ. SHA-2は、共通鍵を使って平文を暗号文に変換する暗号化方式である。
ウ. SHA-2は、公開鍵と秘密鍵を使って鍵交換を行う方式である。
エ. SHA-2は、利用者に識別番号を割り当てる認証方式である。
回答と解説
正解は、**ア**です。 SHA-2は、SHA-224、SHA-256、SHA-384、SHA-512などを含むハッシュ関数群です。 改ざん検知や電子署名などで使われます。 イは暗号化方式の説明です。 ウは公開鍵暗号や鍵交換の話です。 エは認証情報の説明です。まとめ(試験直前用)
SHA-2は、SHA-256やSHA-512などを含むハッシュ関数群です。
試験直前は、次の3点だけ押さえましょう。
- SHA-2は暗号化ではなくハッシュ関数群
- SHA-1より安全性が高く、現在よく使われる
- 改ざん検知や電子署名で使う要約値を作る
SHA-1と迷ったときは、どちらもハッシュ関数であることをまず確認します。
その上で、「SHA-1は注意が必要、SHA-2は現在よく使われる」と整理すると、選択肢を切りやすくなります。