Diffie-Hellman鍵交換。
AliceとBobは、Diffie-Hellman鍵交換を使って秘密を共有します。 まず素数から始め、秘密鍵を選び、公開鍵を生成して共有し、最後に共有の秘密鍵を生成します。
テストプログラムが素数pとgを用意します。
Aliceは、1より大きくpより小さい秘密鍵aを選びます。
Bobも同じようにして、秘密鍵bを選びます。
Aliceは公開鍵Aを計算します。
A = gᵃ mod p
同じpとgを使って、Bobも自分の秘密鍵bから同様に公開鍵Bを計算します。
AliceとBobは公開鍵を交換します。
Aliceは秘密鍵sを計算します。
s = Bᵃ mod p
Bobは次のように計算します。
s = Aᵇ mod p
計算の結果は同じになります!
これでAliceとBobは、秘密のsを共有できます。