147. ML-DSA (구 CRYSTALS-Dilithium)

⚠️ 이 문서는 양자 컴퓨터가 도래하면 해커가 내 도장(서명)을 복제해 내 재산을 모두 털어갈 수 있는 RSA-PSS와 ECDSA 서명을 완전히 관 짝에 넣고, 앞으로 전 세계 웹사이트의 신분증(TLS 인증서)과 블록체인 지갑 서명을 책임지게 될 범용 양자 내성 전자서명 표준, ML-DSA(딜리슘)를 다룹니다.

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

  1. 본질: ML-DSA(Dilithium)는 KEM 표준인 Kyber와 똑같이 격자(Lattice) 수학인 Module-LWE 난제를 기반으로 하되, 'Fiat-Shamir with Aborts' 기법을 적용해 빚어낸 범용 디지털 서명(Digital Signature) 알고리즘이다.
  2. 가치: NIST 공모전에서 전자서명 분야 대상을 차지했다. 서명 속도가 어마어마하게 빨라서 웹 서버가 초당 수만 명의 접속자에게 인증서 도장을 찍어줄 때 서버 CPU가 전혀 버벅거리지 않는 압도적인 퍼포먼스(가성비)를 제공한다.
  3. 융합: 2024년 FIPS 204 표준으로 확정되며 이름이 Dilithium에서 **ML-DSA(Module-Lattice-based DSA)**로 변경되었으며, 향후 대한민국 공인인증서(공동인증서)와 글로벌 SSL/TLS 인증서의 90% 이상을 대체할 가장 절대적이고 대중적인 PQC 서명 모듈로 융합되고 있다.

Ⅰ. 개요 및 왜 '서명'이 더 급한가? (Context & Necessity)

양자 컴퓨터가 나오면 비밀키를 감싸서 보내는 KEM(키 교환)도 털리지만, 사실 더 심각하고 끔찍한 재앙은 '서명(Signature)'의 붕괴다.

  • KEM이 털린다 = 해커가 내 과거 카톡을 훔쳐봄 (심각하지만 견딜 만함)
  • 서명이 털린다 = 해커가 '네이버'와 '구글'의 진짜 인증서 도장을 위조해 완벽한 가짜 피싱 사이트를 만들거나, 내 비트코인 지갑의 서명을 위조해 100억을 자기 계좌로 쓱싹 이체해 버림 (신뢰 생태계의 완전한 멸망)

따라서 KEM(Kyber) 못지않게 서명 알고리즘도 부랴부랴 양자 내성으로 업그레이드해야 했다. 수많은 서명 알고리즘들이 난투극을 벌였지만, 암호화 툴인 Kyber와 같은 '격자(Lattice)' 수학을 사용하면서도 속도와 밸런스가 가장 뛰어난 **Dilithium(딜리슘)**이 압도적 1위로 왕좌를 차지했다.

📢 섹션 요약 비유: 서명이 무너진다는 것은 전 국민의 주민등록증과 은행 인감도장 제조법이 도둑에게 유출된 것과 같습니다. ML-DSA(딜리슘)는 양자 해커의 특수 엑스레이 스캐너로도 도장 안의 무늬를 절대 읽을 수 없는 최첨단 홀로그램 전자 인감도장입니다.


Ⅱ. ML-DSA의 핵심 메커니즘: 거절을 통한 철벽 방어

Dilithium은 Kyber와 친척이다. LWE(노이즈 섞인 다항식 행렬)라는 수학적 지뢰밭 위에서 뛰논다. 하지만 캡슐을 싸는 KEM과 달리, 도장을 찍는 서명(DSA)은 수학적 접근법이 좀 다르다.

Fiat-Shamir with Aborts (거절이 섞인 영지식 증명)

ML-DSA는 **'피아트-샤미르 변환'**이라는 증명법을 기반으로 도장을 찍는다.

  • 작동 원리: 서명자(서버)가 자기 개인키로 계산을 해서 도장을 꾹 찍어낸다. 그런데 이때 들어가는 난수(노이즈)의 값이 재수 없게 너무 크거나 작으면, 도장을 공개했을 때 수학자(해커)가 그 도장의 모양을 분석하여 원래 개인키의 파편을 유추해 낼(정보 유출) 위험이 아주 미세하게 존재한다.
  • Dilithium의 천재적 방어 (Aborts): 도장을 한 번 꾹 찍고 나서, 자체적으로 검사기를 돌려본다. "어? 이번에 찍힌 도장에 내 개인키 힌트가 살짝 묻어 나왔네?" 그러면 그 자리에서 도장을 찢어 쓰레기통에 버리고(Abort, 기각), 새로운 난수로 처음부터 다시 도장을 찍는다. 힌트가 1도 없는 완벽하게 둥글둥글한 도장이 나올 때까지 기계가 2번, 3번 알아서 기각하고 다시 찍기를 반복한다.
  • 효과: 해커가 아무리 수억 개의 서명 도장을 훔쳐서 분석해도, 개인키에 대한 힌트가 묻은 도장은 단 한 개도 밖으로 배출되지 않기 때문에 절대 역산할 수 없다.
