🎯 1. はじめに
セキュリティ学習の最初の疑問になりやすい
「暗号化」と「ハッシュ化」。
似ているようでまったく役割が違います。
この記事では、初心者向けにイメージ図を使いながら わかりやすく解説します。
📌 2. この記事で学べること
-
暗号化とは?
-
ハッシュ化とは?
-
役割・用途の違い
-
ソルト(Salt)とは?
-
実務でどのように使われているか
🔒 3. 暗号化とは?
✔️ データを「読めない形」にし、後で元に戻せる技術
暗号化の最も重要なポイントは、
復号(元に戻す)ができる
という点です。
🔑 暗号化のイメージ図
🔧 暗号化方式
🔑 共通鍵暗号方式(対称鍵暗号)
✔ 特徴
-
暗号化と復号に同じ鍵を使う
-
処理が高速で、大量データに向いている
-
鍵を共有する必要があるため、鍵の受け渡しが最大の課題
🧰 代表例
-
AES(現在の標準)
-
DES(古い・非推奨)
-
ChaCha20
❗ デメリット(特に重要)
鍵の受け渡しを安全に行うのが難しい
→ 鍵が盗まれる と全てのデータが読まれる
多人数で使うと鍵管理が爆発的に複雑になる
🔐 公開鍵暗号方式(非対称鍵暗号)
✔ 特徴
-
公開鍵で暗号化
-
秘密鍵で復号
鍵がペアになっており、
公開鍵は名前の通り 公開してOK。
秘密鍵は 絶対に漏らしてはいけない。
🧰 代表例
-
RSA
-
ECC(楕円曲線暗号)
-
ElGamal
👍 メリット
-
鍵の受け渡し問題が解消
→ 公開鍵を誰に配っても安全 -
インターネットの暗号化通信(TLS/HTTPS)に必須
-
デジタル署名も可能
(秘密鍵で署名 → 公開鍵で検証)
❗ デメリット
- 共通鍵暗号より 処理が遅い
→ 通信では 「鍵交換」 にだけ使う
→ 実際の データ暗号化 は AES(共通鍵暗号) が使われる
🔒 2つの方式はどう使い分けられているのか?
結論:
- 公開鍵暗号:鍵交換・署名
- 共通鍵暗号:データの本番暗号化
📝 HTTPS では
-
公開鍵暗号 → 共通鍵を安全に届ける
-
共通鍵暗号 → 通信の高速な暗号化
という 「ハイブリッド方式」 を採用しています。
🧂 4. ハッシュ化とは?
✔️ 元に戻せない、一方向の変換
ハッシュ化は暗号化と違い、
絶対に元には戻せない
という特徴を持ちます。
🧮 ハッシュ化のイメージ図(mermaid)
🧂 なぜソルト(salt)が必要?そもそもソルトとは?
パスワードのハッシュ化では、同じパスワードでも 違うハッシュ値 にする必要があります。
そのために利用するのが ソルト(salt)。
ソルトのイメージ図(mermaid)
- ソルトを使うことで、レインボーテーブル攻撃対策 になります。
「同じパスワードでも同じハッシュ値にならない」というメリットがあります。
レインボーテーブル攻撃とは?
あらかじめ大量の「パスワード → ハッシュ値」の対応表を作っておき、ハッシュ値から元のパスワードを逆算する攻撃です。
🧮 よく使われるハッシュ関数
-
SHA-256
-
SHA-512
-
bcrypt(パスワード向け)
-
Argon2(現在の推奨)
🔑 5. 暗号化とハッシュ化の違い(図で理解)
✔ 両者の役割を比較
✔ 表で比較すると一目でわかる
| 項目 | 暗号化 | ハッシュ化 |
|---|---|---|
| 復号 | できる | できない |
| 主な用途 | 通信の安全性 | パスワード保存、改ざん検知 |
| 入力 | 可変長 | 可変長 |
| 出力 | 可変 or 固定 | 固定長 |
| 代表技術 | AES / RSA | SHA-256 / bcrypt / Argon2 |
🔍 6. パスワードを「暗号化しない」理由
よくある疑問:「データを守るなら暗号化すればいいのでは?」
しかし、パスワードに暗号化を使うのは危険です。
理由:
暗号化は 復号できる → 攻撃者も復号できてしまう
運用中の鍵が漏れると全パスワードが復元される
そのため、
✔ パスワードは ハッシュ化+ソルト+ストレッチング
※ ストレッチングとはハッシュ化処理を繰り返すこと
これが世界的なベストプラクティスです。
🧭 7. 実務での利用例
🛡️ 改ざん検知
「ファイルやデータが書き換えられていないか」を確認する仕組みです。
🔐 通信の暗号化(HTTPS)
🔑 パスワード保存(ハッシュ+ソルト)
📝 8. まとめ
-
暗号化は 「読めないようにして、元に戻せる」 技術
-
ハッシュ化はハッシュ関数を利用した 「元に戻せない」 技術
-
暗号化 → 通信・情報秘匿
-
ハッシュ化 → パスワード保存・改ざん検知
-
パスワードには ハッシュ化+ソルト+ストレッチング が必須
セキュリティの基礎として、まずここを理解しておくと
今後の学習がスムーズになります。
🏁 9. おわりに
最後までご覧いただきありがとうございました。これからもいろいろな初心者向けの記事を作成していきますでの、よろしくお願いします。
よかったら他の記事もご覧いただけると嬉しいです。今後もよろしくお願いいたします。