『世界で最も強力なアルゴリズム9選』という本を読んで、発想が天才的だと感じたアルゴリズムとしてDiffie-Hellman鍵交換プロトコルというものを発見し、またその説明がとてもわかりやすかったので、今回は数学要素を完全に抜きにしてこの天才的発想を紹介する。
目次
1.Diffie-Hellman鍵交換プロトコルとは何?どこで使われる?
2.Deffie-Hellmann鍵交換プロトコルのアルゴリズムを理解する
3.まとめ
Diffie-Hellmann鍵交換プロトコルとは、パソコン同士でヒソヒソ話をするために用いられている。「???」となるかもしれないが、これが個人的には一番わかりやすかった。「ヒソヒソ話をするのに何がすごいの?」と考えるかもしれないが、インターネットと言う空間を考えるとすごいことがわかる。誰もがあなたの声が聞ける場所で、秘密の話をすると言うことである。しかしこのプロトコルはこの問題を解決した。
例えば、ある部屋に3人(あなた、Bさん、Cさん)がいたとする。この部屋にはルールがあり、大きな声で話さなければならないというものがある。そこで命令が下された。
Bさんにとあるパスワード"123"をCさんにバレないように伝えよ
さて、この状況であなたはどうするだろうか。パソコン同士がインターネット上で秘密を伝えるとはこういうことである。
もしあなたとBさんのみが昔からの幼馴染で、Bさんの小学校時代の出席番号が23番だったとする。その場合あなたは「Bさんの小学校の出席番号に100を足したやつ!」といえば済む話である。これはあなたとBさんに共通の秘密があるからCさんにはわからないように隠し事を伝えることができたのだ。
まずこの部屋にいる3人(あなた、Bさん、Cさん)にそれぞれの秘密の色を割り当てる。今回は(赤色、黄色、青色)だとする。そしてあなたとBさんで共通の秘密を持とうとすることを考える。
まずあなたは部屋の真ん中に茶色を用意する。この茶色を自分の所に持ってきてこっそり自分の色(赤色)を混ぜて、また部屋の真ん中に置く。あなたはBさんにも茶色とあなたの持つ色(黄色)を混ぜてと呼びかける。
そしてあなたとBさんはその混ぜ合わせた色を交換し、そこに自分の秘密色を混ぜる。すると、あなたとBさんは(赤色+茶色+黄色)という秘密色を共有することとなる。Cさんは部屋の真ん中にある(茶色+?)しか確認できない。
このプロセスを経てあなたとBさんは秘密を共有することができる。この共通の秘密を使って隠し事をすることは先述の出席番号のようにすることで可能となる。
実際のDiffie-Hellmann鍵交換プロトコルではこの秘密色などがとてつもなく大きな数字となっているため、誰にも特定することができない。離散対数などの数学を用いている。
誰もが傍聴できる場所においてコソコソ話をするということは一見不可能に思えるが、この発想がそれを可能にしたと考えるととても感動する。身近に使っているパソコンの裏でこのようなプロトコルが回っていると考えるとすごい。