「公開鍵と共通鍵は、どう違うの?」
「HTTPSの鍵マークの中身は何?」
暗号化は、用語を1つずつ覚えるより「問題と解決の連鎖」で追うと腑に落ちます。共通鍵のある弱点を、公開鍵が埋め、その弱点をハイブリッドが埋める。この流れが本題です。
暗号化とは、データを第三者に読めない形に変換し、決められた鍵を持つ相手だけが元に戻せるようにする仕組みです。元に戻すことを復号と呼びます。
この記事では、暗号化の基本用語を固め、共通鍵方式の弱点を確かめ、それを公開鍵方式がどう解くかを追います。最後に両者を組み合わせるハイブリッド方式と、基本情報での問われ方まで示します。
1. 平文・暗号文・鍵という3つの言葉

暗号化とは、そのまま読める文章(平文)を、見ても意味の分からない文字列(暗号文)に変える処理です。変換のルールを決めるのが鍵で、鍵を持つ相手だけが正しく中身を読めます。暗号文を元の平文に戻すのが復号です。
目的は、盗聴対策や改ざん検知の土台を作ることにあります。公衆Wi-Fiのように通信経路に第三者が紛れこむ余地があっても、データが暗号文になっていれば中身を読み取られません。あなたがまず握るべきは、平文・暗号文・鍵・復号の4語です。ここが曖昧なままだと、この先の共通鍵と公開鍵の比較でつまずきます。
2. 共通鍵方式の弱点 — 鍵をどう渡すか

最も基本的な方式が共通鍵方式です。送信側と受信側が同じ鍵を共有し、暗号化と復号の両方に使います。対称鍵暗号とも呼び、代表的なアルゴリズムがAES(Advanced Encryption Standard)です。
強みは、処理が速く、大量のデータの暗号化に向く点です。サーバ間のファイル転送やディスクの暗号化など、データ量の多い場面で実用的に使われます。ところが、ここに1つの弱点があります。「鍵をどうやって相手に安全に渡すか」という、いわゆる鍵配送問題です。合鍵を相手に郵送する場面を思い浮かべてください。途中で第三者にコピーされれば、その時点で暗号化の意味が消えます。デジタル通信でも同じで、鍵の受け渡し方法を別に考える必要があります。この弱点が、次の公開鍵方式が生まれた理由です。
3. 公開鍵方式が、鍵配送を解く

共通鍵方式の鍵配送問題を解くのが公開鍵方式です。性質の違う「公開鍵」と「秘密鍵」の2つをペアで使います。非対称鍵暗号とも呼び、代表がRSAです。
使い方はこうです。受信者があらかじめ公開鍵を配っておきます。送信者はその公開鍵で暗号化して送り、秘密鍵を持つ受信者だけが復号します。公開鍵は名前の通り誰に渡してもかまわず、秘密鍵だけを厳重に守ればよい設計です。だから、あなたが頭に置いておいた「鍵を安全に渡せない」という共通鍵の宿題が、ここで解けます。事前に秘密の鍵を共有しておく必要が、そもそもなくなるからです。
ただし公開鍵方式にも弱点があります。共通鍵方式に比べて処理が遅いのです。大量のデータを丸ごと公開鍵で暗号化すると、時間がかかりすぎます。ここでまた新しい宿題が出てきました。基本情報では「公開鍵と秘密鍵のどちらで暗号化し、どちらで復号するか」が頻出です。送信者と受信者の役割を、図で整理しておくと迷いません。
4. だから両方を組み合わせる(TLS/HTTPS)

共通鍵は「速いが鍵を渡せない」、公開鍵は「鍵を渡せるが遅い」。この2つの弱点を打ち消し合うのが、ハイブリッド方式です。それぞれの長所だけを組み合わせます。
流れは2段構えです。(1)まず公開鍵方式で、共通鍵を安全に相手へ渡す。(2)その後の本通信は、速い共通鍵方式で暗号化する。鍵を渡す一瞬だけ遅い公開鍵を使い、大量の本文は速い共通鍵でさばく。これで「速さ」と「鍵を安全に渡す」を両立します。
この仕組みをWeb通信に応用したのがTLS(Transport Layer Security)です。HTTPの通信をTLSで暗号化したものが HTTPS で、あなたがふだん目にするブラウザの鍵マークの正体です。SSLという言葉も耳にしますが、現在の標準はTLSで、SSLは古い世代の呼び方です。試験では「SSL/TLS」とまとめて表記されます。
5. 基本情報では、3方式の役割が問われる

暗号化は、基本情報技術者のセキュリティ分野で毎回のように問われる中核テーマです。あなたが押さえる軸は、3方式の役割の切り分けと、それぞれの弱点です。ここまで弱点の連鎖で追ってきたあなたなら、もう地図はできています。
定番は「同じ鍵を使うのはどれか(=共通鍵)」「鍵配送問題を解くのはどれか(=公開鍵)」という役割の見分けです。さらに「HTTPSはなぜ両方を使うのか」を問う形も出ます。ここでは第4章の「速い共通鍵と、鍵を渡せる公開鍵の長所どり」がそのまま答えになります。AES=共通鍵、RSA=公開鍵という代表アルゴリズムも、セットで覚えておいてください。
次のステップ
暗号化はセキュリティ分野の常連です。基本情報技術者試験の試験範囲と勉強法ガイド で範囲をとらえておくと、関連分野との位置関係が見えます。
3方式の見分けは、基本情報技術者 セキュリティの問題集 の暗号化の設問で、実際に手を動かして固めてください。