087. 3DES (Triple DES)

⚠️ 이 문서는 기존 DES 암호의 '키 길이 부족'이라는 치명적 약점을 극복하기 위해, 완전히 새로운 암호를 발명하는 대신 기존 DES 칩을 세 번 연달아 돌려 방어력을 뻥튀기시켰던 과도기적 암호 표준인 3DES를 다룹니다.

핵심 인사이트 (3줄 요약)

  1. 본질: 3DES(Triple DES)는 평문을 암호화할 때 **'키1로 암호화 $\rightarrow$ 키2로 복호화 $\rightarrow$ 키3으로 암호화' (EDE 방식)**라는 3단계 파이스텔 구조 반복을 통해 기존 56비트 DES 키를 최대 168비트까지 논리적으로 확장한 대칭키 암호다.
  2. 가치: 1999년 DES가 해킹당하며 폐기 선고를 받았을 때, 전 세계 금융권이 당장 새로운 칩(AES)으로 교체할 수 없는 현실적 한계를 구원했다. 기존 DES 하드웨어를 그대로 재활용하면서 보안성을 즉각적으로 높여준 위대한 '땜질' 처방이었다.
  3. 한계: 암호화, 복호화를 3번이나 꼬아서 돌리기 때문에 처리 속도가 DES보다 3배나 처참하게 느려지는 치명적 단점이 있었으며, 중간자 공격(Meet-in-the-Middle) 수학 이론에 의해 168비트가 아닌 112비트의 실효 방어력만 갖는다는 사실이 밝혀져 AES 등장 이후 역사 속으로 사라졌다.

Ⅰ. 개요 및 탄생 배경 (Context & Necessity)

1998~1999년, EFF(전자프론티어재단)가 만든 해킹 머신 'Deep Crack'이 단 하루 만에 DES 암호를 박살 냈다. 56비트라는 암호 키 공간이 너무 좁아 0000...부터 9999...까지 전부 찍어보는 전수 조사(Brute Force) 공격을 버티지 못한 것이다.

차세대 표준인 AES 공모전이 한창 진행 중이었지만, 은행의 ATM 기계나 신용카드 단말기(POS)들은 "내일부터 당장 다른 암호를 쓰세요"라고 말한다고 바뀔 수 있는 물건이 아니었다. 소프트웨어나 하드웨어 칩을 통째로 갈아 끼워야 했기 때문이다.

이때 IBM이 낸 기발한 아이디어가 **"기존에 기계 안에 박혀 있는 DES 칩을 버리지 말고, 코인(데이터)을 3번 연속으로 통과시키게 배선만 살짝 바꾸자!"**였다. 이것이 3DES(Triple DES, 또는 TDEA)의 탄생이다.

📢 섹션 요약 비유: 낡은 자물쇠(DES) 하나가 도둑에게 너무 쉽게 따이자, 당장 최신 자물쇠(AES)를 살 돈과 시간이 없어서 낡은 자물쇠 3개를 연달아 줄줄이 채워버린(3DES) 응급처치 작전입니다.


Ⅱ. 3DES의 작동 원리: 왜 E-E-E 가 아니라 E-D-E 인가?

3DES는 이름 그대로 DES 연산을 3번 반복한다. 하지만 단순히 암호화를 3번(Encrypt - Encrypt - Encrypt) 하지 않고, 암호화 - 복호화 - 암호화 (Encrypt - Decrypt - Encrypt, E-D-E) 순서를 채택했다.

E-D-E 작동 메커니즘

  • 1단계 (Encrypt): 평문을 **키1(Key 1)**을 써서 DES 암호화 믹서기에 돌린다. (결과: 1차 쓰레기 문자)
  • 2단계 (Decrypt): 1차 쓰레기 문자를 **키2(Key 2)**를 써서 DES 복호화 믹서기에 돌린다. (※ 키가 틀리므로 복호화가 안 되고 데이터가 한 번 더 엉망으로 꼬임)
  • 3단계 (Encrypt): 2차 쓰레기 문자를 **키3(Key 3)**을 써서 다시 DES 암호화 믹서기에 돌린다. (결과: 최종 3DES 암호문)

왜 굳이 중간에 D(복호화)를 넣었을까? (호환성의 마법)

이것은 기존 DES 시스템과의 하위 호환성(Backward Compatibility)을 유지하기 위한 천재적인 꼼수다. 만약 키1, 키2, 키3을 **전부 똑같은 키(예: 1111)**로 설정하면 어떻게 될까?

  1. 평문 $\rightarrow$ 암호화(1111) $\rightarrow$ 암호문
  2. 암호문 $\rightarrow$ 복호화(1111) $\rightarrow$ 다시 평문 복구!
  3. 평문 $\rightarrow$ 암호화(1111) $\rightarrow$ 최종 암호문 결과적으로, 구형 DES 칩을 쓰는 시스템과 통신할 때 3DES 기계에 "키 3개를 똑같은 걸로 맞춰라"라고 지시하면, 완벽하게 구형 DES와 똑같이 동작하게 된다.
