初級では「一方向の指紋」と捉えました。中級では、求められる性質と、正しい使い分けを見ます。
中級の解説は準備中のため、中級の内容を表示しています。
概要 — まず全体をつかむ
詳細 — 1段階ずつ追う
一方向性の中身
安全なハッシュは、次を満たします。
- 一方向 — データ → 指紋は作れるが、指紋 → データには戻せない
- 衝突困難 — 同じ指紋になる別のデータを、現実的に作れない
- 固定長 — どんな長さの入力も、決まった長さの指紋に
代表は SHA-2(SHA-256)。MD5・SHA-1 は衝突が見つかっており非推奨です。
用途で使い分ける
「同じか・変わっていないか」を確かめる道具として、用途が分かれます。
- 改ざん検知・整合性 — 受け取ったデータの指紋を照合。重複排除にも
- パスワード保管 — 高速ハッシュ(SHA-256単体)はNG。bcrypt/scrypt/argon2のような専用関数+ソルトを使う
- HMAC — 秘密鍵を組み合わせた鍵付きハッシュ。「本人が作った・改ざんなし」を確かめる(真正性)
アニメーション『雪崩効果とソルト(レインボーテーブル無効化)』を開く
⚠️ 気をつける
- 暗号化ではない — 秘密にするためではない(戻せない)
- パスワードに高速ハッシュ+ソルト無し — 総当たり・レインボーテーブルに弱い
- 古い方式 — MD5・SHA-1は使わない(衝突が現実的)
- 切り詰め — 指紋を短く切ると衝突しやすくなる
関連する知識
理解度チェック
そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。
問1. かつて広く使われたが衝突が見つかり、いまは使うべきでないハッシュを英字と数字3文字で1つ。
問2. 秘密鍵を組み合わせた鍵付きハッシュで「本人が作った・改ざんなし」(真正性)を確かめる仕組みを英字4文字で。
問3. ハッシュが改ざん検知に使える性質を、より正確に言うと?
問4. パスワードをハッシュで保管するとき、利用者ごとに必ず足すべきものは?
問5. ハッシュと暗号化の決定的な違いはどれ?
問6. 現在も推奨される代表的なハッシュはどれ?
問7. ハッシュの「固定長」とはどういう意味?
問8. パスワード保管でSHA-256単体(高速ハッシュ)を使うのが不適切な理由は?