DH法とは
DH法(Diffie-Hellman鍵共有法)とは、通信相手と暗号鍵そのものをやり取りせず、安全に共通の秘密情報を共有するための鍵共有方式です。第三者に通信を盗み見られる可能性があるネットワーク上でも、共通鍵暗号で使用する鍵を安全に生成できます。
DH法は1976年にWhitfield Diffie(ディフィー)とMartin Hellman(ヘルマン)によって発表されました。離散対数問題の計算が困難である性質を利用し、通信する双方が公開してもよい情報を交換したうえで、それぞれが秘密に保持する値を使って同じ共有秘密を算出します。
つまり、共通鍵そのものを通信経路で送信しないことがDH法の大きな特徴です。鍵を直接送る方式と比べて盗聴による鍵の漏えいリスクを抑えられるため、TLSやVPN、SSHなどの安全な通信を確立する仕組みに応用されています。
DH法の仕組み・流れ
DH法は、自身で設定した秘密鍵と、他者に知られてもいい公開鍵を設定し、それらを組み合わせて計算した数値の余りの値を共有して共通鍵を生み出す仕組みです。他者に傍受される危険のある通信経路でも使えるのが特徴です。ここからは、DH法の手順を詳しく見ていきましょう。
1.秘密鍵を設定する
始めに、鍵を共有する2者がそれぞれ自身で秘密鍵を設定します。例えば、七子さんと六郎さんがやりとりをする場合、七子さんの秘密鍵は7、六郎さんの秘密鍵は6としましょう。
この秘密鍵は共有鍵を生み出すために使います。秘密鍵が第三者に盗まれてしまっては、共有鍵を盗まれたも同然になるため、厳重に管理しなければなりません。
2.公開パラメータp・gを設定、共有する
続いて設定する公開鍵は、その名のとおり通信で双方が公開する鍵です。これ自体は第三者に盗み見られても問題ありません。
公開パラメータとして、素数pと、pより小さい自然数であるgを設定します。pの桁数が大きいほど解読しづらくなるため、本来pは大きな数であるべきですが、ここでは計算を簡略化するために、例としてp=5、g=4としましょう。七子さんと六郎さんは、この2つの数値を公開鍵として通信で共有します。
3.秘密鍵と公開鍵を使い計算した結果を相手へ送信する
次は、共有した公開鍵と、送信側・受信側がそれぞれ設定した秘密鍵を使って計算します。具体的には、共有したgを「自身が設定した秘密鍵」で乗して、pで割った余りを求めます。七子さんと六郎さんの計算結果は以下のとおりです。
- 七子
- (gの7乗)÷p=(4の7乗)÷5=3,276 余り4
- 六郎
- (gの6乗)÷p=(4の6乗)÷5=819 余り1
このように算出した余りの値を双方が通信で相手に渡します。この数字は第三者に見られる恐れがあるため、共通鍵としては利用できません。余りの値を共通鍵を導くヒントにするのです。
4.公開鍵と秘密鍵を使って共有情報を計算する
ステップ3で互いに計算結果を交換し、六郎さんは七子さんの余りが4、七子さんは六郎さんの余りが1であることを知っています。
こうして受け取った余りの値を、さらに自身の秘密鍵で乗じ、pで割ります。先ほどの計算を、gの代わりに相手から受け取った余りで行うということです。七子さんと六郎さんの計算結果は以下のとおりです。
- 七子
- (相手の余りの7乗)÷p=(1の7乗)÷5=0 余り1
- 六郎
- (相手の余りの6乗)÷p=(4の6乗)÷5=819 余り1
こうして算出された余りの値は必ず両者で一致します。これを共通鍵として使うのです。
共通鍵自体は通信で交換していないため、第三者に知られることはありません。第三者は通信で交換される4と1の値を傍受できます。しかし、それぞれが秘密に保持している値を知ることは困難なため、交換された情報だけから共有秘密を求めることは容易ではありません。
DH法の具体的な利用例
DH法(Diffie-Hellman鍵共有法)は、安全に共通鍵を共有するための技術として、インターネット通信のさまざまな場面で利用されています。特に、第三者に通信内容を盗み見られるリスクがあるネットワーク環境において、安全に暗号鍵を交換する仕組みとして重要な役割を果たしています。ここでは、DH法が実際に使われている代表的な例を紹介します。
HTTPS(TLS通信)
Webサイトの通信を暗号化するHTTPSでは、TLS(Transport Layer Security)というプロトコルが使われています。TLS通信では、クライアント(ブラウザ)とサーバーの間で安全に共通鍵を生成する必要があります。この鍵交換の仕組みとして、DH法やその発展型であるECDHE(楕円曲線Diffie-Hellman)が利用されています。
これにより、ユーザーが入力したパスワードや個人情報などの通信内容を安全に暗号化することができます。
VPN(仮想プライベートネットワーク)
VPNは、インターネット上に安全な通信トンネルを構築する技術です。企業のリモートワーク環境や拠点間通信などで広く利用されています。
VPN接続では、通信を暗号化するための共通鍵を安全に共有する必要があります。その鍵交換の仕組みとして、DH法が利用されることがあります。これにより、公共のネットワークを利用する場合でも安全な通信を確立できます。
SSH(安全なリモートログイン)
SSH(Secure Shell)は、サーバーへ安全にリモート接続するためのプロトコルです。システム管理者がサーバーを操作する際などに利用されます。
SSH接続でも通信の暗号化が必要となるため、セッション開始時にDH法を用いた鍵交換が行われることがあります。これにより、ログイン情報や操作内容が第三者に盗み見られるのを防ぐことができます。
メッセージアプリやセキュア通信
セキュリティを重視したメッセージアプリや通信システムでも、DH法の仕組みが応用されています。ユーザー同士の通信を暗号化するために共通鍵を安全に生成する必要があり、その鍵交換にDH法やECDHが使われる場合があります。
このようにDH法は、Web通信、企業ネットワーク、サーバー管理、メッセージ通信など、インターネットの安全な通信を支える基盤技術として幅広く利用されています。
DH法の問題点
DH法は安全性の高い鍵の共有方法ですが、欠点もあります。
中間者攻撃を受ける可能性がある
中間者攻撃とは、通信を行う2者の間に第三者が介入し、2者に気づかれないように情報を盗み見る方法です。
DH法では、共有したpとgと自身の秘密鍵で計算して、余りを相手に公開する段階があります。この段階で第三者が2者の間に入り、相手になりすまして共通鍵の生成を行うのが中間者攻撃です。
例えば、上述の例で七子さんと六郎さんの間に太郎さんが入り込むとしましょう。七子さんは相手が六郎さんだと思いながら、太郎さんと共通鍵を作成することになります。六郎さんも同様です。
その結果、七子さんが暗号化して六郎さんに送ったつもりのデータを、同じ鍵をもつ太郎さんが復号して盗み見ることができます。さらに太郎さんがそのデータを六郎さんと作った共通鍵で暗号化し、六郎さんに送れば、誰にもばれない盗聴が成立します。
サービス妨害攻撃を受ける可能性がある
サービス妨害攻撃(DoS攻撃)とは、サーバーなどに過剰な負荷をかけ、サービスを利用できない状態にする攻撃です。複数の端末から分散して攻撃するものはDDoS攻撃と呼ばれます。DH法はサービス妨害攻撃のターゲットにされやすいのが弱点です。
なぜなら、DH法は処理負荷の高い方法だからです。DH法における鍵のやり取りを大量に要求されると、サーバに負荷がかかりサービスに支障をきたします。
技術の発展により解読される可能性がある
近年の理論の発展やコンピュータの計算能力の向上により、暗号が解読されてしまう可能性が出てきています。楕円曲線暗号を利用した「ECDH(Elliptic Curve Diffie-Hellman)法」なども広く利用されています。
このようにDH法は安全な鍵共有方式として広く使われる一方、運用方法によってはリスクが生じる点に注意が必要です。実際の業務では、こうした暗号技術を適切に組み合わせ、安全に利用できる仕組みを整えることが重要になります。
【暗号化技術を安全に業務へ取り入れたい方へ】
簡単な質問に答えるだけで、自社に最適な暗号化ソフトを案内します。
無料で今すぐ利用できますので、下のリンクから診断を開始してください。
企業の情報漏えい対策に活用できる暗号化製品
企業で機密情報を安全に扱うには、ファイルや端末、業務データを適切に暗号化し、不正アクセスや情報の持ち出しを防ぐことが重要です。ここでは、データの暗号化やアクセス制御などに対応し、情報漏えい対策に活用できる暗号化製品を紹介します。
Security Platform (ハミングヘッズ株式会社)
- 官公庁で多数の導入実績!いつもの業務をすべて暗号化
- 国際セキュリティ規格「ISO/IEC15408」EAL3取得製品
- 不正アクセスからの遮断と完璧な暗号化でテレワークのリスク0
セキュリティ・ウェアハウス (株式会社スカイネクサス)
- エクスプローラー感覚の操作で簡単に暗号化が可能。
- ファイル単位の暗号化により柔軟な管理を実現。
- 暗号化したまま保存・バックアップが可能。
秘文 Endpoint Protection Service (株式会社日立ソリューションズ)
- 多層的なセキュリティ機能で情報漏えい対策を支援
- サーバー不要で初期コストを抑えて導入可能。
- 生成AI連携の宛先確認でリスクを低減。
DH法について知り、暗号化への理解を深めよう!
DH法とは共通鍵暗号方式における鍵の共有方法です。離散対数問題を利用したアルゴリズムですが、近年理論の発展やコンピュータの計算能力の向上によって解読されるリスクもあります。適切に活用して自社の情報を守りましょう。


