anothel의 지식 창고

공개 키 암호화의 핵심, Diffie-Hellman 키 교환 이해하기 본문

기술 노트/정보보안기사

공개 키 암호화의 핵심, Diffie-Hellman 키 교환 이해하기

anothel 2025. 3. 21. 13:16

1. 개요

Diffie-Hellman 키 교환 알고리즘은 공개된 네트워크에서 두 사용자가 안전하게 암호 키를 공유할 수 있도록 설계된 암호 기법이다. 1976년 Whitfield Diffie와 Martin Hellman이 제안한 이 알고리즘은 대칭키 암호화에서 핵심적인 역할을 하며, 비밀키를 직접 전달하지 않고도 안전한 키 교환을 가능하게 한다. 현재 TLS, SSH, IPsec 등 다양한 보안 프로토콜에서 필수적인 요소로 활용되고 있다.

2. Diffie-Hellman 키 교환 개념

Diffie-Hellman 알고리즘은 이산로그 문제의 계산적 난해성을 활용하여 보안성을 확보한다. 두 사용자가 각각의 비밀키를 사용하여 공유된 비밀 키를 생성하는 과정에서, 외부의 공격자가 해당 키를 유추하는 것은 현실적으로 불가능하다.

2.1 키 교환 절차

  1. 네트워크를 통해 공개할 큰 소수 pp를 선택한다.
  2. 원시근(primitive root) gg를 선택하고 공개한다.
  3. 각 사용자(A와 B)는 무작위로 비밀키(개인키) a,ba, b를 선택한다.
  4. 공개키를 계산하여 상대방과 교환한다:
    • A의 공개키: Apub=gamod  pA_{pub} = g^a \mod p
    • B의 공개키: Bpub=gbmod  pB_{pub} = g^b \mod p
  5. 공유된 비밀 키를 생성한다:
    • A: K=Bpubamod  pK = B_{pub}^a \mod p
    • B: K=Apubbmod  pK = A_{pub}^b \mod p

이 과정을 거치면 A와 B는 동일한 공유 비밀 키 KK를 생성하게 되며, 공격자가 이를 역산하는 것은 매우 어렵다.

3. 수학적 원리

Diffie-Hellman의 보안성은 이산로그 문제(DLP, Discrete Logarithm Problem)의 난해성에 기반한다. 주어진 g,p,gxmod  pg, p, g^x \mod p에서 xx 값을 찾는 것은 현실적으로 어려운 문제다.

예제

  • p=23p = 23, g=5g = 5 라고 가정하자.
  • A는 비밀키 a=6a = 6을 선택하고, 공개키 56mod  23=85^6 \mod 23 = 8을 전송한다.
  • B는 비밀키 b=15b = 15를 선택하고, 공개키 515mod  23=195^{15} \mod 23 = 19를 전송한다.
  • A는 196mod  23=219^6 \mod 23 = 2, B는 815mod  23=28^{15} \mod 23 = 2를 계산하여 동일한 공유 키를 확보한다.

공격자가 중간에서 gamod  pg^a \mod pgbmod  pg^b \mod p를 얻었다 하더라도, 이를 통해 aabb를 유추하는 것은 계산적으로 어렵다.

4. 공개키와 개인키

Diffie-Hellman 키 교환에서 개인키와 공개키의 역할은 다음과 같다:

  • 개인키(Private Key): 사용자가 비밀리에 보관하는 값.
  • 공개키(Public Key): 상대방과 교환하는 값.
  • 공유된 비밀 키(Shared Secret Key): 두 사용자가 동일하게 생성하는 값으로, 암호화 통신에 사용된다.

5. Diffie-Hellman의 응용 분야

Diffie-Hellman 알고리즘은 다음과 같은 보안 프로토콜에서 사용된다.

  • TLS/SSL: 웹 브라우저와 서버 간의 보안 통신.
  • SSH: 원격 서버 접속 시 안전한 세션 설정.
  • IPsec: VPN 및 네트워크 보안 프로토콜에서의 키 교환.
  • E2EE 메신저: Signal, WhatsApp 등 종단 간 암호화 기반 메신저.

6. 보안 취약점 및 대응책

6.1 중간자 공격(MITM)

공격자가 A와 B 사이에서 각각 독립적인 키 교환을 수행하면, 통신 내용을 가로챌 수 있다. 이를 방지하려면 디지털 서명 또는 PKI 기반 인증서를 사용하여 키 교환을 인증해야 한다.

6.2 로그잼(Logjam) 공격

작은 소수를 사용할 경우, 사전 계산된 값을 활용하여 공격할 수 있다. 이를 방지하려면 2048비트 이상의 큰 소수 사용고정된 소수 대신 랜덤 소수 사용을 고려해야 한다.

6.3 양자 컴퓨팅 위협

양자 컴퓨터가 발전하면 이산로그 문제를 빠르게 해결할 수 있을 가능성이 있다. 이를 대비하여 포스트 양자 암호(PQC) 방식이 연구되고 있다.

7. 결론

Diffie-Hellman 키 교환은 네트워크 보안에서 필수적인 기술로, 비밀 키를 안전하게 공유할 수 있도록 돕는다. 이산로그 문제를 기반으로 보안성이 보장되지만, 중간자 공격이나 로그잼 공격과 같은 위협이 존재하기 때문에 보완적인 인증 기법과 함께 사용해야 한다. 향후 양자 컴퓨팅 시대에는 새로운 보안 모델이 필요할 수도 있지만, 현재까지는 강력한 암호화 기법으로 자리 잡고 있다.

728x90