Diffie-Hellman 鍵交換
# 説明
共有鍵を作る為の操作である。共有鍵を作ることができれば共有鍵暗号を用いて通信できる。
- AliceとBobが巡回群 $G$ とその生成元 $g$ を共有する。
- AliceとBobはそれぞれ秘密鍵 $x_a, x_b$ を生成し、公開鍵 $y_a = g^{x_a}, y_b = g^{x_b}$ を公開する。
- AliceとBobは自分の秘密鍵と相手の公開鍵を掛けると $s = g^{x_ax_b} = y_b^{x_a} = y_a^{x_b}$ となり、$s$ はAliceとBobのみが知る共有鍵となる。
ECDH だと $s$ の $x$ 座標をハッシュ化したものを共有鍵として使う。