暗号化とは何か
暗号化とは、読み手だけが理解できるように、データ(平文)を別の形式(暗号文)へ変換することです。第三者が通信や保存されたデータを見ても、そのまま内容を読み取れない状態を作ります。
ここで重要なのは「暗号化だけで何でも解決する」わけではなく、暗号文に戻すための手段が必要だという点です。その手段が暗号鍵(鍵)で、暗号化と復号の両方に関わります。
どうやって機能するのか(基本モデル)
一般的な流れは次のとおりです。
- 送信側で平文を暗号化し、暗号文にします。
- 暗号文を相手に送ります(ネットワーク上であっても、保存される場合でも考え方は同様です)。
- 受信側は、暗号鍵を使って暗号文を復号し、平文を取り出します。
暗号方式(アルゴリズム)は「平文を暗号文へ変える計算方法」と「暗号文を平文へ戻す計算方法」を定めます。一方で鍵は、その計算を成立させるための情報です。暗号文を見られても、鍵がないと元の内容へ戻せないように設計されます。
暗号化の種類と使い分け(考え方)
暗号化は大きく分けて、鍵の扱い方が異なる方式がよく使われます。
- 共通鍵暗号:暗号化と復号に同じ(または実質的に同じ)鍵を使う考え方です。鍵を安全に共有できるかが重要になります。
- 公開鍵暗号:片方を公開し、もう片方を秘密にして運用する考え方です。鍵の入手経路や真正性(本物かどうか)の確認が重要になります。
なお、暗号化は単体で完結することもあれば、「鍵の交換」や「通信の保護」など別の目的と組み合わさることもあります。どの方式が使われているかは、実装や設定に依存するため、必ず確認して判断してください。
暗号化の限界と、気をつける例外
暗号化は「内容が読まれにくくなる」ことに強みがありますが、次のような点は注意が必要です。