┌──────────────────────────────────────────────────────────────────────────────┐
│           ML-DSA (Dilithium)의 안전한 도장 찍기(Aborts) 메커니즘 시각화      │
├──────────────────────────────────────────────────────────────────────────────┤
│                                                                              │
│ [ 👨 서버가 인증서 도장을 찍는 과정 ]                                        │
│                                                                              │
│  (1) 개인키 + 임의의 난수(노이즈)로 가봉 도장을 쾅! 찍음.                    │
│                                                                              │
│  (2) 🔍 자체 안전성 검사기 (Leakage Check):                                  │
│      "엇! 도장에 비밀번호 힌트가 미세하게 새어 나왔음!"                      │
│                                                                              │
│  (3) 🗑️ 찢어서 버림! (Abort) -> 해커에게 절대 안 보여줌.                     │
│                                                                              │
│  (4) 새로운 난수로 다시 도장을 쾅! 찍음.                                     │
│      "검사 통과! 힌트가 0%인 완벽히 안전한 도장 완성!"                       │
│                                                                              │
│  (5) 🚀 사용자에게 최종 서명 도장 전송                                       │
│                                                                              │
│ ★ 장점: 서명을 2~3번 다시 찍는 헛수고(Abort)를 해도, 격자 다항식 곱셈        │
│   속도가 무지막지하게 빠르기 때문에 RSA 서명 한 번 찍는 것보다 훨씬 빠르다!  │
└──────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] "재시험을 치르면 속도가 느리지 않나?"라는 의문이 든다. 하지만 ML-DSA의 핵심 엔진은 덧셈과 곱셈(격자 다항식 NTT 변환)뿐이라 CPU가 눈 감고도 0.0001초 만에 풀어버릴 수 있다. 도장 3번 찍고 버리기를 반복해도 구형 RSA 서명 1번보다 연산 시간이 압도적으로 짧다. 이 미친 스피드가 ML-DSA를 1등으로 만든 가장 결정적인 이유다.

  • 📢 섹션 요약 비유: 글씨를 쓸 때 무의식적인 필체가 남아서 도둑이 나를 알아볼까 봐 걱정입니다. 딜리슘 도장 기계는 도장을 찍어보고 내 평소 필체가 조금이라도 묻어나면 종이를 찢어버리고, 완벽하게 기계 폰트처럼 예쁘게 찍힐 때까지 1초에 3번씩 다시 찍어 완벽한 복사본만 밖으로 내보내는 철벽 비서입니다.

Ⅲ. 실무적 악몽: 터져나가는 인증서 크기

속도도 빠르고 방어력도 쩔어주지만, PQC 특유의 '거대한 용량(Fat Signature)' 병은 ML-DSA도 피하지 못했다. 기존 시스템과 크기를 비교해 보자.

알고리즘 (보안 강도 2)공개키 크기서명 크기 (도장 크기)평가
ECDSA / Ed2551932 바이트64 바이트코딱지만 함. 통신 대역폭 절약 최고.
RSA-2048256 바이트256 바이트그럭저럭 쓸 만함. 수십 년 씀.
ML-DSA-44 (딜리슘)1,312 바이트2,420 바이트과거 대비 서명 크기가 40배 폭증!!!
  • 인프라 파괴의 현장:
    • 당신이 네이버에 접속할 때, 네이버는 자기 인증서와 최상위 기관(루트) 인증서 등 도장 2~3개가 줄줄이 묶인 **'인증서 체인(Chain)'**을 보낸다.
    • 옛날엔 이 묶음이 1KB 수준이라 인터넷 패킷 한 번(MTU)에 쏙 들어갔다.
    • ML-DSA를 쓰면 도장 3개가 7.5KB가 넘어간다. 인터넷 패킷 하나를 넘치고도 남아 패킷이 5~6개로 쪼개져(Fragmentation) 날아간다.
    • 패킷이 쪼개지면? 중간에 하나라도 유실되면 접속이 끊기고, 브라우저가 조립하느라 버벅대며, 심지어 낡은 방화벽이나 라우터 기계들은 "이렇게 큰 패킷 덩어리가 날아오다니 공격이다!" 하고 다 버려버린다(Drop).

이 거대한 덩치 때문에, 은행과 웹 브라우저 제조사(구글, 애플)들은 시스템 소프트웨어 코드뿐만 아니라 앞단의 네트워크 로드 밸런서 스펙까지 갈아엎느라 피를 토하고 있다.


Ⅳ. 결론

"뚱뚱하지만 날쌘, 피할 수 없는 보안의 거인." ML-DSA(딜리슘)는 크기가 너무 커서 엔지니어들의 원성을 사고 있지만, 현존하는 모든 알고리즘 중 양자 컴퓨터의 칼날을 가장 든든하게 막아내면서도 서버 CPU를 혹사시키지 않는 유일한 현실적 대안이다. 당신이 몇 년 뒤 마주하게 될 모든 전 세계의 정부/기업 인증서와 블록체인 스마트 컨트랙트의 제일 밑바닥에는 필연적으로 이 우람한 격자 기반의 '거절하는 도장(Aborts)'이 자리 잡고 인터넷의 신뢰를 수호하게 될 것이다.


📌 관련 개념 맵

  • 전체 분류: PQC (Post-Quantum Cryptography) Digital Signature (전자 서명)
  • 공식 표준 명칭: ML-DSA (Module-Lattice-based DSA), FIPS 204
  • 핵심 수학 난제: Module-LWE (격자 기반)
  • 도태 예정 기술: RSA-PSS, ECDSA, Ed25519 (양자 공격에 무력화되는 구형 서명)

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

  1. 양자 컴퓨터 도둑이 기존의 작은 도장(ECDSA)들을 현미경으로 분석해서 1초 만에 100% 똑같은 위조 도장을 파내는 무서운 시대가 왔어요.
  2. 그래서 전 세계 천재들이 모여 '딜리슘'이라는 어마어마하게 크고 뚱뚱한 신형 전자 도장을 만들었죠.
  3. 이 도장은 찍을 때마다 기계가 스스로 "어? 도장 모양에 내 힌트가 묻었네?" 하면 찢어버리고 안전하게 찍힐 때까지 순식간에 다시 찍어서 내보내기 때문에, 도둑이 아무리 위조하려고 노려봐도 힌트를 1도 얻을 수 없는 철벽 도장이랍니다!