まず何を守る仕組みか

Diffie-Hellman(ディフィー・ヘルマン)暗号化は、通信の参加者同士が「同じ共通鍵」を作るための鍵共有(key agreement)方式です。ここで作られる共通鍵を使って、その後の通信内容を暗号化する仕組みと組み合わさることで、盗聴者が通信の中身を読み取ることを難しくします。つまりDiffie-Hellman単体は「暗号文を作る」部分というより、「暗号化に使う鍵を合意する」役割が中心です。

ただし、オンラインの脅威は盗聴だけではありません。通信相手のなりすまし、改ざん、リプレイなど、脅威の種類によって必要な対策が変わります。Diffie-Hellmanは、適切に組み込まれて初めて防御として意味を持ちます。

簡単なモデル:共通鍵を“勝手に作らせない”

直感的には、参加者AとBがそれぞれ自分だけが知っている秘密情報から計算を行い、やり取りする情報を組み合わせることで最終的に同じ共通鍵に到達します。通信では、秘密情報そのものは送らず、代わりに計算結果の一部のような値を共有します。すると、第三者が通信を傍受しても、共通鍵そのものを再現するには追加の秘密情報が必要になります。

この「送るのは秘密ではないが、鍵は導けない」という性質が、盗聴に対する基本的な狙いです。ここが、Diffie-Hellmanが“鍵共有”として注目される理由です。

仕組みの要点(何が起きるか)

一般にDiffie-Hellmanを使う通信は、次のような流れで理解できます。 1つ目に、参加者は鍵共有のためのパラメータと、自身の一時的(または長期的)な秘密情報を用意します。 2つ目に、計算した公開値に相当する情報をやり取りします。 3つ目に、受け取った公開値と自分の秘密情報を使って共通鍵を計算します。

ここで重要なのは、鍵共有の結果として得られる共通鍵が、後続の暗号化(例:対称鍵暗号によるデータ暗号化)で利用される点です。つまりDiffie-Hellmanは「後半の暗号化を成立させる前提の鍵」を用意します。

制限と例外:認証がないと“守れる範囲”が狭くなる

Diffie-Hellmanは、盗聴を前提にした鍵共有としては有効でも、常に万能ではありません。特に問題になりやすいのが認証(誰と通信しているかの確認)です。

認証がない、あるいは弱い場合、中間者攻撃のように第三者が通信の両側に入り込み、それぞれと別々に鍵共有を成立させる形が成立する可能性があります。この場合、通信内容は暗号化されていても、第三者がそれぞれの経路で暗号化・復号を行える形になり、結果として“相手になりすまされた通信”になりえます。

結論として、Diffie-Hellmanで鍵を合意できたとしても、

  • 通信相手が正しいか(認証)
  • 改ざんやなりすましを検知できる設計か が満たされないと、防御効果は十分に得られません。