鍵配送問題とDH鍵交換 — 盗聴者の前で秘密を共有する

共通鍵暗号は速いけれど、肝心の「鍵」を相手にどう渡すかが難問です。通信が丸見えの中で、二人だけが同じ秘密の鍵を作り出す — そんな魔法を、絵の具の混合と mod のべき乗で実現します。混ぜるのは簡単、分けるのは至難。この非対称が鍵を守ります。

1. 鍵をどうやって渡す? — 鍵配送問題

暗号で通信するには、送る側と受け取る側が同じ鍵を持っていなければなりません。でも、その鍵自体を通信路に流せば、盗聴者にそっくりコピーされてしまう。かといって全員と事前に鍵を配ろうとすると、人数が増えるほど必要な鍵の本数が爆発します(N 人なら N(N−1)/2 本)。これが鍵配送問題です。

鍵配送問題 — そのまま送れば盗まれる、配れば爆発する
上=鍵を通信路に流すと、中央の盗聴者イブがそのままコピーします。下=「全員と鍵を持ち合う」方式で必要な鍵の本数。人数を増やすと N(N−1)/2 で急増するのが分かります。
POINT — 鶏と卵のジレンマ 「安全に通信するには鍵がいる。その鍵を安全に送るには、また別の安全な通信がいる」— この堂々巡りが鍵配送問題の正体です。通信路が丸見えのまま、事前の秘密共有なしにこの輪を断ち切るのが、次に見る鍵交換のアイデアです。

2. 絵の具でたとえる — 混ぜるのは簡単、分けるのは大変

DH鍵交換のしくみは、絵の具の混合でぴたりとたとえられます。二人は公開の共通色から始め、それぞれ秘密の色を混ぜて、できた混合色を堂々と交換します(盗聴者も見ています)。受け取った混合色にもう一度自分の秘密色を混ぜると… 二人ともまったく同じ色にたどり着きます。絵の具は「混ぜるのは簡単、混ざった色から元の色を分離するのは至難」— これが鍵の安全性を生みます。

絵の具の鍵交換 — 二人だけが同じ色にたどり着く
上=公開の共通色。アリスとボブが秘密色を混ぜて交換し、受け取った色にもう一度秘密色を混ぜます。最後の2枚は完全に一致。イブは交換された2色と公開色を持っても、最終色は作れません。
POINT — 混ぜる順番はどうでもいい 最終色は「公開色 + アリスの秘密 + ボブの秘密」を混ぜたもの。アリスは(公開+ボブ色)に自分の色を、ボブは(公開+アリス色)に自分の色を足しますが、中身の顔料が同じなら順番が違っても同じ色になります。この順序によらない性質(交換法則)が、二人を同じ答えへ導きます。
公開色 + 秘密A + 秘密B(混ぜる順は自由) アリスは (公開+B) に A を、ボブは (公開+A) に B を足す。中身は同じ3色なので同じ最終色になる。

3. 本物のDH — 絵の具を mod のべき乗に置きかえる

絵の具の「混ぜる」を、時計の算術のべき乗に置きかえたのが、本物のディフィー・ヘルマン鍵交換です。公開の共通色は素数 p と底 g、秘密の色は数 a, b、混合色は ga mod p。二人が値を交換して自分の秘密で「もう一度べき乗」すると、どちらも gab mod p という同じ数に到達します。a, b を動かして、共有鍵が常に一致することを確かめてください。

DH鍵交換の数式版 — ga, gb から共有鍵 gab へ
公開の g, p と、交換される A = ga, B = gb はイブにも丸見え。それでも二人だけが同じ共有鍵 gab mod p にたどり着きます。a, b を変えると鍵も変わり、常に両者一致します。
POINT — なぜ一致する? (ga)b = gab = (gb)a。指数のかけ算は順番によらないので、アリスの計算した (B)a も、ボブの計算した (A)b も、同じ gab mod p になります。絵の具の「順番によらない」がそのまま数式に写っています。
(ga)b = gab = (gb)a (mod p) 盗聴者は g, p, ga, gb を知っても、gab を作るには a か b が必要=離散対数。時計の算術で見た「戻せなさ」がそのまま安全性になる。
注意 — 「見るだけ」には強いが「成りすまし」には弱い DH は盗聴(見るだけ)には強い一方、通信を成りすまして横取りする中間者攻撃(イブが両者になりすまして別々に鍵交換する)には無防備です。実際の TLS では、相手が本物かを電子署名・証明書で確認したうえで DH を行います。なお、自分の管理外のシステムへ攻撃を試すことは犯罪です — ここで学ぶのは、あくまで守るための原理です。

4. まとめ — 丸見えの通信路で秘密を作る

一歩先へ — 1976年の号砲 Whitfield Diffie と Martin Hellman が1976年に発表した鍵交換は、「暗号は事前に鍵を共有した者どうしのもの」という2000年来の常識を覆した、公開鍵暗号の幕開けでした(同じ発想は英 GCHQ で数年早く秘密裏に生まれていたことが後に判明)。今日の HTTPS はセッションごとに新しい gab を作っては捨てる前方秘匿性を備え、たとえ後で長期鍵が漏れても過去の通信は守られます。より短い鍵で同じことを行う楕円曲線版(ECDH)が今の主流で、その全体像は TLSのしくみ で見られます。絵の具ひと混ぜの直感が、世界中の通信の土台になっています。