처음 만난 두 사람이 모두가 듣고 있는 자리에서 대화하면서도 둘만 아는 비밀 키를 만들 수 있을까요. 디피-헬만 키 교환이 바로 그 방법입니다. 1976년 Diffie와 Hellman이 발표한 공개키 암호의 출발점이고, 오늘날 TLS, IPsec(IKE), SSH의 키 합의에 쓰입니다. 정보보안기사 필기·실기 모두에서 계산 문제와 취약점 서술로 나옵니다.
정의: 공개된 큰 소수 p와 생성원 g를 정해 두고, 각자 비밀값을 골라 g의 거듭제곱을 p로 나눈 나머지만 교환한 뒤, 상대 값에 자기 비밀값을 지수로 적용해 같은 공유 비밀을 얻는 키 합의(Key Agreement) 프로토콜입니다.
위 값은 코드로 검산했습니다. 도청자는 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 기반 키 합의만 남겨 전방 비밀성을 기본으로 제공합니다.
디피-헬만은 g^a mod p, g^b mod p만 교환해 g^ab mod p를 공유하는 키 합의로 이산 로그 문제에 안전성을 두며, 인증이 없어 중간자 공격에 약하므로 서명·인증서와 DHE·ECDHE로 보완합니다.
학습용 정리이며 실제 시험 문항과 다를 수 있습니다. 출제 기준은 한국인터넷진흥원(KISA) 공지를 확인하세요. 그림은 이해를 돕기 위한 개념도와 예시이며, 설정 예시는 운영 환경에 그대로 적용하기 전에 검토가 필요합니다.
블룸 필터(Bloom Filter)는 "이 값을 본 적이 있는가"라는 질문에 아주 적은 메모리로 답하는 확률적 자료구조다.…
정해진 무게만 담을 수 있는 가방에 가치가 가장 크도록 물건을 고르는 문제는 예산 배분, 서버…
서울 아파트값이 89주째 올랐다는 소식과 강남구·서초구가 11주째 내렸다는 소식이 같은 주에 나왔습니다. 모순처럼 보이지만 둘…
내비게이션이 가장 빠른 길을 찾고, 라우터가 패킷을 보낼 경로를 정할 때 바탕에 있는 생각은 같습니다.…
서버에 작업을 하나 더 얹었을 뿐인데 갑자기 전체가 느려지고, 정작 CPU 사용률은 바닥으로 떨어지는 경우가…