教育・資格支援

【図解】ハイブリッド暗号とは?SSL/TLSの正体を3分で解説

結論:共通鍵の「速さ」と公開鍵の「安全な鍵配送」を組み合わせたものがハイブリッド暗号

共通鍵暗号は処理が速い一方で、同じ鍵をどうやって相手に渡すかという鍵配送問題を抱えています。公開鍵暗号はその鍵配送問題を解決できますが、処理が遅く大量のデータには向きません。
そこで、鍵の受け渡しだけを公開鍵暗号で行い、本文データのやり取りは共通鍵暗号で高速に処理する——これがハイブリッド暗号方式です。
そして、私たちが毎日使っているSSL/TLS(HTTPS通信)の正体が、まさにこのハイブリッド暗号方式です。

今回は、ITパスポートと基本情報技術者試験のセキュリティ分野でほぼ毎年出題される「ハイブリッド暗号方式」と「SSL/TLS」の仕組みを、図解でやさしく解説していきます。

「共通鍵と公開鍵、どっちの鍵で何を暗号化しているのか分からなくなる」——このつまずき方、本当に多いです。逆に言えば、どの鍵が何を守っているかさえ整理できれば、この分野の問題はほとんど落としません。3分で完了するので、サクッといきましょう。

この記事でわかること

・共通鍵暗号と公開鍵暗号、それぞれの得意・不得意
・ハイブリッド暗号方式の仕組み(どの鍵で何を暗号化するか)
・図解でつかむSSL/TLSハンドシェイクの流れ
・サーバ証明書と認証局(CA)が保証しているもの
・試験で確実に1点取るための練習問題3問


1. 前提のおさらい|共通鍵暗号と公開鍵暗号の得意・不得意

ハイブリッド暗号は「2つの方式を組み合わせたもの」なので、まず組み合わせる素材の性格を押さえるところから始めます。


共通鍵暗号|処理は速いが「鍵配送問題」がある

共通鍵暗号方式とは、暗号化と復号に同じ鍵を使う方式です。代表例はAESですね。処理がシンプルなぶん動作が非常に速く、大量のデータを暗号化するのに向いています。

ただし、決定的な弱点があります。受信者も同じ鍵を持っていないと復号できないため、その鍵をどうやって安全に相手へ届けるかという問題が発生するのです。

これを鍵配送問題と呼びます。鍵をそのままネットワークに流せば、盗聴された時点で暗号の意味がなくなってしまいます。


公開鍵暗号|鍵配送は解決できるが処理が遅い

公開鍵暗号方式は、暗号化と復号に別々の鍵(公開鍵と秘密鍵)を使う方式です。代表例はRSAですね。公開鍵は誰に見られてもかまわないので配布でき、その公開鍵で暗号化されたデータは対応する秘密鍵を持つ本人しか復号できません。鍵配送問題はこれで解決します。

一方で、公開鍵暗号は計算が複雑で処理が遅いという弱点があります。数百MBのファイルや動画のストリーミングをすべて公開鍵暗号で処理するのは、現実的ではありません。

それぞれの方式の詳しい仕組みは、こちらの記事で図解しています。

こちらもCHECK

秘密鍵方式と公開鍵方式の違いは「鍵を公開するのは受信者」で解決!

「公開鍵で暗号化して……いや、秘密鍵だったっけ?」 暗号方式の問題を解くたびに、こんなふうに手が止まっていませんか? 秘密鍵方式と公開鍵方式は、ITパスポート・基本情報技術者試験の両方で定番の頻出テー ...

続きを見る


講師視点|「速い/遅い」「配れる/配れない」の対比で覚える

僕が初学者に説明する時は以下のような伝え方をしています。

ポイント

・共通鍵=家の合鍵(早く開けられるが、合鍵そのものを郵送するのが怖い)
・公開鍵=誰でも投函できる郵便受け(入れるのは自由、取り出せるのは鍵を持つ住人だけ)

「公開鍵暗号のほうが新しくて安全だから、共通鍵暗号はもう使わない」という誤解をする方が結構多い印象です。実際には両方が現役で、速度が必要な場面では共通鍵暗号が主役です。優劣ではなく適材適所、という捉え方をしておきましょう。


2. ハイブリッド暗号方式とは

