Diffie-Hellman鍵交換法(ディフィー・ヘルマン鍵交換法)
共通鍵の受け渡しの やり方だよ
ディフィーさんとヘルマンさんが考えたよ
離散対数問題というのを利用しているよ
突っ込んで見ていくとややこしいから頑張ってね
簡単に書くよ
Diffie-Hellman鍵交換法(ディフィー・ヘルマン鍵交換法)(読:ディフィー・ヘルマンカギコウカンホウ)とは
「ディフィー・ヘルマン鍵共有法」のこと。
用語の中身としては
共通鍵暗号方式
(暗号化と復号に同じ鍵を使う暗号化のやり方)で使う共通鍵
(共通鍵暗号方式で使う鍵)を受け渡すやり方のひとつ
であり
ディフィーさんとヘルマンさんが考えた「途中で悪いやつが盗み見していても、そいつにバレないように共通鍵を受け渡ししてやるぜ!」な やり方
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として
・鍵
・共通鍵暗号方式
・共通鍵
について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
鍵は「暗号鍵」の省略表現です。
「暗号化したり、元に戻したり(復号)するときに使うデータ」を指します。
共通鍵暗号方式は「暗号化と復号に同じ鍵を使う暗号化方式」です。
送る相手と受ける相手で同じ鍵を使って暗号化や復号をやります。
共通鍵は「共通鍵暗号方式で使う鍵で、それ1本で暗号化も復号もできる鍵」です。
送る相手と受ける相手で使う同じ鍵です。
共通鍵は暗号化や復号をするときに使います。
共通鍵は、それ1本で暗号化も復号もできる鍵です。
悪い人にパクられると、せっかく暗号化しても簡単に中身を見られてしまいます。
共通鍵の管理は慎重にやる必要があります。
以上を踏まえて、本題に入ります。
ここにピヨ太君とピヨ子さんがいました。
2人は共通鍵暗号方式でやり取りしようと思っています。
共通鍵暗号方式では2人で同じ鍵(共通鍵)を使います。
今回はピヨ太君が共通鍵を作ってピヨ子さんに送ろうとしました。
……が、ここで問題が発生です。
なんと、アクマ君が途中で2人のやり取りを盗み見していたのです。
ピヨ太君が共通鍵を送ったらアクマ君に共通鍵がパクられてしまうでしょう。
このままではピヨ子さんに共通鍵を送れません。
2人が共通鍵を持っていないと共通鍵暗号方式でやり取りはできません。
万事休すです。
そんな困った状況を解決したのがディフィーさんとヘルマンさんです。
2人は、途中で誰かが盗み見しているかもしれない通り道のみを使って共通鍵を受け渡しする方法を考えました。
この
ディフィーさんとヘルマンさんが考えた、途中で誰かが盗み見しているかもしれない通り道のみを使って共通鍵を受け渡しする方法
が「ディフィー・ヘルマン鍵交換法」です。
「ディフィー・ヘルマン鍵共有法」や「ディフィー・ヘルマン鍵共有」あるいは「DH法」などと表現される場合も あります。
そこら辺の表記ゆれは、ゆるく解釈してください。
さて、それではディフィー・ヘルマン鍵交換法の中身を見ていきます……が、きちんと説明すると頭が痛くなります。
数学が苦手な人が読むと、まず間違いなく頭がパンクするでしょう。
そこで今回は、いつも以上に大雑把に説明します。
きちんと中身を理解する必要がある人は、他のところで情報を補完してください。
そんな華麗な言い訳をしたところで、なんとなく説明していきます。
まずは状況整理です。
ピヨ太君とピヨ子さんがいます。
2人が同じ共通鍵を持っている状態にしたいです。
ピヨ太君とピヨ子さんのやり取りは、アクマ君が盗み見しています。
それではミッション開始です。
まず、ピヨ太君が「とある数字1」と「とある数字2」を決めてピヨ子さんに伝えます。
当然「とある数字1」と「とある数字2」はアクマ君にバレます。
でも、それはドンマイです。
次にピヨ太君が「とある数字1」と「とある数字2」と「ピヨ太数字(ピヨ太君が決めた自分だけが知ってる数字)」を使って「とある計算」をします。
そして求められた「とある計算結果ピヨ太版」をピヨ子さんに伝えます。
「とある計算結果ピヨ太版」はアクマ君にバレるでしょう。
ドンマイです。
ピヨ子さんはピヨ子さんで「とある数字1」と「とある数字2」と「ピヨ子数字(ピヨ子さんが決めた自分だけが知ってる数字)」を使って「とある計算」をします。
そして求められた「とある計算結果ピヨ子版」をピヨ太君に伝えます。
「とある計算結果ピヨ子版」もアクマ君にバレるでしょう。
ドンマイです。
次にピヨ太君は、ピヨ子さんから受け取った「とある計算結果ピヨ子版」と「ピヨ太数字」(と「とある数字2」)を使って「とある計算その2」をします。
そうすると「とある計算結果その2ピヨ太版」が求められます。
同じようにピヨ子さんも、ピヨ太君から受け取った「とある計算結果ピヨ太版」と「ピヨ子数字」(と「とある数字2」)を使って「とある計算その2」をします。
そうすると「とある計算結果その2ピヨ子版」が求められます。
実は、ですね。
細かい理屈の説明は省きますが「とある計算結果その2ピヨ太版」と「とある計算結果その2ピヨ子版」は同じ値になるのです。
おぉ、ピヨ太君とピヨ子さんの間で同じものを持っている状態になりましたね。
それでは、これを共通鍵として使いましょう。
「とある計算結果その2ピヨ太版」(=「とある計算結果その2ピヨ子版」)を共通鍵として使います。
ここでアクマ君の立場になって考えてみてください。
アクマ君の手元にあるのは
1.とある数字1
2.とある数字2
3.とある計算結果ピヨ太版
4.とある計算結果ピヨ子版
の4つです。
アクマ君が共通鍵をパクった状態にするには「とある計算結果その2ピヨ太版」か「とある計算結果その2ピヨ子版」そのもの、あるいは、どちらかを計算で割り出すために「ピヨ太数字」か「ピヨ子数字」が必要です。
しかし、どれもアクマ君は持っていません。
さらに、細かい理屈はすっ飛ばしますが、アクマ君の手元にある情報から「ピヨ太数字」や「ピヨ子数字」を割り出すのはメッチャ大変なのです。
ということで、ピヨ太君とピヨ子さんは、お互いが共通鍵を持っている状況になりました。
アクマ君に盗み見られている状況でやり取りをしたのにもかかわらずアクマ君にパクられることなく、です。
めでたし、めでたし。
このようなやり方で共通鍵をやり取りするやり方がディフィー・ヘルマン鍵交換法です。
今回、言葉を濁した「とある計算」の中身を知ろうとしたり、なんで「とある計算結果その2ピヨ太版」と「とある計算結果その2ピヨ子版」が同じ結果になるのかを突っ込んで調べていくと「離散対数問題」という用語が出てくるはずです。
この離散対数問題がですね。
ガッツリ数学なのですよ。
ということで、数学が苦手な人は、あまり突っ込んで調べない方が無難だと思います。
「数学?大好きっすよ!」な人は頑張って他のところで「p」とか「x」とかと格闘してください。
一言でまとめるよ
まぁ「ディフィー・ヘルマン鍵交換法」って単語が出てきたら「共通鍵
(共通鍵暗号方式で使う鍵)を受け渡すやり方のひとつなんだな~」と お考えください。
おまけ
■訳してみるよ
「Diffie(ディフィー)」は人の名前です。
「Hellman(ヘルマン)」も人の名前です。
「鍵交換法」は日本語ですね。
何となく くっつけると
ディフィーさんとヘルマンさんの鍵交換法
となります。






