たまにはセキュリティの話でも。
DHE鍵交換の仕組みの式を解説してみる
サーバーは任意の(g,p)を選択する。この時pは大きな素数であることが望ましい
作成したgとpをクライアントへ送信する(これは非暗号通信なので盗聴される可能性がある)
クライアント、サーバーは任意の数字 a , b を決定する。この数字はお互いに知り得ない情報である。
サーバーがa、クライアントがbを用いて以下の値を計算する(nがa、bに相当)
計算したAとBを送受信する(これも盗聴される可能性がある)
受信したAとBに対して、以下の計算を行う
このとき、 と は同じ値になるので、これを暗号キーとして用いる
同じ値になる理由についてもっと詳しく説明する
多項式の性質として、以下が成り立つ場合は
次の式が成り立つ。
二項定理で分解していけば、最後の 以外はpの次数が1以上なのでmodでは消せるためである。
とすると、となり、
となるので、同じ値になるわけである。
gとpとAとBは盗聴されてしまうかもしれないけれど、そこからaとbを計算することが難しいので、
成り立っている暗号方式である。例えばある数Xを7で割った余りが3だったとわかっていても、Xは3,10,17,24,..... と無限に可能性があるためです。