「暗号化」という言葉はニュースやアプリの設定画面でもよく見かけますが、「復号」とセットで説明されると急に難しく感じる——そんな声を編集部でもよく耳にします。実はこの2つ、宅配ボックスのたとえに置き換えると仕組みがすっきり理解できます。IT資格の学習でも頻出のテーマなので、ここで基礎を整理しておきましょう。
この記事では、専門用語をなるべく使わず、日常のたとえを交えながら解説します。IT資格を学習中の方や、Webシステムの仕組みを初めて学ぶ方に向けた内容です。
まず結論:暗号化と復号は「向き」が逆の作業
- 暗号化:元の情報(平文)を、鍵を使って第三者が読めない形(暗号文)に変換すること
- 復号:暗号文を、正しい鍵を使って元の情報(平文)に戻すこと
- 暗号化と復号はワンセットで機能し、鍵の管理方法によって「共通鍵暗号」と「公開鍵暗号」の2種類に分かれる
暗号化とは?――手紙を鍵付きの箱に入れるようなもの
大切な手紙を送るとき、そのまま封筒に入れるだけでは、配送中に誰かに開けられて読まれてしまうかもしれません。そこで、鍵のかかる箱に手紙を入れてから送るとします。
- 平文(元の手紙) = 誰でも読める状態の情報
- 暗号化 = 鍵付きの箱に手紙を入れて施錠すること
- 暗号文(施錠された箱の中身) = 鍵がなければ読めない状態の情報
箱が施錠されていれば、途中で誰かに箱を開けられても、鍵を持っていない限り中の手紙は読めません。これが暗号化の基本的な発想です。
Webシステムでも考え方は同じです。パスワードやクレジットカード番号のような情報を、送信する前に暗号化しておくことで、通信経路の途中で内容がそのまま読み取られる心配を減らせます。
復号とは?――正しい鍵で箱を開けること
復号とは、暗号化された情報を、正しい鍵を使って元の状態に戻すことです。
先ほどの宅配ボックスの続きで考えると、受け取った人が正しい鍵を持っていれば、箱を開けて中の手紙を読めます。鍵を持っていない人が箱をこじ開けようとしても、簡単には開かないように設計されているのがポイントです。
- 復号 = 正しい鍵で箱を開け、元の手紙を取り出すこと
- 鍵が正しくなければ、箱の中身(暗号文)は意味のない情報のままになる
つまり、暗号化と復号は「情報を読めなくする作業」と「読める状態に戻す作業」という、向きが逆の一対の処理です。
「暗号化と復号の違い」を鍵付き箱でたとえると
暗号化 = 箱に入れて施錠する作業
- 平文(元の情報)を暗号文(読めない情報)に変える
- 送る側・保存する側が行う
- 目的は「途中で読まれても内容がわからないようにすること」
復号 = 鍵を使って箱を開ける作業
- 暗号文を平文に戻す
- 受け取る側・利用する側が行う
- 正しい鍵がなければ実行できない
整理するとこうなります。
| 項目 | 暗号化 | 復号 |
|---|---|---|
| 何をするか | 平文を暗号文に変換する | 暗号文を平文に戻す |
| 行うタイミング | 送信・保存の前 | 受信・利用の前 |
| 必要なもの | 暗号化用の鍵 | 復号用の鍵 |
| 目的 | 情報を第三者に読ませないため | 正当な受信者が情報を利用できるようにするため |
| 英語表記 | Encryption | Decryption |
共通鍵暗号と公開鍵暗号の違い
暗号化と復号で使う「鍵」の仕組みには、大きく分けて2種類あります。
共通鍵暗号――同じ鍵で施錠も解錠もする方式
暗号化するときも復号するときも、同じ鍵を使う方式です。家の鍵をイメージするとわかりやすく、同じ鍵で施錠も解錠もできます。処理が速いという利点がありますが、送信者と受信者の両方が同じ鍵を安全に共有しておく必要があります。
公開鍵暗号――鍵を2本用意して役割を分ける方式
暗号化用の「公開鍵」と、復号用の「秘密鍵」という、別々の鍵を使う方式です。公開鍵は誰に渡しても構いませんが、秘密鍵は本人だけが厳重に管理します。宅配ボックスでたとえるなら、誰でも荷物を投函できる「投函口(公開鍵)」と、荷物を取り出せる本人専用の「鍵(秘密鍵)」を分けているようなイメージです。共通鍵暗号よりも鍵の受け渡しが安全に行える一方、処理には時間がかかる傾向があります。
| 比較軸 | 共通鍵暗号 | 公開鍵暗号 |
|---|---|---|
| 使う鍵の数 | 1本(暗号化と復号で共通) | 2本(公開鍵と秘密鍵) |
| 鍵の共有方法 | 事前に安全な方法で共有が必要 | 公開鍵は誰にでも渡せる |
| 処理速度 | 速い | 比較的遅い |
| 代表的な用途 | ファイルの暗号化など | Webサイトの通信(HTTPS)、電子署名など |
実際のWeb通信(HTTPS)では、最初の鍵交換に公開鍵暗号を使い、その後のやり取りは処理の速い共通鍵暗号に切り替えるという、両方の長所を組み合わせた方式が広く採用されています。
なぜ暗号化だけではダメなのか?
「情報を暗号化さえしておけば、もう安心」と思うかもしれませんが、実際には注意すべき点がいくつかあります。
まず、鍵の管理が甘いと、暗号化そのものの意味が薄れてしまいます。どれだけ強力な暗号方式を使っていても、鍵の保管場所が誰でもアクセスできる状態になっていれば、鍵付きの箱の横に合鍵を置いているのと同じ状態です。鍵は情報そのものと同じくらい大切に扱う必要があります。
また、通信の一部だけを暗号化して、残りの部分を平文のままにしてしまうと、そこから情報が読み取られてしまう可能性があります。ログイン画面だけをHTTPS化して、それ以外のページを暗号化していないサイトも見かけますが、通信全体を一貫して保護する設計が望ましいとされています。この点については、OWASPが公開しているCryptographic Storage Cheat Sheetでも、鍵の管理方法や暗号化の適用範囲についてのベストプラクティスがまとめられています(参考:OWASP Cryptographic Storage Cheat Sheet)。
暗号化は「入れておけば終わり」の機能ではなく、鍵の管理方法や適用範囲まで含めて設計して初めて効果を発揮する仕組みだと考えています。
実際の使われ方:Webサイト閲覧時の暗号化の流れ
ブラウザでHTTPSのサイトにアクセスしたときの流れを、簡単なステップで見てみましょう。
Step 1 — ユーザーがブラウザでWebサイトのURL(https://〜)にアクセスする。
Step 2 — サーバーがブラウザに対して、暗号化通信に使う証明書(公開鍵を含む)を送る。
Step 3 — ブラウザが証明書を確認し、問題がなければ公開鍵を使って共通鍵の元になる情報を暗号化してサーバーに送る。
Step 4 — サーバーが自分の秘密鍵で復号し、共通鍵を確定させる。
Step 5 — 以降のやり取りは、確定した共通鍵を使って暗号化・復号を繰り返しながら通信する。
Step 6 — ページの表示が完了し、ブラウザのアドレスバーに鍵マークが表示される。
このように、最初の鍵交換に公開鍵暗号、その後の実際のやり取りに共通鍵暗号を使うのが、現在のWeb通信における一般的な流れです。
まとめ:3行で理解する暗号化と復号
- 暗号化 = 平文を鍵で読めない状態(暗号文)に変える作業
- 復号 = 暗号文を正しい鍵で元の平文に戻す作業
- 鍵の管理方法によって「共通鍵暗号」と「公開鍵暗号」の2種類があり、実際のWeb通信では両方を組み合わせて使われている
暗号化・復号という言葉だけを覚えるのではなく、「鍵付きの箱」というイメージとセットで理解しておくと、IT資格の問題文を読んだときにも迷いにくくなります。
よくある質問
Q. 暗号化されていれば、通信内容は100%安全と考えてよいですか?
A. 暗号化は情報を読み取られにくくする重要な手段ですが、それだけで万全というわけではありません。鍵の管理方法、暗号化の適用範囲、ソフトウェアの設定など、複数の要素が組み合わさって初めて安全性が保たれます。暗号化はセキュリティ対策の一部であると捉えておくのが実務的な考え方です。
Q. 共通鍵暗号と公開鍵暗号、試験ではどちらが重要ですか?
A. どちらも重要です。ITパスポートや基本情報技術者試験では、共通鍵暗号(鍵が1本・処理が速い)と公開鍵暗号(鍵が2本・鍵の受け渡しが安全)という特徴の違いを問う問題が出題されます。HTTPS通信で両方が組み合わさって使われている点まで理解しておくと、応用的な問題にも対応しやすくなります。
Q. 「ハッシュ化」と「暗号化」は同じものですか?
A. 別のものです。暗号化は正しい鍵があれば元の情報に戻せる(復号できる)処理ですが、ハッシュ化は原則として元の情報に戻すことを想定していない一方向の変換です。パスワードの保存にはハッシュ化が使われることが多く、通信内容の保護には暗号化が使われることが多いというように、目的によって使い分けられています。
Q. 「セッションハイジャック」や「SQLインジェクション」という用語も暗号化と関係がありますか?
A. これらはIT資格の試験でセキュリティ分野の用語として登場することがありますが、暗号化・復号とは異なる文脈の用語です。詳しい仕組みまでは本記事では扱いませんが、試験対策としては「暗号化=情報を読めなくする仕組み」という基本を押さえたうえで、各用語を個別に学習していくとよいでしょう。


コメント