ここがこの記事の核心です。2つの方式の弱点をお互いに埋め合う、という発想を押さえていきましょう。


仕組み|公開鍵で「共通鍵」を届け、本文は共通鍵でやり取りする

ハイブリッド暗号方式とは、共通鍵暗号と公開鍵暗号を組み合わせて使う方式です。手順は2段構えになっています。

第1段階では、通信で使う共通鍵(セッション鍵)を送信側が生成し、それを受信側の公開鍵で暗号化して送ります。この暗号化された共通鍵は、受信側の秘密鍵でしか復号できません。つまり、鍵そのものを安全に届けられます。

第2段階では、両者が同じ共通鍵を持った状態になるので、以降の本文データはすべて共通鍵暗号でやり取りします。ここは高速に処理できます。


なぜこの組み合わせが最適なのか

ポイントは、公開鍵暗号で暗号化する対象が共通鍵という数十バイト程度の小さなデータだけだという点です。処理が遅いという弱点は、対象が小さければほとんど問題になりません。

一方、サイズが大きい本文データは、速い共通鍵暗号にまかせます。結果として、鍵の受け渡しだけ公開鍵、中身の暗号化は共通鍵という役割分担が生まれ、安全性と速度の両方を満たせるわけです。

3つの方式を表でも整理しておきましょう。

項目共通鍵暗号方式公開鍵暗号方式ハイブリッド暗号方式
使う鍵同じ鍵1本公開鍵と秘密鍵のペア両方を役割分担で使用
処理速度速い遅い速い(本文は共通鍵のため)
鍵配送問題ありなしなし(公開鍵で解決)
暗号化する対象データ全般小さなデータ向き共通鍵=公開鍵/本文=共通鍵
代表例AESRSASSL/TLS(HTTPS)

ポイント

・公開鍵暗号で暗号化するのは「共通鍵」だけ(本文ではない)
・本文データを暗号化するのは共通鍵
・目的は「安全な鍵配送」と「高速な暗号化」の両立


講師視点|「どの鍵で何を暗号化しているか」の混乱をほどく

僕が初学者に説明する時は以下のような伝え方をしています。

ポイント

・金庫の鍵を、頑丈な宅配ボックスで送るイメージ(宅配ボックス=公開鍵暗号、金庫=共通鍵暗号)
・鍵と荷物を分けて考える(公開鍵が運ぶのは「鍵」、共通鍵が守るのは「荷物」)

混乱の原因はほぼ例外なく、共通鍵を公開鍵で暗号化するという入れ子構造にあります。「公開鍵暗号で通信内容を暗号化している」と覚えてしまう方が結構多い印象です。問題文を読むときは「いま暗号化されているのは鍵なのか、本文なのか」を毎回確認するクセを付けておきましょう。


3. SSL/TLSの実際の流れ【ハンドシェイク図解】

ハイブリッド暗号方式を実際の通信に落とし込んだものが、SSL/TLSです。通信を始める前の準備のやり取りをハンドシェイクと呼びます。


証明書の提示から暗号化通信までの流れ

簡略化すると、次の順序で進みます。

ハンドシェイクの流れ

  • クライアントがサーバに通信開始を要求する
  • サーバがサーバ証明書(サーバの公開鍵入り)を提示する
  • クライアントが証明書を検証し、公開鍵が本物かを確認する
  • クライアントが共通鍵を生成し、サーバの公開鍵で暗号化して送る
  • サーバが秘密鍵で復号し、以降は共通鍵で暗号化通信を行う

なお、現在主流のTLS1.3では鍵の共有方式が変わっており、公開鍵で共通鍵をそのまま送る形ではなく、鍵交換アルゴリズム(DH系)で双方が同じ鍵を導出する方式が使われます。ただし試験対策としては上記の流れで十分なので、まずはこちらを押さえておきましょう。


サーバ証明書と認証局(CA)が保証しているもの

ここで疑問になるのが「受け取った公開鍵は、本当にそのサーバのものか」という点です。偽サイトが自分の公開鍵を渡してきたら、通信は暗号化されていても相手が偽物になってしまいます。

