🐾 この記事の3秒まとめ
- 2000年以上の難題:「秘密の鍵を安全に渡す」ことは、スパイ映画さながらの命がけの作業だった。
- DH法の革命(1976年):盗聴されても大丈夫な公開回線上で、二人だけの秘密を数学的に生み出せる仕組みが誕生した。
- 現代の標準:スマホ時代に合わせて軽量化された「ECDHE」がTLS 1.3の鍵共有方式の一つとして広く使われている。
インターネットを安全に使うために欠かせない「暗号技術」。その中でも極めて重要なテーマが「鍵の共有」です。
🌱 なぜ鍵のやりとりは難しいの?-鍵配送問題のジレンマ

そもそも“鍵のやりとり”がどうしてそんなに問題になるの?

相手と“安全に”鍵を共有するって、実は完全な「堂々巡り」になってしまうからなんだ。
共通鍵暗号では、送信者と受信者が同じ鍵を事前に共有している必要があります。これを学術的に「鍵配送問題(Key Distribution Problem)」と呼びます。
😱 鍵配送問題のジレンマ
- 暗号化された通信をするには「秘密の鍵」を事前に共有する必要がある。
- しかし「秘密の鍵」を安全に送るには、すでに安全な通信路が必要。
- 安全な通信路があるなら、最初から暗号鍵など送る必要がない——!
📜 2000年間誰も解けなかった「歴史の苦労」
DH法が登場する前、人々は「鍵を安全に渡す」だけのために、スパイ映画のような命がけの苦労をしていました。
外交暗号書(コードブック)の運搬
第一次・第二次世界大戦時代まで、各国の外交官や軍は「コードブック」と呼ばれる暗号化記号集を使っていました。これを安全に配布するための苦労は壮大でした:
- 外交ポーチ:外交官特権により荷物検査が禁止された外交用かばん(鎖で手首につながれる)でコードブックを運搬
- 重りと沈没:船でのコードブック運搬時に「船が攻撃されたら必ず海に沈める」義務。1914年8月にドイツ巡洋艦「マクデブルク」がバルト海で座礁し、ロシア海軍が溺死したドイツ水兵の遺体からコードブックを回収、これをイギリスに共有しました。
- コードブックの寿命:本が奪われると全ての暗号が解読されるため、数ヶ月ごとに全世界の拠点に新しいコードブックを配布——膨大なコストと危険が伴いました。
OTP(ワンタイムパッド):完全な秘匿性だが最悪の鍵配送問題
ワンタイムパッドは理論的に解読不可能です(1949年シャノンが証明)。ただし等量の乱数鍵を事前に安全に渡す必要があります——「送信するデータと同じ量の鍵を事前に物理的に配達する」という本末転倒な問題が生じます。
⚠️ OTPの大きな矛盾
100GBの機密映像を送りたい → 100GBの乱数鍵が必要 → その100GBを安全に相手に手渡しする必要がある → 「なら最初から100GBの映像の入ったハードディスクを手渡しすればよくない?」
冷戦時代、米ソの首脳間のホットライン(1963年設置)にはOTP(使い捨ての鍵テープを使うワンタイム方式)が使われていました。鍵のテープは物理的に運んで届ける必要がありました。
n人通信での鍵の爆発的増加
共通鍵暗号でn人が全員ペアで通信するには n(n-1)/2 個の鍵が必要です:
- 2人なら:1つの鍵
- 10人なら:45個の鍵
- 100人なら:4,950個の鍵
- 1億人(インターネット)なら:約5,000兆個の鍵 —— 管理不可能!
鍵配布センター(KDC)アプローチの限界
信頼できる第三者が全員の鍵を管理する「鍵配布センター」方式は軍や政府組織で試みられましたが、中央集権の限界にぶつかります。
- KDCが全ての通信を復号できる(プライバシーなし)
- KDCが攻撃されると全ての通信が危険に(単一障害点)
- 「そもそもKDCを誰が管理するのか?」という信任問題

これじゃあ、初めて使うショッピングサイトやAmazonと通信するなんて、とても無理だね……。

