共通鍵暗号方式では「ディフィー・ヘルマン法」が使われるらしいので解説する
おはようございます。タカヒデです。
「共通鍵暗号方式」「公開鍵暗号方式」聞いたことありますか?
基本情報や応用情報の勉強をしたことがある人は誰もが知っているのではないでしょうか。
では、「ディフィー・ヘルマン法」は聞いたことありますか?
Diffie(ディフィー)とHellman(ヘルマン)でDH法と呼ばれるのですがあまり聞いたことないですよね?
どうやら「共通鍵暗号方式」で安全に鍵生成をする際に使われる仕組みの一つのようです。
今回は、この「ディフィー・ヘルマン法」という技術を学んだので解説していきます。
なお、本日の内容は「世界でもっとも強力な9のアルゴリズム」という本から引用させていただいています。
2012年に発売された本ですが、様々なアルゴリズムを分かりやすく教えているのでオススメですよ。
それでは始めていきます。
そもそも公開鍵暗号方式ってなんだっけ?
「ディフィー・ヘルマン法」の仕組みを解説する前に、そもそも「公開鍵暗号方式」が何だったか覚えていますか?
「そんなん知っているよ。」って人は次の章まで読み飛ばしてしまってください。
「共通鍵暗号方式」とは、データを盗聴されないために暗号化するための技術の一つです。
データを「送る側」と「受け取る側」で「同じ鍵を用いて」データの暗号化と複合を行います。
イメージはこんな感じです。

タカヒデが暗号化したものと同じ共通鍵を使って山田も複合をしています。
これによって第三者に盗聴されることなくデータのやり取りができています。
でもちょっとまってください?
共通鍵をどうやって受け取り側に渡すのでしょう?
鍵を盗聴されたら終わりでは?
そのための仕組みの一つとして「ディフィー・ヘルマン法」があるのです。
これからその仕組みを見ていきます。
ディフィー・ヘルマン法の仕組みを解説する
さてお待たせしました。
では「ディフィー・ヘルマン法」の解説に行きましょう。
そもそも「ディフィー・ヘルマン法」とは何か?
それは安全に共通鍵を生成するための技術です。
このディフィー・ヘルマン法自体は暗号化するためのアルゴリズムではありません。
(世界でもっとも強力な9のアルゴリズムでは暗号化アルゴリズムだと思って読んでしまったので少し混乱してしまいました)
先ほどの例のようにタカヒデと山田に、盗聴犯に盗まれないように同じ鍵を生成します。
ここでは、
- STEP1:色で理解
- STEP2:簡単な数字で理解
この2STEPで理解をしていきましょう。
STEP1:ディフィー・ヘルマン法を色で理解する
まずは分かりやすくするために、色で理解していきましょう。
ここでのゴールは「盗聴犯に分からないようにタカヒデと山田の2人だけの色を作成すること」です。
ここで先に前提だけお伝えします。
- タカヒデ・山田それぞれの部屋の中は秘密が守られている
- 部屋の外に出ると盗聴犯・タカヒデ・山田はその色が見えてしまう
つまりタカヒデの部屋から山田の部屋に直接色を伝えることはできません。
ではどのように2人だけの色を作成するのか見ていきましょう。
①
タカヒデは「公開色:赤」を部屋の外に公開します。
その時「秘密色:青」は部屋に持ったままにしておきましょう。
②
続けてタカヒデは「公開色:赤」と「秘密色:青」を混ぜた「公開色×秘密色:紫」を公開します。
③
同じように山田はタカヒデが公開した「公開色:赤」と自身の持つ「秘密色:黄」を混ぜた「公開色×秘密色:オレンジ」を公開します。
ここまでをイメージで表すとこんな感じ。

ここまでは良いですか?続けていきますね。
④
タカヒデは、山田の「公開色×秘密色:オレンジ」を部屋にもっていきます。
同様に山田も、タカヒデの「公開色×秘密色:紫」を部屋に持ってきます。
⑤
タカヒデ、山田ともに自分の秘密色を混ぜ合わせることで、「青:赤:黄」が混ざった2人だけの秘密の色が完成します。
⑥一方、盗聴犯は公開された色だけを見ても、2人がどんな色が完成しているのかは分かりません。

これで2人だけの秘密の色が完成しました。
この「青:赤:黄」の秘密の色が共通鍵です。
どうでしょう?イメージできましたか?
STEP2:ディフィー・ヘルマン法を簡単な数字で理解する
続けて同じことを簡単な数字で理解していきましょう。
色でイメージできているので理解しやすいはずです。
ここでのゴールは「盗聴犯に分からないようにタカヒデと山田の2人だけの数値を作成すること」です。
STEP2では前提条件に1つルールを足させていただきます。
- タカヒデ・山田それぞれの部屋の中は秘密が守られている
- 部屋の外に出ると盗聴犯・タカヒデ・山田はその色が見えてしまう
- この世界では掛け算のみが使用でき、割り算は使用できない
あくまで理解するためのものなので、「割り算は使えない」と覚えておいてください。
では手順を見ていきましょう。
①
タカヒデは「公開値:7」を部屋の外に公開します。
その時「秘密値:4」は部屋に持ったままにしておきましょう。
②
続けてタカヒデは「公開値:7」と「秘密値:4」を掛け合わせた「公開値×秘密値:28」を公開します。
③
同じように山田はタカヒデが公開した「公開値:7」と自身の持つ「秘密値:6」を掛け合わせた「公開値×秘密値:42」を公開します。
ここまでをイメージで表すとこんな感じ。

④
タカヒデは、山田の「公開値×秘密値:42」を部屋にもっていきます。
同様に山田も、タカヒデの「公開値×秘密値:28」を部屋に持ってきます。
⑤
タカヒデ、山田ともに自分の秘密値を混ぜ合わせることで、「4×7×6=168」という2人だけの秘密の値が完成します。
⑥一方、盗聴犯は公開された値だけを見ても、2人がどんな値が完成しているのかは分かりません。

この「168」が共通鍵です。
ディフィー・ヘルマン法ではこんな流れで安全に共通鍵を生成するわけですね。
まとめ
以上がこの「ディフィー・ヘルマン法」という技術を解説する記事でした。
- 共通鍵暗号方式
- データを盗聴されないために暗号化するための技術の一つ
- データを「送る側」と「受け取る側」で「同じ鍵を用いて」データの暗号化と複合を行う
- ディフィー・ヘルマン法
- 安全に共通鍵を生成するための技術
このディフィー・ヘルマン法は実際に物理的な鍵を受け渡すわけでは無いのでイメージしづらいかもしれません。
もっと詳しく知りたい方はぜひ「世界でもっとも強力な9のアルゴリズム」を読んでみてください。
お疲れさまでした。
