ハイブリッド暗号方式(hybrid cryptosystem)
共通鍵を公開鍵暗号で相手に渡し、本文はその共通鍵で暗号化する方式。
もう少し詳しい説明
ハイブリッド暗号方式は、共通鍵暗号と公開鍵暗号を組み合わせて、両方の長所だけを使う方式です。
まず、「鍵」とは何か
暗号の話に出てくる鍵は、金属の鍵ではありません。とても長い数字です。
暗号化は、中身を他人には読めない形に変えることです。このとき、もとの文章と鍵の数字を使って計算します。計算のしかたが決まっているので、同じ鍵を使えば、もとの文章に戻せます。これが復号(暗号化されたものを、もとの読める形に戻すこと)です。
鍵の数字を知らない人は、計算を戻せません。だれが見ても意味の取れない文字の並びにしか見えません。
暗号のやり方は、鍵の使い方で2つに分かれます。
- 共通鍵暗号方式 … 暗号化と復号に、同じ鍵を1本使うやり方
- 公開鍵暗号方式 … 2本の鍵を組で使うやり方。みんなに配る公開鍵と、本人だけが持つ秘密鍵に分かれる。公開鍵でかけたものは、対になる秘密鍵でしか開けられない
2つの方式には、それぞれ弱点がある
| 共通鍵暗号方式 | 公開鍵暗号方式 | |
|---|---|---|
| 鍵 | 暗号化と復号に同じ鍵 | 公開鍵で暗号化、秘密鍵で復号 |
| 速さ | 速い | 遅い |
| 弱点 | 鍵を相手にどう渡すか(鍵配送問題) | 大量のデータには時間がかかりすぎる |
共通鍵暗号方式(同じ鍵を1本使うやり方)は速いのですが、その鍵を相手に届ける方法がありません。
通信経路で送れば、盗み見られたら終わりです。鍵が盗まれた時点で、暗号化(中身を読めない形に変えること)の意味がなくなります。鍵を持っている人は、だれでも中身を戻せるからです。これを鍵配送問題と呼びます。
公開鍵暗号方式(鍵を2本組で使うやり方)は、この問題を解きます。公開鍵は見られても構わない鍵なので、堂々と配れるからです。盗み見た人が公開鍵を手に入れても、それで開けることはできません。開けられるのは、対になる秘密鍵を持っている本人だけです。
そのかわり、計算に時間がかかります。同じ量のデータを暗号化(中身を読めない形に変えること)するのに、共通鍵暗号方式(同じ鍵を1本使うやり方)よりけた違いに長い時間がかかります。動画やファイルのような大きなデータを、まるごと公開鍵暗号方式で処理するのは現実的ではありません。
組み合わせて解く
考え方は単純です。公開鍵暗号方式で扱うデータの量を、できるだけ減らせばよい。
公開鍵暗号方式(鍵を2本組で使うやり方)の弱点は「時間がかかる」ことでした。時間がかかるのは扱うデータが大きいときなので、公開鍵暗号方式で運ぶのは、短い共通鍵1本だけにします。本文のほうは、速い共通鍵暗号方式にまかせます。
こうすれば、公開鍵暗号の「鍵を安全に渡せる」という長所だけを使い、「時間がかかる」という弱点はほとんど出てきません。
手順を追うと、こうなります。
- 送信側が、その通信かぎりの共通鍵を作る
- その共通鍵を、受信側の公開鍵で暗号化して送る
- 本文は共通鍵で暗号化して送る
- 受信側は、自分の秘密鍵で共通鍵を取り出し、それで本文を復号する
公開鍵暗号方式で運ぶのは鍵1本ぶんの短いデータだけです。本文がどれだけ大きくても、速い共通鍵暗号方式(同じ鍵を1本使うやり方)で処理できます。
どこで使われているか
HTTPS(HTTP Secure。Webページのやり取りを暗号化する決まりごと。アドレスが https:// で始まるサイトで使われています)が代表例です。
ブラウザ(Google Chrome、Microsoft Edge、Safari など、Webページを見るソフト)でWebサイトを開くたびに、共通鍵暗号方式と公開鍵暗号方式を組み合わせたやり取りが動いています。この仕組みをSSL/TLS(通信を暗号化するための決まりごと。いまはTLSが使われ、SSLはその古い名前です)と呼びます。
このとき、相手の公開鍵が本物かどうかを確かめる必要があります。悪意のある人が自分の公開鍵を相手のものだと偽って渡してきたら、中身をその人に読まれてしまうからです。
そこで使われるのが、認証局(CA。公開鍵の持ち主がだれなのかを保証する、第三者の組織)が発行したデジタル証明書(この公開鍵は確かにこの相手のものだ、と認証局が保証した電子の書類)です。ハイブリッド暗号方式・認証局・証明書は、HTTPSという1つの話の中で組み合わさっています。
ただし、上の手順どおり「共通鍵を相手の公開鍵で暗号化して送る」のは、TLS 1.2 以前のやり方です。現在の TLS 1.3 では、この方式は廃止され、両者が計算し合って同じ共通鍵にたどり着く別の手順(鍵交換)に置き換わりました。証明書の鍵の組は、相手が本人かを確かめる署名のためだけに使われます。
共通鍵暗号方式と公開鍵暗号方式を組み合わせるという枠組み自体は変わりません。試験でハイブリッド暗号方式として問われるのは上の手順のほうなので、まずはそちらを押さえてください。
何を守っているのか
混ざりやすいので、役割を分けておきます。
| 仕組み | 守るもの |
|---|---|
| ハイブリッド暗号方式 | 内容を読まれないこと(機密性) |
| デジタル署名 | 改ざんされていないこと、送信者が本人であること |
| 認証局・証明書 | その公開鍵が、確かに相手のものであること |
言葉を2つ補っておきます。機密性は、決められた人だけが中身を見られる状態のことです。デジタル署名は、送り主が本人であることと、中身が書き換えられていないことを示す印です。紙の書類に押す印鑑にあたります。
暗号化(中身を読めない形に変えること)だけでは「誰が送ったか」は分かりません。 封をしただけの手紙に、差出人が書かれていないのと同じです。逆に、デジタル署名(本人と書き換えなしを示す印)だけでは内容は隠せません。印鑑を押しても、中身は読めたままです。
試験では、この3つを1つの選択肢に混ぜてきます。
覚え方:重い荷物と、鍵だけ
宅配便に置き換えると、イメージしやすくなります。
- 本文 … 大きな荷物。頑丈な箱(共通鍵暗号)に入れる。開けるには鍵が要る
- 共通鍵 … その箱の鍵。相手しか開けられない小箱(公開鍵暗号)に入れて一緒に送る
大きな荷物を相手しか開けられない小箱に入れようとすると、時間がかかりすぎる。 そのため、小箱に入れるのは鍵だけにする。これがハイブリッド暗号方式の発想です。
試験ではこう出る
科目A(旧・午前)のセキュリティ分野で出ます。
多いのは、ハイブリッド暗号方式の説明を選ばせる問題と、共通鍵暗号方式(同じ鍵を1本使うやり方)・公開鍵暗号方式(鍵を2本組で使うやり方)の長所短所を組み合わせて問う問題です。SSL/TLS(通信を暗号化する決まりごと)の仕組みとして出題されることもあります。応用情報では、鍵の受け渡しの手順を順に追わせる形になります。
判断の軸は1つです。公開鍵暗号方式で運ぶのは「共通鍵」だけ、本文は共通鍵暗号方式。
この向きが逆になっている選択肢は誤りです。具体的には「本文を公開鍵で暗号化する」「共通鍵を平文(暗号化していない、そのまま読める状態の文)で送る」といった形で出てきます。
もう1つ、二重に暗号化する方式ではないという点も狙われます。組み合わせているのは暗号化する対象であって、暗号化を重ねているのではありません。本文には共通鍵暗号方式を1回、共通鍵には公開鍵暗号方式を1回、それぞれ別のものに1回ずつかけています。
関連する用語
- 共通鍵暗号方式
- 暗号化と復号に同じ鍵を使う方式。速いが、鍵をどう渡すかが問題になる
- 公開鍵暗号方式
- 公開鍵で暗号化し、秘密鍵で戻す方式。鍵を配れるが、処理が遅い
- 鍵配送問題
- 共通鍵を、盗み見られずに相手へ渡せないという問題。ハイブリッド方式が解く相手
- 認証局(CA)
- 公開鍵の持ち主を保証する第三者。相手の公開鍵が本物かは、これで確かめる
- SSL/TLS
- HTTPSで使われる通信の暗号化の仕組み。ハイブリッド暗号方式の代表例
ミニクイズ
ハイブリッド暗号方式の説明として、最も適切なものはどれか。
正解は 1番:本文は共通鍵暗号で暗号化し、その共通鍵を相手の公開鍵で暗号化して送る
ハイブリッド暗号方式は、処理が速い共通鍵暗号で本文を暗号化し、その共通鍵だけを公開鍵暗号で安全に相手へ渡します。速さと鍵配送の安全性を両立させる組合せです。「二重に暗号化する」ものではありません。暗号化を重ねても、公開鍵暗号で本文全体を処理する遅さは解消されません。「共通鍵を別の手段で渡す」のは共通鍵暗号方式そのままの運用で、鍵配送問題が残ります。「ハッシュ関数(もとのデータから決まった長さの値を作る計算。もとには戻せません)で変換した値を、送信者自身の秘密鍵で暗号化する」のはデジタル署名の仕組みで、改ざんされていないことと送信者が本人であることを示すものです。本文そのものを秘密にする働きはありません。
この分野をまとめて解く → セキュリティのミニテスト(全47問)
最終更新:2026-09-23