ひとことで言うと
暗号化は、データを特定のルール(アルゴリズムと鍵)で変換して読めない形にし、正しい鍵を持つ相手だけが元に戻せるようにする技術です。
通信の盗聴やファイルの不正閲覧を防ぐために使われます。 インターネットで個人情報・パスワード・クレジットカード番号を安全にやりとりできるのは、暗号化が使われているからです。
たとえ話でもう少し詳しく
暗号化は、南京錠のかかった箱に近いです。
- 差出人が箱に荷物を入れて南京錠をかける(暗号化)
- 途中で誰かが箱を持っていっても、鍵がなければ開けられない
- 受取人だけが鍵を持っていて、箱を開けられる(復号)
通信でも同じです。 送信前にデータを暗号化すれば、通信経路で盗み見されても内容はわかりません。 正しい鍵を持つ受信側だけが元のデータに戻せます(復号)。
共通鍵と公開鍵の違い
暗号化には主に2つの方式があります。
共通鍵暗号(対称暗号) 送る側と受ける側が同じ鍵を使います。処理が速いのが利点ですが、「鍵をどうやって安全に共有するか」が課題です。南京錠の合鍵を持ち合う関係に近いです。
公開鍵暗号(非対称暗号) 「誰でも使える公開鍵(施錠用)」と「自分だけが持つ秘密鍵(開錠用)」のペアを使います。公開鍵で暗号化したものは秘密鍵でしか開けられません。南京錠を誰にでも配り、自分だけが鍵を持つイメージです。TLS や SSL ではこの仕組みが使われています。
よく出る場面・使いどころ
- Webサイトの通信(HTTPS)でパスワードやカード番号を安全に送るとき
- ファイルやディスクの内容を盗難・紛失に備えて保護するとき
- メールの内容を第三者に読まれないようにするとき
- 認証でパスワードをそのまま保存せず安全に扱うとき
似た言葉との違い
- ハッシュ
- データを一定の長さの値に変換する。元に戻す(復号)ことを想定していない
- 暗号化は元に戻せることが前提、ハッシュは戻せないことが前提
- TLS / SSL
- 通信経路を暗号化するプロトコル
- 通信の暗号化を実現する具体的な仕組みで、公開鍵暗号を活用している
- エンコーディング
- データの形式を変換するルール
- 暗号化と違い、鍵がなくても元に戻せる(秘密にすることが目的ではない)
実務で気にするポイント
- 古い暗号化方式(DES など)は解読されうるため、現在の標準(AES・RSA・楕円曲線暗号)を使う
- 鍵の管理が不適切だと、暗号化しても意味がなくなる
- 暗号化はデータ保護の一手段であり、それだけで完全なセキュリティにはならない
- パスワードの保存には暗号化ではなくハッシュ(ソルト付き)を使う
注意: 「暗号化してあるから安全」は過信です。鍵が漏れれば意味がなく、使う方式が古ければ解読リスクもあります。暗号化はセキュリティの重要な要素ですが、それだけで完結する対策ではありません。