概要

ハイブリッド暗号は「公開鍵暗号で共通鍵を安全に交換し、実際のデータは共通鍵暗号で暗号化する」方式です。公開鍵暗号の鍵配送安全性と、共通鍵暗号の処理速度を組み合わせた実用的なアプローチであり、TLS・S/MIME・PGP など実際に使われる暗号システムのほぼすべてに採用されています。

仕組みと動作原理

なぜハイブリッドが必要か

方式長所短所
公開鍵暗号のみ鍵配送が安全低速(RSAは共通鍵暗号の1000倍遅い)
共通鍵暗号のみ高速鍵配送が問題(安全に鍵を渡す手段が必要)
ハイブリッド暗号安全な鍵配送+高速処理実装が複雑

ハイブリッド暗号の基本フロー

【送信者】
1. 使い捨てセッション鍵(AES鍵など)をランダム生成
2. セッション鍵を受信者の公開鍵で暗号化(RSA-OAEP または ECIES)
3. 実際のデータをセッション鍵で暗号化(AES-GCM など)
4. 暗号化されたセッション鍵 + 暗号化データを送信

【受信者】
5. 自分の秘密鍵で暗号化されたセッション鍵を復号
6. 取得したセッション鍵で暗号化データを復号
ハイブリッド暗号の基本フロー
1
送信者
使い捨てセッション鍵をランダム生成
2
送信者
セッション鍵を受信者の公開鍵で暗号化
RSA-OAEP または ECIES
3
送信者
データをセッション鍵で暗号化
AES-GCM など
4
受信者
自分の秘密鍵でセッション鍵を復号
5
受信者
セッション鍵で暗号化データを復号

TLSにおけるハイブリッド暗号

TLS 1.2(RSA鍵交換)

1. サーバが公開鍵証明書を送付
2. クライアントが PreMasterSecret(48バイトの乱数)を生成
3. サーバの公開鍵で PreMasterSecret を暗号化して送付
4. 両者が PreMasterSecret からセッション鍵を導出
5. 以降はセッション鍵(AES等)で通信

※ PFS(前方秘匿性)がない。サーバ秘密鍵漏洩で過去通信も解読可能。

TLS 1.3(ECDHE + HKDF)

1. ECDHE で共通秘密(Shared Secret)を導出
2. HKDF(鍵導出関数)で複数のセッション鍵を生成
3. AES-GCM 等で通信

※ PFS あり。セッションごとにECDHEの鍵ペアを生成・破棄。

TLS 1.2(RSA鍵交換) と TLS 1.3(ECDHE+HKDF) の比較
TLS 1.2(RSA鍵交換) TLS 1.3(ECDHE+HKDF)
鍵の元になる値
PreMasterSecret(乱数)
ECDHEの共通秘密
鍵の暗号化
サーバ公開鍵で暗号化
数学的演算で導出(暗号化不要)
前方秘匿性(PFS)
なし
あり
サーバ秘密鍵漏洩時
過去の通信も解読可能
過去の通信は影響を受けない

KEM(Key Encapsulation Mechanism)

現代の暗号設計で使われる抽象化された概念です。

KEM.Encap(公開鍵) → (暗号文, 共通鍵)  ← 送信者が実行
KEM.Decap(秘密鍵, 暗号文) → 共通鍵    ← 受信者が実行

RSA-OAEP・ECDH どちらも KEM の一種として捉えられます。耐量子暗号(PQC)でも KEM が主要な設計パターンです。

S/MIMEとPGPでの利用

用途仕組み
S/MIME(メール暗号化)受信者の証明書(公開鍵)でセッション鍵を暗号化 → メール本文を暗号化
PGP/GPG受信者の公開鍵でセッション鍵を暗号化(同様の構造)

SC試験での頻出ポイント

  • ハイブリッド暗号を使う理由:公開鍵暗号は低速なのでデータを直接暗号化せず、セッション鍵の配送にのみ使う
  • TLS 1.2とTLS 1.3の鍵交換の違い:1.2はRSA(PFSなし)またはDHE/ECDHE、1.3はECDHE/DHE必須(PFS強制)
  • セッション鍵を使い捨てにする理由:1セッションの鍵漏洩が他のセッションに影響しないようにする
  • RSA-OAEPとは:RSAに安全なパディングを追加した現代的な暗号化方式(古いPKCS#1 v1.5は脆弱)
  • KEM(鍵カプセル化)の概念:共通鍵を「包んで」安全に配送する抽象化されたメカニズム

よくある誤問・ひっかけパターン

誤り① 「TLSでは公開鍵暗号でデータを直接暗号化している」→ 。公開鍵暗号はセッション鍵の交換にのみ使い、データは共通鍵で暗号化します。

誤り② 「セッション鍵は毎回同じものを再利用してもよい」→ 。セッションごとに新しい鍵を生成することで、1つの鍵漏洩の影響範囲を限定します。

誤り③ 「TLS 1.3ではRSA鍵交換を使える」→ 。TLS 1.3はRSA鍵交換を廃止し、ECDHE/DHEによるPFS必須です。

関連用語

重要キーワード

用語説明
ハイブリッド暗号公開鍵暗号と共通鍵暗号を組み合わせた方式
セッション鍵一時的な共通鍵。通信ごとに生成・破棄
KEM鍵カプセル化機構。共通鍵を安全に配送するための抽象化
RSA-OAEP現代的なRSA暗号化パディング方式
HKDF鍵導出関数。1つの共通秘密から複数の鍵を安全に生成
PreMasterSecretTLS 1.2でクライアントが生成するセッション鍵の元になる値