そう!この2000年間誰も解けなかった「絶望的な状況」を、たった一発の数学のアイデアでひっくり返したのが、次のDH法なんだ🐾
🔁 1976年の大革命!Diffie-Hellman(DH)鍵共有法
1976年、ホイットフィールド・ディフィーとマーティン・ヘルマンが「公開された情報をやり取りするだけで、お互いに共通の秘密を生成できる」という魔法のような数学的トリックを発見しました。これが「Diffie-Hellman(DH)鍵共有法」です。
カラーミックス(色の混合)で理解する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ビット以上の巨大な数が使われます。ここでの例(p=23)は小さな数なので簡単に逆算できますが、実際の巨大な素数では、「8からa=6を逆算する」ような計算は現代のスーパーコンピュータでも現実的な時間では困難です。
🎭 DH法の課題と「RSA暗号」の誕生
画期的なDH法ですが、実は「中間者攻撃(Man-in-the-middle attack)」に弱いという課題がありました。
😈 中間者攻撃(MITM)の恐怖
アリスがボブに「黄緑」を送ったつもりが、途中で悪意ある第三者(イブ)が横取りし、イブが作った「偽の黄緑」をボブに送ります。DH法には「相手が本当にボブなのか?」を証明する『認証機能』が備わっていないため、アリスはイブと、ボブもイブと鍵を共有してしまい、全通信がイブに筒抜けになります。
「相手の身元をどう証明するか?」——この課題を残したDH法の論文(1976年)は世界中に衝撃を与え、多くの数学者を熱狂させました。
そして翌年の1977年、この論文に触発された3人の研究者(リベスト、シャミア、アドルマン)が、公開鍵暗号の構想を実際の方式にしたRSA暗号を発明し、暗号化だけでなく「身元の証明(デジタル署名)」にも使えることを示しました。
DH法が切り拓いた道が、現代インターネットの土台となるRSA暗号を生み出したのです。
🔸 現代の進化:ECDHとこれからの鍵共有
DH法とRSA暗号の登場から約半世紀。現在のインターネット(TLS 1.3など)では、古典的なDH法ではなく楕円曲線ディフィー・ヘルマン(ECDH)が広く使われています。
📱 なぜ「楕円曲線(ECDH)」が必要なのか?
古典的なDH法やRSA暗号は「巨大な数の計算」が必要で、非常に重い処理でした。現代はパソコンだけでなく、計算力の低いスマートフォンやIoT家電が常に暗号通信を行っています。バッテリーを無駄に消費せず、一瞬で安全に通信を確立するためには、軽くて鍵の短い「楕円曲線(ECDH)」の技術が有力な選択肢になったのです。
| 方式 | 鍵長(2024年安全水準) | 計算量・速度 | 現在の立ち位置 |
|---|---|---|---|
| 古典DH(有限体) | 2048〜4096ビット | 計算が重い | 徐々にレガシーシステムへ |
| ECDH(楕円曲線) | 256〜384ビット | 軽くて超高速 | ✅ TLS 1.3など現代の標準 |
📌 まとめ:DH法の誕生から現代の最前線まで
- 鍵配送問題は、「安全に鍵を送るには安全な通信路が必要」という2000年以上続く絶望的なジレンマだった。
- 1976年にDiffie-Hellman(DH)鍵共有法が登場し、「通信路が盗聴されていても安全に鍵を作り出せる」という数学のアイデアでこれを解決した。
- DH論文が示した公開鍵暗号の構想を、翌年RSA暗号が実現した。
- 現在は、スマホ時代に合わせてより短く高速なECDH(楕円曲線DH)が現代のインターネットで広く使われている。
- 前方秘匿性(PFS):セッションごとに使い捨て鍵(ECDHE)を使い、将来の鍵漏洩から過去の通信を守る
- TLS 1.3:鍵の確立方式として(EC)DHE、PSKのみ、PSK+(EC)DHEを規定。(EC)DHEの場合はHKDFで用途別の複数鍵を導出
- Signalプロトコル(Double Ratchet):WhatsApp・Signalが採用するE2EEの代表例。鍵漏洩時の影響を限定し、一定条件で将来の安全性を回復する二重の仕組み
💡 DH法の先にあるもの:公開鍵暗号と電子署名
鍵配送問題を「数学だけ」で解決したDH法の論文は、公開鍵暗号という考え方を世に広め、その流れは電子署名の技術へとつながりました。電子署名は、メッセージが本人によるものかを確かめる仕組みとして、さまざまな場面で使われています(使われているのはDH法そのものではなく、RSAや楕円曲線を使った署名方式です)。
🔑 DH法を知ったあなたへ:次の2つのアクション
- アクション1: ブラウザの開発者ツールのセキュリティ(Security)タブで、通信に使われている暗号スイートを見てみる。
- アクション2: LINEの「Letter Sealing(ECDH)」やSignalのDouble Ratchetを思い出しながら、E2EEアプリを意識して選ぶ。
💡 もふねこのアドバイス🐾
ここから先は数学や技術が大好きな人向けの、さらに深い内容だよ!まずは上の基本編を読んでから、興味が出たら読んでみてね!
この記事に関連する、より高度な専門技術について解説した記事です。興味があればぜひ飛び込んでみてください🐾