┌────────────────────────────────────────────────────────────────────────────────────────────┐
│           3DES (E-D-E) 메커니즘 및 하위 호환성 시각화 도해도                               │
├────────────────────────────────────────────────────────────────────────────────────────────┤
│                                                                                            │
│ [ 3DES의 철벽 방어 모드 (서로 다른 3개의 키 사용) ]                                        │
│             [ K1 (56bit) ]   [ K2 (56bit) ]   [ K3 (56bit) ]                               │
│                   │                │                │                                      │
│                   ▼                ▼                ▼                                      │
│ [ 평 문 ] ──▶ (암호화 E) ──▶ (복호화 D) ──▶ (암호화 E) ──▶ [암호문]                        │
│                                                                                            │
│ [ 구형 DES와의 호환 모드 (3개 키를 모두 똑같게 세팅) ]                                     │
│             [ K1 (1111) ]    [ K2 (1111) ]    [ K3 (1111) ]                                │
│                   │                │                │                                      │
│                   ▼                ▼                ▼                                      │
│ [ 평 문 ] ──▶ (암호화 E) ──▶ (복호화 D) ──▶ (암호화 E) ──▶ [암호문]                        │
│            └───────── 상쇄되어 날아감 ─────────┘                                           │
│                   └─────────────────────────────────▶ 구형 DES와 완벽히 똑같은 결과 도출!  │
└────────────────────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] E-D-E 구조는 암호학적으로 E-E-E 구조와 섞이는 강도(혼돈과 확산)는 똑같다. 하지만 중간에 뺄셈(D)을 넣어줌으로써, 키를 똑같게 세팅했을 때 1단계와 2단계가 서로 상쇄되어 날아가게(Cancel out) 만든다. 과거의 시스템을 한 번에 다 폐기할 수 없는 현실 IT 비즈니스에서 하위 호환성을 달성한 공학의 승리다.

  • 📢 섹션 요약 비유: 최신예 장갑차(3DES)를 만들었지만, 기름이 떨어졌을 땐 구형 지프차(DES) 부품과 기름을 그대로 호환해서 쓸 수 있도록 엔진 스위치를 똑같이 맞춰둔 것입니다.

Ⅲ. 3DES의 치명적 약점 (중간자 공격과 속도)

은행들은 3DES를 도입하고 안심했다. 56비트 키를 3개 썼으니 키 길이가 $56 \times 3 = 168$비트가 되어 AES-128보다 더 안전하다고 믿은 것이다. 하지만 수학자들의 분석 결과는 달랐다.

  1. 중간에서 만나기 공격 (Meet-in-the-Middle Attack)

    • 1977년 디피(Diffie)와 헬만(Hellman)이 증명한 수학적 약점이다. (※ 네트워크 가로채기인 Man-in-the-Middle과 다름)
    • 해커가 메모리를 엄청나게 써서 1단계 암호화 결과 테이블과 3단계 복호화 결과 테이블을 동시에 만든 다음, 중간 지점(2단계)에서 충돌하는 값을 찾아버리는 꼼수다.
    • 이 꼼수 때문에 3DES의 168비트 키는 168비트의 방어력을 내지 못하고, 고작 112비트 수준의 실효 방어력으로 처참하게 깎여버렸다. ($2^{168}$ 이 아닌 $2^{112}$ 로 추락)
  2. 최악의 연산 속도

    • 기존 파이스텔 구조인 DES 자체도 AES의 SPN 구조보다 느렸다. 그런데 그걸 3번이나 꼬아야 하니 CPU가 남아나질 않았다. 스마트폰 시대가 도래하자 배터리 광탈의 주범이 되었다.

Ⅳ. 결론

"훌륭한 응급처치였지만, 완치약은 될 수 없었다." 3DES는 2000년대 초반, IT 인프라 전체가 붕괴될 뻔한 무차별 대입 공격의 폭풍 앞에서 AES가 상용화되기 전까지 골든타임을 벌어준 훌륭한 구원 투수였다. 하지만 느려터진 속도와 112비트라는 애매한 실효 방어력 때문에 점차 외면받았고, 미국 NIST는 결국 **2023년 12월 31일 자로 3DES의 모든 사용을 공식적으로 완전 금지(Retire)**시키며 46년간 이어온 파이스텔 영웅의 시대를 공식 마감했다.


📌 관련 개념 맵

  • 전신: DES (Data Encryption Standard)
  • 후계자 (대체자): AES (Advanced Encryption Standard)
  • 내부 구조: 파이스텔(Feistel) 구조 3회 반복 (E-D-E)
  • 이론적 취약점: 중간에서 만나기 공격 (Meet-in-the-Middle Attack)

👶 어린이를 위한 3줄 비유 설명

  1. 비밀번호 4자리짜리 낡은 자물쇠(DES)가 도둑에게 너무 쉽게 뚫려버렸어요.
  2. 당장 크고 좋은 자물쇠를 만들 시간이 없어서, 사람들은 낡은 자물쇠 3개를 끈에 연달아 주렁주렁 매달아버렸죠(3DES).
  3. 도둑이 풀려면 시간이 3배 더 걸리니까 당분간은 안전했지만, 우리가 문을 열고 닫을 때도 열쇠를 3번이나 돌려야 해서 너무 느리고 불편해 결국 버리게 되었답니다!