まず結論:鍵交換は「共通の秘密」を合意する手続き
Virtual Private Network(VPN)を確立するとき、Diffie-Hellman鍵交換は、通信相手と同じ“共通の秘密”を作り出して合意するための仕組みです。ポイントは、秘密にすべき値(復元に必要な情報)を、そのまま通信路で送らない形で共有できる点にあります。この合意で得られた共通値(やそこから算出した材料)をもとに、VPNの通信を保護するためのセッション鍵が作られます。
雰囲気をつかむ簡単なモデル(公開情報+秘密+算出)
Diffie-Hellman鍵交換は、一般に次の要素で理解できます。
- 公開にしてよい値:共通の基数など、誰が見てもよいパラメータ
- 各当事者の秘密:自分だけが保持するランダムな秘密値
- 公開される計算結果:自分の秘密値を使って計算した“公開側の値”
大まかな流れは次のようになります。
- それぞれが自分の秘密値を作る
- 各自が秘密値を使って計算し、その結果(公開側の値)を相手に送る
- 相手が送ってきた公開側の値と、自分の秘密値を組み合わせて計算し、同じ共通値を得る
この「同じ共通値が得られる」理由は、数学的な性質(群演算の整合性など)によって、相手の公開値と自分の秘密値から同一の結果に到達するためです。その共通値を鍵導出(鍵生成)に回すことで、以後の暗号化に使えるセッション鍵になります。
VPNでの位置づけ:Diffie-Hellmanは“鍵を作る”部分
VPNで重要なのは、少なくとも次の役割が分かれていることです。
- 鍵交換(キーを作って合意する):Diffie-Hellman鍵交換はここが中心
- 認証(本当に正しい相手か確認する):鍵交換とは別に用意されるべき要素
- 保護(暗号化・完全性など):鍵ができた後に使う方式
