PKI/Cryptography

DH ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€

JayKim๐Ÿ™‚ 2024. 6. 28. 17:36

์ด๊ธ€์€ ChatGPT ๋ฌธ์˜ ๋‚ด์šฉ์— ์ผ๋ถ€ ์ˆ˜์ • ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋””ํ”ผ-ํ—ฌ๋งŒ(Diffie-Hellman) ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‘ ํŒŒํ‹ฐ๊ฐ€ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ์ฑ„๋„์„ ํ†ตํ•ด ๋น„๋ฐ€ ํ‚ค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์•”ํ˜ธํ•™์  ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํ‚ค ๊ตํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•œ ์ข…๋ฅ˜๋กœ, ์ฃผ๋กœ ๊ณต๊ฐœํ‚ค ์•”ํ˜ธ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Whitfield Diffie์™€ Martin Hellman์— ์˜ํ•ด 1976๋…„์— ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ๊ฐœ๋… ๋ฐ ์›๋ฆฌ

  1. ์ˆ˜ํ•™์  ๊ธฐ์ดˆ:
    • ๋””ํ”ผ-ํ—ฌ๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด์‚ฐ ๋กœ๊ทธ ๋ฌธ์ œ์˜ ์–ด๋ ค์›€์— ๊ธฐ๋ฐ˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํฐ ์†Œ์ˆ˜ p์™€ ์›์‹œ๊ทผ g๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ,
      $$ g^a \, mod \, p $$
      ๊ฐ’์„ ์•„๋Š” ๊ฒƒ์ด a๋ฅผ ์ฐพ๋Š” ๊ฒƒ๋ณด๋‹ค ๊ณ„์‚ฐ์ ์œผ๋กœ ํ›จ์”ฌ ์‰ฝ๋‹ค๋Š” ์ ์„ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค.
  2. ์ž‘๋™ ์›๋ฆฌ:
    • ๋‘ ํŒŒํ‹ฐ A์™€ B๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. A์™€ B๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ํ†ตํ•ด ๋น„๋ฐ€ ํ‚ค๋ฅผ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค:
      1. ๊ณต๊ฐœ ํŒŒ๋ผ๋ฏธํ„ฐ ์„ ํƒ: p (ํฐ ์†Œ์ˆ˜)์™€ g (์›์‹œ๊ทผ)๋ฅผ ๊ณต๊ฐœ์ ์œผ๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      2. ๊ฐœ์ธ ํ‚ค ์„ ํƒ: A์™€ B๋Š” ๊ฐ๊ฐ ๋น„๋ฐ€ ๊ฐœ์ธ ํ‚ค a์™€ b๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
      3. ๊ณต๊ฐœ ํ‚ค ๊ณ„์‚ฐ:
        • A๋Š”
          $$ g^a \, mod \,  p $$
          ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.
        • B๋Š”
          $$ g^b \, mod \, p $$
          ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.
      4. ๊ณต์œ  ๋น„๋ฐ€ ํ‚ค ๊ณ„์‚ฐ:
        • A๋Š”
          $$ (g^a \, mod \, p)^a $$
          ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
        • B๋Š”
          $$ (g^b \, mod \, p)^b $$
          ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
      • ๋‘ ๊ณ„์‚ฐ์€ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ด ๊ฐ’์ด ๋‘ ํŒŒํ‹ฐ๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๋น„๋ฐ€ ํ‚ค๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋””ํ”ผ-ํ—ฌ๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋‹จ๊ณ„

  1. ๊ณต๊ฐœ ํŒŒ๋ผ๋ฏธํ„ฐ: p์™€ g ์„ ํƒ
    • p๋Š” ํฐ ์†Œ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • g๋Š” p์— ๋Œ€ํ•œ ์›์‹œ๊ทผ์ž…๋‹ˆ๋‹ค.
  2. ๊ฐœ์ธ ํ‚ค ์ƒ์„ฑ:
    • A๋Š” ๊ฐœ์ธ ํ‚ค a๋ฅผ ๋น„๋ฐ€๋ฆฌ์— ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
    • B๋Š” ๊ฐœ์ธ ํ‚ค b๋ฅผ ๋น„๋ฐ€๋ฆฌ์— ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  3. ๊ณต๊ฐœ ํ‚ค ๊ตํ™˜:
    • A๋Š” ๊ณต๊ฐœ ํ‚ค
      $$ A = g^a \, mod \,  p $$
      ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  B์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
    • B๋Š” ๊ณต๊ฐœ ํ‚ค
      $$ B = g^b \, mod \,  p $$
      ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  A์—๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  4. ๊ณต์œ  ๋น„๋ฐ€ ํ‚ค ๊ณ„์‚ฐ:
    • A๋Š”
      $$ (B^a \, mod \, p) = (g^b \, mod \,  p)^a = g^{ab} \, mod \,  p $$
      ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
    • B๋Š”
      $$ (A^b \, mod \,  p) = (g^a \, mod \,  p)^b = g^{ab} \, mod \,  p $$
      ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฒฐ๊ณผ์ ์œผ๋กœ, A์™€ B๋Š” ๋™์ผํ•œ ๊ณต์œ  ๋น„๋ฐ€ ํ‚ค
      $$ K=g^{ab} \, mod \,  p $$
      ๋ฅผ ์–ป๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์žฅ์ 

  1. ๋ณด์•ˆ์„ฑ: ๋””ํ”ผ-ํ—ฌ๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ด์‚ฐ ๋กœ๊ทธ ๋ฌธ์ œ์˜ ๊ณ„์‚ฐ์  ์–ด๋ ค์›€์— ๊ธฐ๋ฐ˜ํ•˜๋ฏ€๋กœ, ์ถฉ๋ถ„ํžˆ ํฐ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์•ˆ์ „ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋น„๋Œ€์นญ์  ์ ‘๊ทผ: ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‘ ํŒŒํ‹ฐ๊ฐ€ ์„œ๋กœ์˜ ๊ฐœ์ธ ํ‚ค๋ฅผ ์•Œ ํ•„์š” ์—†์ด ์•ˆ์ „ํ•˜๊ฒŒ ๋น„๋ฐ€ ํ‚ค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