これを解決するのが認証局(CA)です。認証局はサーバの公開鍵と運営者情報をまとめたサーバ証明書に、認証局のデジタル署名を付けて発行します。クライアントは、あらかじめ持っている認証局の公開鍵で署名を検証し、証明書が改ざんされていないこと・信頼できる認証局が発行したことを確認します。

この署名の検証には、データを固定長の値に変換するハッシュ関数が使われます。仕組みはそれぞれの記事で詳しく解説しているので、あわせて確認してみてください。

こちらもCHECK

デジタル署名の仕組みとは?暗号化との違いを図解でわかりやすく解説します

今回は、ITパスポートと基本情報技術者試験のセキュリティ分野でほぼ毎年出題される定番テーマ、「デジタル署名の仕組み」を、鍵の使い方からやさしく解説していきます。 「公開鍵と秘密鍵、どっちを使うのか毎回 ...

続きを見る

こちらもCHECK

ハッシュ関数とは?ハッシュ値の仕組みと暗号化との違いを図解で解説

今回は、ITパスポートと基本情報技術者試験のセキュリティ分野でほぼ毎年出題される定番用語、「ハッシュ関数」を、仕組みからやさしく解説していきます。 「暗号化と何が違うのか分からない」「ハッシュ値って結 ...

続きを見る


「SSL」と「TLS」の呼び分け

SSLは古い規格で、脆弱性が見つかったため現在は使われていません。実際に動いているのは後継のTLSです。

ただし呼び名としてSSLが定着しているため、実務でも試験でも「SSL/TLS」と併記されるのが一般的です。問題文でSSLと書かれていても、中身はTLSだと考えて差し支えありません。


4. HTTPSとの関係と、よくある誤解


HTTPS=HTTP over TLS

HTTPSは、WebのプロトコルであるHTTPをTLSの上で動かしたものです。ブラウザのアドレスバーに表示される鍵マークは、この通信がTLSで暗号化されていることを示しています。


誤解①「HTTPSなら安全なサイト」ではない

鍵マークが保証するのは通信経路が暗号化されていることであって、そのサイトの運営者が善良かどうかではありません。フィッシングサイトも証明書を取得してHTTPS化できるので、鍵マーク=安全なサイト、という判断は成り立ちません。ここは試験でも実務でも狙われるポイントです。


誤解②「共通鍵か公開鍵のどちらか一方」ではない

SSL/TLSは公開鍵暗号方式である、と単純に覚えてしまうケースもよく見かけます。正しくは両方を組み合わせたハイブリッド暗号方式です。選択肢に「公開鍵暗号方式によって通信内容を暗号化する」といった表現があれば、ひっかけを疑ってください。


5. 試験対策|練習問題で確認しよう

以下は、IPA試験の出題傾向を踏まえて作成したオリジナルの練習問題です(IPA公式の問題そのものではありません)。本番形式に慣れるための練習として活用してください。実際の問題はIPA公式サイトで公開されています。


練習問題①(ITパスポートレベル)

(問題) ハイブリッド暗号方式において、通信の本文データを暗号化するために使う共通鍵は、どのようにして相手に安全に渡されるか。

ア.共通鍵をそのまま平文で送信する
イ.受信者の公開鍵で暗号化して送信する
ウ.送信者の秘密鍵で暗号化して送信する
エ.通信の前に別途、郵送などの手段で渡しておく

👉 正解を見る

正解:イ(受信者の公開鍵で暗号化して送信する)

解説:受信者の公開鍵で暗号化したデータは、対応する秘密鍵を持つ受信者本人しか復号できません。だからこそ共通鍵を安全に届けられます。アは盗聴された時点で暗号が無意味になります。ウは送信者の秘密鍵で暗号化したものが公開鍵で誰にでも復号できてしまうため、秘匿には使えません(こちらはデジタル署名の考え方です)。エは事前の受け渡しが必要になり、不特定多数と通信するWebの仕組みとして成立しません。


練習問題②(基本情報レベル)

(問題) SSL/TLSを用いたHTTPS通信によって保証されるものはどれか。

ア.接続先サイトの運営者が信頼できる企業であること
イ.通信内容が第三者に読み取られないこと
ウ.サーバ内に保存されているデータが暗号化されていること
エ.接続先サーバがマルウェアに感染していないこと

👉 正解を見る

正解:イ(通信内容が第三者に読み取られないこと)

