디피-헬만 키 교환 정리, 작은 숫자로 직접 계산해 보고 중간자 공격에 약한 이유까지

처음 만난 두 사람이 모두가 듣고 있는 자리에서 대화하면서도 둘만 아는 비밀 키를 만들 수 있을까요. 디피-헬만 키 교환이 바로 그 방법입니다. 1976년 Diffie와 Hellman이 발표한 공개키 암호의 출발점이고, 오늘날 TLS, IPsec(IKE), SSH의 키 합의에 쓰입니다. 정보보안기사 필기·실기 모두에서 계산 문제와 취약점 서술로 나옵니다.

디피-헬만은 공개된 값만 주고받아 같은 비밀 키를 만드는 키 합의 방식

정의: 공개된 큰 소수 p와 생성원 g를 정해 두고, 각자 비밀값을 골라 g의 거듭제곱을 p로 나눈 나머지만 교환한 뒤, 상대 값에 자기 비밀값을 지수로 적용해 같은 공유 비밀을 얻는 키 합의(Key Agreement) 프로토콜입니다.

  • 핵심 키워드: 이산 로그 문제, 키 합의, 모듈러 거듭제곱, 중간자 공격, DHE·ECDHE, 전방 비밀성
  • 주의: 데이터를 암호화하는 알고리즘이 아니라 대칭키를 만들어 내는 절차입니다. 실제 데이터 암호화는 합의한 키로 AES 등이 맡습니다.

p=23, g=5로 직접 계산해 보면

디피-헬만 키 교환 계산 예시
Alice와 Bob은 8과 19만 공개적으로 주고받고도 같은 값 2를 얻습니다.
  1. 공개 값: p = 23, g = 5
  2. Alice는 비밀값 a = 6을 골라 A = 5^6 mod 23 = 8을 보낸다.
  3. Bob은 비밀값 b = 15를 골라 B = 5^15 mod 23 = 19를 보낸다.
  4. Alice: K = 19^6 mod 23 = 2, Bob: K = 8^15 mod 23 = 2. 둘 다 g^(ab) mod p이므로 같다.

위 값은 코드로 검산했습니다. 도청자는 p, g, 8, 19를 알지만 8에서 a=6을 거꾸로 구하려면 이산 로그 문제를 풀어야 합니다. 예시처럼 작은 수는 쉽게 풀리지만, 실제로 쓰는 2048비트 이상의 소수에서는 현실적으로 불가능하다고 봅니다.

안전성의 근거와 가장 큰 약점

구분 내용
안전성 근거 이산 로그 문제(DLP)와 g^a, g^b로부터 g^ab를 구하기 어렵다는 계산 디피-헬만 가정
가장 큰 약점 상대가 누구인지 확인하는 인증이 없어 중간자 공격(MITM)에 취약
기타 위험 너무 작은 p 사용, 검증되지 않은 파라미터, 구현상 부채널 공격

중간자 공격은 이렇게 성립한다

공격자 Mallory가 중간에서 Alice에게는 Bob인 척, Bob에게는 Alice인 척 자기 공개값을 보냅니다. 그러면 Alice-Mallory, Mallory-Bob 두 개의 키가 따로 생기고, Mallory는 오가는 내용을 복호화해 읽거나 바꾼 뒤 다시 암호화해 전달할 수 있습니다. 양쪽 모두 정상 통신이라고 믿게 됩니다.

실제 프로토콜은 인증과 일회성 키로 보완한다

대응 방법 효과
인증된 DH 공개값에 전자서명, 인증서(PKI)로 상대 확인 중간자 공격 차단
DHE / ECDHE 세션마다 비밀값을 새로 생성(Ephemeral) 전방 비밀성(PFS): 장기 키가 유출돼도 과거 세션 보호
ECDH 타원곡선 위에서 같은 원리 적용 짧은 키로 같은 수준 보안, 연산 효율

TLS 1.3은 정적 RSA 키 교환을 없애고 (EC)DHE 기반 키 합의만 남겨 전방 비밀성을 기본으로 제공합니다.

답안에서 놓치기 쉬운 포인트

  • RSA는 암호화·서명이 가능하지만 DH는 키 합의 전용이라는 차이를 분명히 쓰세요.
  • 중간자 공격 대응으로 암호 강도를 올리는 것은 답이 아닙니다. 핵심은 인증입니다.
  • 양자 컴퓨터가 실용화되면 이산 로그 기반 방식이 위협받기 때문에 양자 내성 암호(PQC) 키 합의로의 전환이 논의된다는 점을 덧붙이면 깊이가 생깁니다.

시험 직전 한 줄 요약

디피-헬만은 g^a mod p, g^b mod p만 교환해 g^ab mod p를 공유하는 키 합의로 이산 로그 문제에 안전성을 두며, 인증이 없어 중간자 공격에 약하므로 서명·인증서와 DHE·ECDHE로 보완합니다.

학습용 정리이며 실제 시험 문항과 다를 수 있습니다. 출제 기준은 한국인터넷진흥원(KISA) 공지를 확인하세요. 그림은 이해를 돕기 위한 개념도와 예시이며, 설정 예시는 운영 환경에 그대로 적용하기 전에 검토가 필요합니다.

Leave a Comment