PromleeBlog

posting thumbnail
Diffie–Hellman鍵交換

📅

鍵交換 (Key Exchange) 🔗

通信用の共通鍵を、安全に交換する方法です。
AliceとBobは、
公開チャネル
上でデータをやり取りして、共有する秘密鍵を作ります。
二人以外の第三者は、公開チャネルのデータを傍受しても、その鍵を知ることはできません。

Diffie–Hellman鍵交換 (Diffie-Hellman Key Exchange) 🔗

公開鍵方式の一つで、秘密鍵を安全に交換する方法です。
事前に共有するパラメーターは、素数ppと原始根ggを持つ有限群Zp∗\mathbb{Z}_p^*です。
AliceとBobは、次のように動作します。
KAB=Ba=(gb)a=gab=(ga)b=Ab=KBAK_{AB} = B^a = (g^b)^a = g^{ab} = (g^a)^b = A^b = K_{BA}

例:Diffie–Hellman鍵交換 🔗

p=31p = 31、g=3g = 3
鍵交換の結果

Diffie–Hellman鍵交換の安全性 (Security of Diffie-Hellman Key Exchange) 🔗

中間者攻撃
👨‍💻
計算Diffie–Hellman問題 (CDH, Computational Diffie-Hellman)

中間者攻撃のシナリオ (Man-in-the-Middle Attack Scenario) 🔗

  1. AliceとBobが鍵交換を行います。
  2. Eveは、AliceとBobの間にいます。
  3. Aliceへgeg^eを送ります。
  4. Bobへgfg^fを送ります。
  5. AliceとBobはgefg^{ef}を計算します。
  6. Eveはgefg^{ef}を計算し、二人の通信を傍受します。

中間者攻撃の説明と防止 (Man-in-the-Middle Attack Description & Prevention) 🔗

中間者攻撃の説明 🔗

  1. Eveが秘密鍵eeを生成し、E=gemod  pE = g^e \mod pを計算します。
  2. AliceとBobは、それぞれAAとBBを互いに送ります。
  3. Eveがこれを傍受し、二人ともにEEを送ります。
  4. AliceとBobはEEを受信し、
    KAE=Ea=geamod  pK_{AE} = E^a = g^{ea} \mod pとKBE=Eb=gebmod  pK_{BE} = E^b = g^{eb} \mod pを計算します。

中間者攻撃の防止 🔗

まとめ:中間者攻撃 🔗

    Diffie–Hellman鍵交換 | PromleeBlog