143. Diffie-Hellman Gruppen (DH 그룹과 파라미터)
⚠️ 이 문서는 디피-헬만(DH) 키 교환을 할 때 필수적인 도화지 역할을 하는 기초 소수($p$)와 발전기($g$)를 서버 관리자가 직접 구하는 멍청한 짓(취약점 유발)을 막기 위해, 인터넷 공학 태스크 포스(IETF)가 미리 가장 튼튼하고 거대한 수학적 벽돌들을 세트로 만들어 묶어둔 'RFC 3526 DH 그룹' 규격을 다룹니다.
핵심 인사이트 (3줄 요약)
- 본질: DH 그룹(Diffie-Hellman Gruppen)은 모듈로 거듭제곱($g^x \pmod p$)을 안전하게 굴리기 위해 반드시 필요한 두 개의 기반 상수, 엄청나게 큰 안전 소수(Safe Prime, $p$)와 그에 맞는 발전기(Generator, $g$)를 크기별(비트 수)로 세트로 묶어놓은 공식 카탈로그다.
- 가치: 아무 소수나 대충 $p$로 쓰면 해커의 이산 로그 문제(DLP) 공격 알고리즘(예: 폴라드 로, GNFS)에 1초 만에 뚫려버린다. IETF가 수학적으로 결함이 없는 소수들을 1536비트부터 8192비트까지 미리 다 깎아놔서(RFC 3526), 개발자는 번호(예: Group 14)만 고르면 100% 안전한 기초 공사가 끝난다.
- 한계/융합: 이 고정된 소수 그룹의 최대 치명타는 "전 세계가 똑같은 소수 $p$를 쓰다 보니, 국가 기관(NSA)이 이 $p$ 하나만 10년 동안 죽어라 분석(Logjam 공격)하면 전 세계 수백만 대의 서버를 한 방에 다 털어버릴 수 있다"는 공포였다. 이 때문에 타원곡선(ECDH)으로의 세대교체가 가속화되었다.
Ⅰ. 개요 및 왜 '그룹'을 만들어 나눠주는가? (Context & Necessity)
우리가 [128번 문서]에서 앨리스와 밥이 물감 섞기(DH)를 할 때, 제일 먼저 인터넷 게시판에서 **"우리 기초 소수 $p=23$, 밑 $g=5$ 로 합의하자!"**고 떠든다고 했다. 현실 세계에서 이 $p$는 23 같은 귀여운 숫자가 아니라 2048비트가 넘는(600자리 십진수) 거대한 숫자여야 한다.
초창기 서버 관리자들은 1시간 동안 컴퓨터를 돌려 자기만의 소수 $p$를 직접 생성해 냈다.
그런데 문제가 터졌다. 수학적으로 소수 중에는 '튼튼한 소수'가 있고, 겉보기엔 소수인데 툭 치면 박살 나는 '유리 턱 소수(취약 소수)'가 있었다. 관리자들이 p-1이 작은 소수들의 곱으로 쪼개지는 불량 소수를 $p$로 세팅하는 순간, 해커가 이산 로그 문제(DLP)를 순식간에 역산해 비밀키를 털어버렸다.
IETF(인터넷 표준화 기구)는 폭발했다. "서버 관리자들아, 제발 직접 소수를 만들지 마라! 우리가 슈퍼컴퓨터로 전수 검사해서 우주 최강의 강철 소수(Safe Prime) 세트를 1번부터 18번까지 딱딱 만들어 놨어. (RFC 3526 문서). 넌 그냥 옵션 창에 'Group 14 쓸게요'라고 번호만 적어!" 이것이 바로 모듈러 덧셈/곱셈군을 묶어둔 **DH 그룹(MODP Group)**의 탄생이다.
📢 섹션 요약 비유: 각자 자기 집 대문을 자기가 철을 녹여 만들다 보니 불순물이 섞여 도둑이 망치로 치면 문이 부서졌습니다. DH 그룹은 국가 기관이 티타늄을 녹여서 "두께 10cm짜리 문(Group 14)", "두께 20cm짜리 문(Group 15)" 등 기성품 10가지를 완벽하게 찍어내서 나눠주는 안전한 기성품 카탈로그입니다.
Ⅱ. RFC 3526의 등급별 그룹 해부 (Size matters)
과거 IPsec VPN이나 SSH 서버를 설정하다 보면 dh-group 2 나 dh-group 14 같은 메뉴를 숱하게 보았을 것이다. 숫자가 올라갈수록 소수 $p$의 크기(장갑차의 두께)가 무식하게 커진다.
| 그룹 번호 (RFC 3526) | 소수 p의 크기 (Key Size) | 해커 방어력 (수명 판정) | 적용 철학 |
|---|---|---|---|
| Group 1 | 768 비트 | 폐기 (털림) | 1990년대 초창기 규격. 스마트폰 1대로도 털리는 종이장. |
| Group 2 | 1024 비트 | 폐기 권고 (Logjam 공격의 타겟) | 2000년대 표준. 국가 기관(NSA) 급 슈퍼컴퓨터로 해독 가능함이 폭로됨. |
| Group 14 | 2048 비트 | 최소 안전선 (현재 마지노선) | 2020년대 현재, 은행 및 일반 기업이 DH를 쓸 때 반드시 골라야 하는 최소한의 두께. |
| Group 15 / 16 | 3072 / 4096 비트 | 철벽 (Top Secret 급) | 군사망 등 장기 비밀 보장이 필요한 곳. 단, 접속할 때 속도가 미친 듯이 느려짐(CPU 과부하). |
| Group 17 / 18 | 6144 / 8192 비트 | 오버 스펙 (우주 멸망 방어) | 너무 뚱뚱해서 덧셈 한 번에 서버가 헐떡거림. 굳이 안 씀. |
┌───────────────────────────────────────────────────────────────────────────────┐
│ DH 그룹(Group) 선택에 따른 보안성과 서버 성능의 저울질 시각화 │
├───────────────────────────────────────────────────────────────────────────────┤
│ │
│ [ 멍청한 관리자: 성능을 위해 Group 2 (1024비트) 선택 ] │
│ [서버] ──── (1024비트 통신, 0.01초 만에 쾌속 접속!) ───▶ [사용자] │
│ ☠️ 해커의 폭소: "하하! NSA가 1024비트는 1년 전에 뚫어놨지롱!" │
│ -> 속도는 빠르지만 패킷 100% 털림. 파국. │
│ │
│ [ 엘리트 관리자: 보안을 위해 Group 14 (2048비트) 선택 ] │
│ [서버] ──── (2048비트 통신, 접속에 0.5초 렉 걸림 💦) ──▶ [사용자] │
│ 🛡️ 해커의 절망: "제길, 2048비트는 뚫으려면 태양계가 폭발할 때까지 │
│ 계산해야 하잖아!" -> 느리지만 데이터 100% 완벽 보호! │
│ │
│ ★ 딜레마: 숫자가 커질수록(Group 숫자가 높을수록) 서버의 CPU는 곱셈 노가다에 │
│ 비명을 지르고 서버 비용(AWS 요금)이 폭발한다. 보안과 돈의 끔찍한 치킨게임! │
└───────────────────────────────────────────────────────────────────────────────┘
[다이어그램 해설] $p$의 크기가 $2^{2048}$ 로 커지면, 컴퓨터는 600자리 숫자를 600자리 횟수만큼 곱해야 한다. 이는 서버에 막대한 산술 오버헤드(Arithmetic Overhead)를 발생시킨다. 관리자는 해커에게 안 뚫리면서도 서버가 뻗지 않는 'Group 14' 언저리의 줄타기를 20년 동안 땀 흘리며 계속해 왔다.
- 📢 섹션 요약 비유: Group 2는 나무로 만든 금고입니다. 가벼워서 배달(접속)이 빠르지만 도둑이 도끼로 깨부숩니다. Group 14는 티타늄 금고입니다. 너무 무거워서 배달할 때 허리가 끊어지지만 도둑이 다이너마이트를 터뜨려도 절대 부서지지 않습니다.
Ⅲ. 전 세계적 대학살: Logjam 공격 (2015년)
"안전한 소수를 만들어서 전 세계에 똑같이 나눠준 것"은 훌륭한 아이디어 같았다. 하지만 2015년, 이 통일성이 암호학 역사상 가장 끔찍한 참사, 로그잼(Logjam) 공격을 불러왔다.
- 이론의 허점: 이산 대수 문제(DLP)를 푸는 알고리즘(GNFS)은 두 단계로 나뉜다. 1단계(사전 계산)는 거대한 소수 $p$ 하나를 놓고 미친 듯이 슈퍼컴퓨터를 1년 동안 돌려 분석표를 짜는 것이다. 2단계(실시간 해독)는 이 표를 이용해 앨리스와 밥의 통신을 1분 만에 해독하는 것이다.
- NSA의 충격적 행보: 전 세계 수백만 대의 VPN과 웹 서버가 귀찮아서 Group 2(1024비트의 똑같은 소수 $p$) 단 한 개만 썼다. 돈과 자원이 넘쳐나는 국가 기관(NSA)이 이 똑같은 $p$ 하나만 잡고 슈퍼컴퓨터를 1년 동안 돌려 '마스터 분석표'를 완성해 버렸다.
- 대재앙: 이제 NSA는 수백만 개의 웹사이트를 돌아다니며 해킹할 때, 1년 동안 돌릴 필요 없이 아까 만들어둔 '마스터 분석표'를 펼쳐놓고 1분 만에 전 세계의 디피-헬만(DH) 키 교환을 싸그리 해독해 버리는 신(God)의 권력을 쥐게 된 것이다. 단일 고장 점(Single Point of Failure)의 폭발이었다.
Ⅳ. 결론 및 타원곡선(ECC)으로의 엑소더스
"거대한 숫자의 딜레마와 단일 소수($p$)의 독재를 버려라." Logjam 사태 이후 암호학계는 기존의 모듈러 기반 DH 그룹(Group 1~18)에 완전히 정내미가 떨어졌다.
- 해결책으로 타원곡선을 쓴 ECDH로 미친 듯이 도망쳤다. 타원곡선은 256비트(P-256 커브)만 써도 1024비트의 무거움을 가볍게 압살하며, NSA의 1년짜리 마스터 분석표 꼼수(사전 계산 공격)가 수학적으로 기하학의 벽에 막혀 아예 통하지 않기 때문이다.
- 현재 TLS 1.3과 최신 IPsec VPN에서는 무겁고 뚱뚱한 RFC 3526의 모듈로 DH 그룹을 퇴출하거나 맨 뒷순위로 밀어냈으며, 오늘날 우리 핸드폰의 트래픽은 99.9% 안전하고 가벼운 타원곡선 맵 위에서 뛰놀고 있다.
📌 관련 개념 맵
- 전체 분류: Diffie-Hellman (DH) 키 교환 파라미터 규격 (MODP, Modular Exponential)
- 표준화 문서: RFC 3526 (More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange)
- 기반 수학: 소수 (Prime), 원시근 (Generator, 원시 원소)
- 몰락의 원인: Logjam Attack (1024비트 단일 소수에 대한 대규모 사전 계산 공격)
👶 어린이를 위한 3줄 비유 설명
- 자물쇠를 만들 때 쓰는 철판(소수 P)을 공장장들이 대충 철 쪼가리로 만들다 보니 도둑이 툭 치면 뚫리는 사고가 잦았어요.
- 그래서 경찰청에서 "앞으로 대충 만들지 말고, 우리가 10번, 14번, 15번이라고 번호를 매겨놓은 엄청 단단하고 두꺼운 '국가 표준 강철판(DH 그룹)'만 가져다 써라!"라고 명령했죠.
- 그런데 전 세계 사람들이 '10번 철판' 딱 하나만 너무 많이 쓰니까, 돈 많은 도둑(NSA)이 1년 동안 10번 철판의 설계도만 달달 외워서 전 세계의 자물쇠를 만능키처럼 다 따고 다니는 초대형 해킹 사고가 터졌답니다!