解説:SSL/TLSが守るのはあくまで通信経路です。アは典型的なひっかけで、証明書は「そのサーバの公開鍵が本物であること」を保証するものであり、運営者の善良さまでは保証しません。ウはサーバ内部のデータ保護の話で、TLSの守備範囲外です。エも通信の暗号化とは無関係です。


練習問題③(混同しやすいポイント)

(問題) 暗号方式に関する説明のうち、適切なものはどれか。

ア.共通鍵暗号方式は、暗号化と復号に異なる鍵を使うため鍵配送問題が発生しない
イ.公開鍵暗号方式は処理が高速なので、大量データの暗号化に適している
ウ.ハイブリッド暗号方式は、共通鍵を公開鍵暗号で配送し、本文データを共通鍵暗号で暗号化する
エ.ハイブリッド暗号方式は、通信内容をすべて公開鍵暗号で暗号化して安全性を高めている

👉 正解を見る

正解:ウ

解説:アは共通鍵暗号方式と公開鍵暗号方式の説明が入れ替わっています。共通鍵暗号は同じ鍵を使うため鍵配送問題が発生します。イは逆で、公開鍵暗号は処理が遅く大量データには向きません。エはハイブリッドの意味を打ち消してしまう選択肢で、すべてを公開鍵暗号で処理するなら組み合わせる必要がありません。「鍵は公開鍵、本文は共通鍵」の役割分担を思い出せれば選べます。


6. 実務ではどう使われている?

いまやHTTPSは例外ではなく前提です。主要ブラウザはHTTP接続に警告を表示し、検索エンジンもHTTPS化を評価します。Webサイトだけでなく、APIの通信、メールの送受信、データベースへの接続まで、外に出る通信はTLSで保護するのが標準になりました。

現場で発生する作業の多くは、暗号方式そのものよりも証明書の運用です。有効期限が切れればブラウザに警告が出てサービスが実質停止するため、自動更新の設定や期限監視は運用側の定番タスクになっています。クラウドのロードバランサやCDNに証明書を集約し、更新を自動化する構成も一般的です。仕組みを理解しておくと、こうした運用の意味が見えてきます。


7. まとめ|一言で覚えるポイント

ポイント

・共通鍵暗号=速いが鍵配送問題あり/公開鍵暗号=鍵配送は解決するが遅い
・ハイブリッド暗号=鍵の受け渡しは公開鍵、本文の暗号化は共通鍵
・SSL/TLSが保証するのは通信経路の安全であって、サイトの信頼性ではない

試験では「共通鍵を何で暗号化するか」「SSL/TLSは何を保証するか」の2点がほぼ定番です。どちらも役割分担さえ整理できていれば確実に1点取れる問題なので、迷ったら鍵なのか本文なのかに立ち返ってください。余力があれば、証明書のチェーン構造やルート認証局まで押さえておくと、応用情報以上でも通用します。

それではまた!

一人で悩まず、相談しながら合格を目指したい方へ

「暗号の分野だけどうしても頭に入らない…」「そもそも何を覚えれば合格点に届くのか分からない…」
そんな方向けに、エンジニア歴20年・現役講師の僕が運営する無料LINEコミュニティを用意しています。用語の質問から勉強法・キャリア相談まで、気軽に聞ける場所です。

▶ ITキャリアラボに参加する(無料)

ITキャリアラボ

【無料】ITの悩みを気軽に相談できるコミュニティ・ITキャリアラボ

IT業界を目指すあなたへ|「ITキャリアラボ」無料コミュニティのご案内 「IT業界に転職したいけど、何から始めればいいかわからない…」「資格の勉強が続かない…」「相談できる人がいない…」 そんな不安、 ...

続きを見る

  • この記事を書いた人
  • 最新記事

ユウイチ

20年間ソフトウェアエンジニアとして働いた後、フリーランスを経て現在は1人社長として活動。 プログラミング講師やIT教育を中心に活動しながら、趣味でゲーム開発やシナリオ作成にも挑戦中。どちらも「創ることを通じて人を笑顔にしたい」という想いから始めた、大切なライフワーク。 「創造と教育で、人生に迷う人の“自由な一歩”を支援」を理念に発信中。

-教育・資格支援