노트북 19 — ML-KEM 파라미터와 estimator#
마무리 장입니다. \(n \le 15\)에서는 우리 primal 공격이 수 초 안에 성공하는 모습을 보았습니다. ML-KEM-512의 유효 격자 차원은 약 \(800\)입니다. 이번 노트북은 커뮤니티 표준 도구인 lattice estimator를 이용해 그 간극이 어떻게 완벽한 안전으로 이어지는지 설명합니다.
ML-KEM의 수치는 어디서 왔는가#
ML-KEM-512 파라미터 (FIPS 203):
\(n = 256\) (다항식 환 차원)
\(k = 2\) (module rank)
\(q = 3329\)
\(\eta_1 = 3, \eta_2 = 2\) (CBD 노이즈 파라미터)
Primal 공격 격자의 차원은 대략 \(n \cdot k + m = 256 \cdot 2 + 256 = 768\) 정도입니다. 이 위에서 \(\beta\)를 충분히 크게 하여 충분히 짧은 벡터를 보는 BKZ를 돌리는 것이 위협 모델입니다.
Lattice estimator#
Albrecht, Player, Scott(2015, 2024년까지 확장)는 Python 도구 — lattice-estimator — 를 만들었습니다. 주어진 LWE/MLWE instance에 대해 알려진 모든 공격(primal, dual, hybrid, BKW 및 변형)의 예상 비용을 계산합니다. NIST는 이 도구를 사용해 ML-KEM의 파라미터를 확정했습니다.
프로젝트에서 공개한 수치로부터 가져온 ML-KEM-512 예시 출력:
공격 |
\(\beta\) |
Log cost |
|---|---|---|
primal |
400 |
143 |
dual |
388 |
143 |
hybrid |
411 |
141 |
Log cost 143은 대략 \(2^{143}\) 연산을 의미합니다 — AES-143을 무차별 대입으로 깨는 것에 해당합니다. ML-KEM-1024의 수치는 약 \(2^{272}\)입니다.
우리 장난감 수치 vs 현실#
Instance |
격자 차원 |
사용한 \(\beta\) |
Python 시간 |
Log cost (estimator) |
|---|---|---|---|---|
우리의 장난감 LWE, \(n = 10\) |
31 |
4 |
약 3 s |
(임계값 이하) |
우리의 장난감 LWE, \(n = 15\) |
46 |
4 |
약 10 s |
약 30 |
우리의 장난감 LWE, \(n = 25\) |
76 |
약 10 (순수 Python으로는 비현실적) |
— |
약 55 |
ML-KEM-512 |
약 768 |
400 |
— |
143 |
ML-KEM-768 |
약 1152 |
623 |
— |
207 |
ML-KEM-1024 |
약 1536 |
832 |
— |
272 |
“수 초면 가능”에서 “우주의 열사망 시점에도 불가능”으로의 도약은 \(\beta\)를 따라 매끄럽게 일어나지만, 체감상으로는 하나의 벽입니다. 이는 Part 4의 Shor 분석이 넘지 못한 그 벽과 같은 벽입니다 — 고전이든 양자든, 오늘날 두 경우 모두 ML-KEM 파라미터는 안전합니다.
이 수치를 믿는 이유#
Estimator는 2024년 기준 공개적으로 알려진 모든 공격을 반영합니다. 최근의 양자 sieve 속도 개선 포함.
NIST 표준화 과정은 외부 암호해독을 초청했습니다. 후보 축소가 두 라운드 진행되었고(Rainbow, SIKE 해독 포함), 이 과정에서 “안전”이 무엇인지에 대한 기준이 자리 잡았습니다.
143-bit의 안전 여유는 NIST의 “category 1” 임계값(대체로 AES-128 보안에 해당) 이상입니다.
헤징: 그럼에도 우리는 ML-KEM을 X25519와의 하이브리드로 사용합니다. 내일 누군가 더 나은 격자 공격을 발견해도, Shor가 도착할 때까지 고전 쪽 절반이 공유 비밀을 계속 보호합니다.
이것이 어떻게 연결되는가#
Part 1–4는 scheme을 만들고 긍정 사례를 따라갔습니다: ML-KEM은 이렇게 동작합니다.
Part 5는 공격자의 관점을 따라갔습니다: 우리라면 이렇게 공격할 것이고, 작은 파라미터에서는 여기까지 갑니다.
이 둘의 결합 — “우리는 만들었고, 우리는 공격했고, 우리는 벽이 어디 있는지 안다” — 이 바로 어떤 암호 시스템에 대한 운영상의 신뢰가 어떤 모습인지 보여줍니다. 몇 년 뒤면 모든 TLS handshake가 이 수학을 수행하게 됩니다. 이제 당신은 그 내부에서 무슨 일이 벌어지는지 압니다.
더 읽을거리#
lattice-estimator (Albrecht et al.): malb/lattice-estimator — 임의의 LWE/MLWE instance에 대한 비용 계산 도구.
NIST IR 8413 — ML-KEM 표준화 보고서, 부록 A가 파라미터 선택을 다룹니다.
Albrecht, Player, Scott. On the Concrete Hardness of Learning with Errors, JoMC 2015.
Chen & Nguyen. BKZ 2.0: Better Lattice Security Estimates, ASIACRYPT 2011.
Peikert. A Decade of Lattice Cryptography (2016) — survey.
Kannan. Improved Algorithms for Integer Programming and Related Lattice Problems, STOC 1983 — 원래의 embedding 논문.
19개의 노트북을 끝까지 읽어 주셔서 감사합니다.