Diffie-Hellman 키 교환: 공개 채널에서 공유 비밀을 만드는 원리

Diffie-Hellman 키 교환의 이산 로그 기반 원리와 계산 과정, ECDH·PFS 활용, 중간자 공격 및 구현 시 검증 항목을 정리한다.

2026-08-14 · 최초 발행 2025-06-15

공개 채널에서 공유 비밀을 만드는 방식

Diffie-Hellman은 1976년 Whitfield Diffie와 Martin Hellman이 공개한 최초의 공개키 암호화 알고리즘이다. 안전하지 않은 통신 채널에서도 암호화 키를 교환할 수 있게 하며, 공개키 암호학의 기초를 세운 방식으로 평가된다.

단독으로는 중간자(man-in-the-middle) 공격을 막지 못한다. 통신 상대를 확인하는 인증 메커니즘을 함께 적용해야 한다. TLS/SSL, SSH, IPsec 같은 현대 보안 프로토콜은 이 키 교환 방식을 기반 기술로 사용한다.

이산 로그 문제에 기대는 계산 구조

이 방식의 안전성은 이산 로그 문제(Discrete Logarithm Problem)를 푸는 일이 계산적으로 어렵다는 점에 있다. 모듈러 지수 연산은 수행하기 쉽지만, 그 결과에서 지수 값을 역으로 찾는 일은 현재 기술로 계산이 매우 어렵다.

기본 관계식은 다음과 같다.

(g^a mod p)^b mod p = (g^b mod p)^a mod p = g^(ab) mod p

여기서 g는 원시근(primitive root) 또는 생성자(generator)이고, p는 큰 소수(prime number)다. ab는 각각의 사용자가 비밀로 보관하는 값이다.

g와 p를 공유한 뒤 각자 계산하는 과정

먼저 양측은 공개 파라미터를 정한다. p는 대형 소수로, 일반적으로 2048비트 이상을 사용한다. g는 1과 p-1 사이의 정수이며 보통 2 또는 5를 사용한다.

Alice는 비밀키 a를 무작위로 고르고, Bob은 비밀키 b를 무작위로 선택한다. Alice는 A = g^a mod p를 계산해 Bob에게 보내며, Bob은 B = g^b mod p를 계산해 Alice에게 전달한다.

그다음 Alice는 s = B^a mod p = (g^b)^a mod p = g^(ab) mod p를 계산한다. Bob은 s = A^b mod p = (g^a)^b mod p = g^(ab) mod p를 계산한다. 두 계산 결과는 같은 공유 비밀키 s가 된다.

BobAliceBobAlice공개 파라미터: g, p양측 모두 동일한 공유 비밀키 s = g^(ab) mod p 보유비밀키 a 선택비밀키 b 선택A = g^a mod p 계산B = g^b mod p 계산A 전송B 전송s = B^a mod p 계산s = A^b mod p 계산

작은 값으로 확인하는 공유 비밀 계산

실제 구현에서는 훨씬 큰 숫자를 사용하지만, 계산 구조는 작은 값으로도 확인할 수 있다. 공개 파라미터를 p = 23, g = 5로 두고, Alice의 비밀키를 a = 6, Bob의 비밀키를 b = 15로 정한다.

Alice의 공개키는 A = 5^6 mod 23 = 15,625 mod 23 = 8이다. Bob의 공개키는 B = 5^15 mod 23 = 30,517,578,125 mod 23 = 19가 된다.

Alice는 Bob의 공개키로 s = 19^6 mod 23 = 47,045,881 mod 23 = 2를 계산한다. Bob은 Alice의 공개키로 s = 8^15 mod 23 = 35,184,372,088,832 mod 23 = 2를 계산한다. 결과적으로 양측은 동일한 공유 비밀키 2를 얻는다.

세션 키와 통신 보안에 연결되는 지점

Diffie-Hellman은 TLS/SSL의 웹 보안, SSH 원격 접속 보안, IPsec의 네트워크 계층 보안에 사용된다. Signal Protocol을 통해 WhatsApp, Signal 등의 메신저 암호화에도 활용된다.

세션 키 교환과 키 갱신(rekeying) 메커니즘도 이 방식의 주요 활용 영역이다. Perfect Forward Secrecy(PFS)에서는 세션마다 새로운 키를 생성해 이전 통신의 보안성을 유지한다. 키가 노출되더라도 과거 통신 내용은 안전하게 보호하는 구조다.

ECDH와 인증을 결합하는 선택지

ElGamal 암호 시스템은 Diffie-Hellman을 기반으로 한 완전한 공개키 암호화 시스템이며, 전자 서명과 메시지 암호화에 활용된다.

타원곡선 Diffie-Hellman(ECDH)은 타원곡선 암호학을 적용한 변형이다. 더 짧은 키 길이로 동등한 보안 수준을 제공하고, 계산 효율성을 높이며 리소스 사용을 줄인다.

Authenticated Diffie-Hellman은 중간자 공격을 막기 위해 인증 메커니즘을 더한 형태다. 디지털 서명이나 인증서를 사용해 통신 참여자를 인증한다.

신뢰할 수 없는 교환 경로에서 생기는 위험

중간자(Man-in-the-Middle) 공격에서는 공격자가 양측 통신 사이에 개입해 데이터를 가로챈다. 인증서나 디지털 서명 같은 인증 메커니즘으로 대응한다.

소수 p의 선택도 보안성에 영향을 준다. 특정 소수 값은 알고리즘의 보안성을 약화시킬 수 있으므로 안전한 소수를 선택하고 파라미터를 정기적으로 갱신해야 한다.

양자 컴퓨팅도 장기적인 위협이다. Shor 알고리즘을 사용하는 양자 컴퓨터는 이산 로그 문제를 효율적으로 해결할 수 있다. 이에 대응하기 위한 포스트 양자 암호학(Post-Quantum Cryptography)의 연구와 적용이 진행되고 있다.

구현에서 확인할 키와 입력값

키 길이는 최소 2048비트 이상이 권장된다. ECDH에서는 256비트 이상의 곡선을 사용하는 것이 권장된다.

비밀키 생성에는 암호학적으로 안전한 난수 생성기(CSPRNG)가 필수다. 약한 난수는 예측 가능한 키 생성을 만들고 보안 취약점으로 이어질 수 있다.

수신한 공개키 값은 유효한 범위인 2 ≤ A, B ≤ p-2에 있는지 확인해야 한다. 모든 입력값을 엄격하게 검증하고, 공유 비밀키의 저장과 관리 및 적절한 키 갱신 주기도 함께 설계해야 한다.

공개키 암호학의 출발점으로 남은 의미

Diffie-Hellman은 1976년 발표 당시 암호학 분야에 혁명적 변화를 일으켰다. 대칭키 교환 문제를 해결하며 인터넷 보안의 기반을 마련했고, 공개키 암호학의 선구자적 역할을 했다.

Diffie와 Hellman은 이 업적으로 2015년 튜링상을 수상했다. 이 알고리즘은 현대 정보보안의 핵심 개념으로 50년 가까이 사용되고 있다. 양자 컴퓨팅의 발전은 새로운 과제를 제시하지만, 변형과 개선, 포스트 양자 시대의 대체 키 교환 알고리즘 연구는 계속될 전망이다.

Diffie-Hellman키 교환공개키 암호이산 로그정보보안