๋‹จ์ 

  1. ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ(MITM): ๊ธฐ๋ณธ ๋””ํ”ผ-ํ—ฌ๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ธ์ฆ ์ ˆ์ฐจ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€์ ์ธ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ธด ํ‚ค ๊ธธ์ด: ์ถฉ๋ถ„ํ•œ ๋ณด์•ˆ์„ ์œ„ํ•ด์„œ๋Š” ๊ธด ํ‚ค ๊ธธ์ด๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์ด๋Š” ๊ณ„์‚ฐ ๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

์‘์šฉ

  • SSL/TLS: ์›น ๋ธŒ๋ผ์šฐ์ €์™€ ์„œ๋ฒ„ ๊ฐ„์˜ ์•ˆ์ „ํ•œ ํ†ต์‹ ์„ ์œ„ํ•ด ๋””ํ”ผ-ํ—ฌ๋งŒ ํ‚ค ๊ตํ™˜์ด ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • VPN: ๊ฐ€์ƒ ์‚ฌ์„ค๋ง(VPN)์—์„œ ๋‘ ์ง€์  ๊ฐ„์˜ ์•ˆ์ „ํ•œ ํ‚ค ๊ตํ™˜์„ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • ๋ฉ”์‹œ์ง€ ์•”ํ˜ธํ™”: PGP์™€ ๊ฐ™์€ ์‹œ์Šคํ…œ์—์„œ ๋””ํ”ผ-ํ—ฌ๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์•”ํ˜ธํ™”ํ•˜๊ณ  ํ‚ค๋ฅผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋””ํ”ผ-ํ—ฌ๋งŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํ˜„๋Œ€ ์•”ํ˜ธํ•™์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ๊ณผ ์‹œ์Šคํ…œ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.