✨ 鍵配送問題(Key Distribution Problem)とは
共通鍵暗号では、送信者と受信者が同じ鍵を事前に共有している必要があります。ここに2000年来の根本的な問題が潜んでいました。
😱 鍵配送問題のジレンマ
- 暗号化された通信をするには「秘密の鍵」を事前に共有する必要がある
- しかし「秘密の鍵」を安全に送るにはすでに安全な通信路が必要
- 安全な通信路があるなら最初から鍵など要らない——完全な堂々巡り!
歴史的な解決策とその限界
- 外交ルート:外交官が物理的に鍵を運ぶ(非常にコストがかかる)
- 物理的な鍵共有:会って直接渡す(インターネット時代には不可能)
- 鍵配布センター:信頼できる第三者が鍵を管理して配布(単一障害点・プライバシー問題)
インターネット時代には数十億人規模の見知らぬ人同士が安全に通信する必要があります。「事前に会って鍵を渡す」解決策はスケールしません。

確かに…初めて使うショッピングサイトと事前に「鍵を共有」なんてできないよね。

まさに!Amazonと初めて通信するとき、事前に秘密の鍵を共有していないはずね。なのにHTTPS通信ができているのが「鍵配送問題の解決策が実装されているから」なんだよ🐾
🔸 ディフィー・ヘルマン鍵交換(DH法):1976年の革命
1976年、ホワイトフィールド・ディフィーとマーティン・ヘルマンが「公開した情報から共通の秘密を生成できる」という数学的トリックを発見しました。
カラーミックスで理解するDH法
数式の代わりに「色の混合」の比喩で理解しましょう:
- アリスとボブが公開の場で「黄色」という共通色に合意(公開情報でOK)
- アリスが自分の秘密色「青」を混ぜ→「黄緑」をボブに送る
- ボブが自分の秘密色「赤」を混ぜ→「橙」をアリスに送る
- アリスが受け取った「橙」に自分の秘密色「青」を混ぜ→「黄+青+赤の混合色」
- ボブが受け取った「黄緑」に自分の秘密色「赤」を混ぜ→同じ「黄+青+赤の混合色」
- 盗聴者が「黄色」「黄緑」「橙」を全部知っていても、秘密の混合色は得られない!
実際の数学:離散対数問題
DH法の実際の安全性は「離散対数問題の困難性」に基づいています。
【公開値】 素数p=23, 原始根g=5
アリスの秘密鍵:a=6 → 公開値 A = 5^6 mod 23 = 8
ボブの秘密鍵:b=15 → 公開値 B = 5^15 mod 23 = 19
アリス:共通鍵 = 19^6 mod 23 = 2
ボブ:共通鍵 = 8^15 mod 23 = 2 ✅ 同じ値になる!
※実際には素数pは2048ビット以上の巨大数を使用。「8からaを逆算する」(離散対数問題)は現実的な時間では解けない。
🔸 現代のDH法:ECDH(楕円曲線DH)
現在のTLS 1.3では古典的なDH法ではなく、楕円曲線ディフィー・ヘルマン(ECDH)が使われています。楕円曲線上の数学問題(楕円曲線離散対数問題)を使うことで、より短い鍵(256ビット程度)で同等以上の安全性を実現します。
| 方式 | 鍵長(2024年安全水準) | 計算量 | 現在の使用 |
|---|---|---|---|
| 古典DH(有限体) | 2048〜4096ビット | 重い | レガシーシステム |
| ECDH(楕円曲線) | 256〜384ビット | 軽い | ✅ TLS 1.3の標準 |
📌 まとめ
- 鍵配送問題:「暗号化に必要な鍵を安全に送るには、すでに安全な通信路が必要」という堂々巡り
- 2000年以上解けなかった難題を、1976年にディフィーとヘルマンが数学的に解決
- DH鍵交換:公開情報から共通の秘密を生成できる離散対数問題の性質を利用
- 現代では楕円曲線版のECDHが標準(短い鍵・高速・TLS 1.3で採用)
- この発明がなければ、今日のHTTPS・電子商取引・暗号資産は存在しなかった