ハッシュ関数(SHA-256)とは?暗号化との違いと、用途

公開: 更新: カテゴリ: セキュリティ系

30秒で結論

ハッシュ関数とは(全体像)

ハッシュ関数とは、どんな長さのデータを入れても、決まった長さの値(ハッシュ値)に変換してくれる関数のことだ。代表的なのがSHA-256で、入力が1文字でも巨大なファイルでも、決まった長さの値を出す。

大事な特性は3つ。

ここで一番のポイント。ハッシュ関数は一方向で、元のデータに戻せない。「ハッシュ値から元のデータを復元できる」と思い込むと誤りで、戻せないのが特徴だ。


詳しく:暗号化との違いと、用途

ここが心臓部。ポイントを表で押さえよう。

ハッシュ関数のポイント

項目やさしい意味
ハッシュ関数データを固定長の値に変換する一方向の関数
一方向性ハッシュ値から元データに戻せない
暗号化との違い暗号化は戻せる、ハッシュは戻せない
用途改ざん検知・パスワード保存(SHA-256など)

ここで、暗号化との違いを押さえよう。暗号化は、鍵を使えば元に戻せる(復号できる)。だが、ハッシュは戻せない

ここで一番のポイント。ハッシュ関数と暗号化は別ものだ。「ハッシュ関数は暗号化と同じだ」と思い込むと誤りで、戻せるか(暗号化)、戻せないか(ハッシュ)が違う。なお、古いMD5やSHA-1は、同じハッシュ値を作れる弱点が見つかり、いまは推奨されない

ハッシュは、改ざん検知(データが変わるとハッシュ値も変わる)や、パスワード保存(元に戻せないので、そのまま保存するより安全)などに使われる。

わかりやすく言い換えると

身近なたとえで整理しよう。

ハッシュ関数は、「どんな書類も、決まった桁数の『指紋』に変換する機械」のイメージ。指紋から元の書類は作れない。

暗号化との違いは、「暗号化は鍵で元に戻せる、ハッシュは戻せない」こと。つまり、戻せるかどうか。要するに、ハッシュは行きっぱなしだ。

改ざん検知への利用は、「データが少しでも変わると、指紋(ハッシュ値)も変わるので、改ざんに気づける」こと。


試験のツボ

🔴 一番出る:一方向性

①ハッシュ値から、元のデータには戻せない(一方向)

②暗号化は戻せる、ハッシュは戻せない(別もの)

🔴 次に出る:特性と用途

①同じ入力なら、必ず同じ出力になる

②改ざん検知・パスワード保存に使う(代表はSHA-256)

🟡 押さえると安定:古い方式

①MD5・SHA-1は弱点が見つかり、推奨されない

②衝突耐性(別データで同じ値が出にくい)が大事


よくある間違い

「ハッシュ値から、元のデータを復元できる」→ ✗  ハッシュは一方向で、元のデータには戻せない。

「ハッシュ関数は、暗号化とまったく同じだ」→ ✗  暗号化は鍵で戻せる、ハッシュは戻せない。別もの。

「MD5は、いまも安全な標準だ」→ ✗  MD5やSHA-1は弱点が見つかり、いまは推奨されない。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(ハッシュ関数の正体)

📝 オリジナル問題 1 ハッシュ関数の正体

ハッシュ関数に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみだ
  2. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  3. どんな長さのデータも固定長の値に変換する、一方向の関数である
  4. 完成したシステムを宣伝して、より多く売るための広告活動である
フォクダイオウ
フォクダイオウ 解答・解説

解答は 3 である。

ハッシュ関数は、どんなデータも固定長の値に変換する、一方向の関数じゃ。書類を指紋に変える機械と心得るがよい。

選択肢1は給与計算、選択肢2は請求書の事務、選択肢4は広告ゆえ、どれも違うのじゃ。

選択肢判定理由
1給与計算のしくみではない
2請求書の事務の話
3固定長の値に変換する一方向関数で正しい
4広告活動ではない

オリジナル問題2(暗号化との違い)

📝 オリジナル問題 2 暗号化との違い

ハッシュ関数と暗号化の違いに関する次の記述のうち、最も適切なものはどれか。

  1. 暗号化は鍵で元に戻せるが、ハッシュは元には戻せないのである
  2. 社員の給与を計算するときだけ、違いが出るとされているものだ
  3. 取引先への請求書の枚数しだいで、決まるとされているのである
  4. ハッシュも暗号化も、まったく同じものだとされているのである
フォクダイオウ
フォクダイオウ 解答・解説

解答は 1 である。

暗号化は鍵で元に戻せるが、ハッシュは元に戻せないのじゃ。戻せるかどうかが違うと心得るがよい。

選択肢2の給与、選択肢3の請求書、選択肢4の「まったく同じ」は、いずれも違うのじゃ。

選択肢判定理由
1暗号化は戻せ・ハッシュは戻せないで正しい
2給与計算で違いが出るのではない
3請求書の枚数で決まるのではない
4戻せるかどうかが違う

オリジナル問題3(用途)

📝 オリジナル問題 3 ハッシュ関数の用途

ハッシュ関数の用途に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与を計算するときだけ、使われるとされているものだ
  2. 改ざんの検知や、パスワードの保存などに使われるものである
  3. 取引先への請求書を郵送するときだけ、使われるとされている
  4. システムの動きが、少しだけ速くなるとされているものである
フォクダイオウ
フォクダイオウ 解答・解説

解答は 2 である。

ハッシュは、改ざん検知やパスワード保存などに使うのじゃ。データが変わると値も変わるゆえ、改ざんに気づけると心得るがよい。

選択肢1の給与、選択肢3の請求書、選択肢4の「速くなる」は、いずれも違うのじゃ。

選択肢判定理由
1給与計算のときだけではない
2改ざん検知・パスワード保存で正しい
3請求書のときだけではない
4速くなるものではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る