Benchmarking Post-Quantum Cryptography on Resource-Constrained IoT Devices: ML-KEM and ML-DSA on ARM Cortex-M0+
이 논문은 ARM Cortex-M0+ 기반의 초저전력 IoT 장치에서 NIST 표준화 된 ML-KEM 과 ML-DSA 의 성능을 최초로 체계적으로 벤치마크하여, 기존 ECDH 대비 ML-KEM 의 뛰어난 효율성과 ML-DSA 의 부하 변동 특성을 실증하고 오픈소스 벤치마크 도구를 공개했습니다.
지금 우리가 쓰는 암호 (RSA, ECC) 는 미래에 등장할 **'양자 컴퓨터'**라는 슈퍼 해커에게 뚫릴 것입니다.
문제: 우리 집 스마트 미터기, 의료 기기, 공장 로봇 같은 작은 기기들은 10~20 년을 쓰는데, 지금 보내는 데이터는 미래에 해킹당할 수 있습니다.
해결책: 미국 표준 기관 (NIST) 이 새로운 보안 기술 (ML-KEM, ML-DSA) 을 만들었습니다. 하지만 이 기술이 아주 작고 비싼 칩 (Cortex-M0+) 이 달린 기기에서도 돌아갈지, 전기는 얼마나 먹을지 아무도 몰랐습니다.
2. 실험 설정: 어떤 기기에서 테스트했나요?
연구진은 **라즈베리 파이 Pico (RP2040)**라는 보드를 사용했습니다.
비유: 이 기기는 **"가장 작고 단순한 32 비트 엔진"**을 달고 있습니다. 고급 스포츠카 (Cortex-M4) 에는 있는 '64 비트 곱셈기'나 '동시 작업 기능'이 없습니다. 대신 아주 기본적이고 저렴한 엔진입니다.
목표: 이 초소형 엔진으로 새로운 보안 기술을 얼마나 빠르게, 얼마나 적은 전기로 구동할 수 있는지 측정했습니다.
3. 주요 발견: 결과는 어땠나요?
A. 잠금 장치 (ML-KEM): "놀라울 정도로 빠르고 가볍다!"
결과: 새로운 보안 기술 (ML-KEM-512) 로 키를 주고받는 데 **35.7 밀리초 (0.03 초)**밖에 걸리지 않았습니다.
비유: 기존 기술 (ECDH) 이 17 초 걸렸다면, 새 기술은 17 배나 더 빠릅니다.
전력: 배터리로 작동하는 기기에게 중요한 건 전력입니다. 새 기술은 기존 기술보다 전기를 94%나 덜 먹습니다. 마치 형광등 대신 LED 전구를 쓴 것과 같습니다.
결론: 아주 작은 기기에서도 새로운 잠금 장치를 아주 가볍게 사용할 수 있습니다.
B. 서명 도구 (ML-DSA): "속도가 들쑥날쑥하다"
결과: 문서를 인증하는 기능은 가능하지만, 시간이 일정하지 않습니다.
비유: 서명할 때 "한 번에 성공할지, 다시 시도할지"를 주사위처럼 던져 결정합니다.
운이 좋으면 70ms 에 끝납니다.
운이 나쁘면 1 초 이상 걸리기도 합니다.
문제: 공장 로봇처럼 "정확히 0.1 초 안에" 반응해야 하는 곳에서는 이 '들쑥날쑥함'이 위험할 수 있습니다.
해결: 중요한 순간에는 미리 서명을 해두거나, 실패하면 다시 시도하는 시스템을 만들어야 합니다.
C. 메모리 (RAM): "옷장 크기가 충분할까?"
결과: 기기 내부의 메모리 (옷장) 에 새 보안 기술을 넣을 공간이 충분했습니다.
비유: 가장 무거운 버전 (ML-DSA-87) 을 입히려면 옷장의 45% 를 차지하지만, 그래도 RP2040 이라는 옷장에는 들어갑니다.
주의: 아주 작은 기기 (메모리 100KB 미만) 에는 이 기술이 너무 무거울 수 있습니다.
4. 핵심 비교: 작은 엔진 vs 큰 엔진
연구진은 이 작은 엔진 (Cortex-M0+) 이 큰 엔진 (Cortex-M4) 보다 얼마나 느린지 비교했습니다.
결과: 큰 엔진이 1 초 걸린다면, 작은 엔진은 1.8~1.9 초 정도 걸렸습니다.
의미: 보통 작은 엔진이 3~7 배나 느릴 거라고 예상했는데, 의외로 성능 차이가 크지 않았습니다. 이는 RP2040 칩이 곱셈을 빠르게 처리하는 특별한 기능을 가지고 있기 때문입니다.
5. 결론: 무엇을 의미하나요?
이 논문은 **"미래의 해커 (양자 컴퓨터) 를 막을 새로운 보안 기술을, 아주 작고 저렴한 IoT 기기에도 심을 수 있다"**는 것을 증명했습니다.
ML-KEM (키 교환): 아주 빠르고 전기도 적게 먹어서 IoT 기기에 바로 적용 가능.
ML-DSA (서명): 가능하지만, 시간이 일정하지 않아 시스템 설계 시 주의가 필요.
메모리: 대부분의 기기에서 공간이 충분함.
한 줄 요약:
"우리의 작은 전자기기들도 미래의 슈퍼 해커를 막을 새로운 보안 기술을, 놀라울 정도로 가볍고 빠르게 받아들일 준비가 되었습니다!"
이 연구는 모든 코드와 데이터를 공개하여, 전 세계 개발자들이 이 결과를 바탕으로 더 나은 보안 시스템을 만들 수 있도록 돕고 있습니다.
논문 요약: ARM Cortex-M0+ 기반 NIST 표준화 양자내성 암호 (ML-KEM, ML-DSA) 벤치마킹
1. 연구 배경 및 문제 제기 (Problem)
양자 컴퓨팅 위협: 현재 사용 중인 RSA 및 ECC 와 같은 고전 공개키 암호는 향후 양자 컴퓨터에 의해 해독될 위험이 있으며, 특히 10~20 년의 수명을 가진 IoT 기기들은 "지금 수집하여 나중에 해독 (Harvest Now, Decrypt Later)" 공격에 노출되어 있습니다.
NIST 표준화: 2024 년 8 월 NIST 는 격자 기반 암호인 ML-KEM(FIPS 203) 과 ML-DSA(FIPS 204) 를 표준으로 발표했습니다.
연구 공백: 기존 양자내성 암호 (PQC) 벤치마킹은 주로 ARM Cortex-M4(pqm4 프레임워크) 를 대상으로 이루어졌습니다. 그러나 가장 제약이 심한 32 비트 프로세서인 Cortex-M0+(스마트 미터, 의료 센서 등 저가형 Class-1 IoT 기기용) 에서는 최종 표준화된 알고리즘에 대한 체계적인 벤치마킹 자료가 전무했습니다.
기술적 한계: Cortex-M0+ 는 64 비트 승산 명령어 (UMULL/SMULL) 부재, DSP/SIMD 확장 없음, 제한된 레지스터 파일 등의 이유로 PQC 연산에 불리하다고 간주되어 왔습니다.
2. 연구 방법론 (Methodology)
하드웨어 플랫폼: Raspberry Pi Pico (RP2040) 사용. 듀얼 코어 ARM Cortex-M0+ (133 MHz), 264 KB SRAM, 2 MB QSPI 플래시. RP2040 은 단일 사이클 32 비트 승산기를 지원하여 PQC 실행 가능성을 높였습니다.
소프트웨어 스택: NIST 표준에 부합하는 PQClean의 참조 C 구현체 (Reference C) 사용. 어셈블리 최적화는 배제하고 순수 C 코드로 벤치마킹하여 기본 성능 기준을 설정했습니다.
측정 항목:
성능: 키 생성, 캡슐화/서명, 복호화/검증의 실행 시간 (ms).
변동성: ML-DSA 의 거절 샘플링 (Rejection Sampling) 으로 인한 서명 시간의 변동성을 분석 (평균, 표준편차, 변동계수, 95/99 백분위수).
메모리: 스택 사용량 (Stack Painting 기법) 및 플래시 크기 측정.
에너지: RP2040 데이터시트 기반 전력 모델 (79.2 mW) 을 적용하여 에너지 소비량 (mJ) 추정.
비교 대상: 기존 암호 (RSA-2048, ECDSA/ECDH P-256) 및 기존 Cortex-M4(pqm4) 벤치마크 결과와 비교.
3. 주요 기여 (Key Contributions)
최초 벤치마크: Cortex-M0+ 에서 NIST 최종 표준 (FIPS 203/204) 인 ML-KEM 과 ML-DSA 의 모든 보안 레벨 (512/768/1024 및 44/65/87) 에 대한 격리된 알고리즘 수준의 성능, 메모리, 에너지 지표 제공.
변동성 분석: ML-DSA 서명 시 거절 샘플링으로 인한 지연 시간의 높은 변동성을 정량화 (예: ML-DSA-87 의 99 백분위수 지연 시간 1,125 ms).
메모리 호환성 맵핑: 264 KB SRAM 환경에서 모든 알고리즘 변종의 피크 스택 및 플래시 사용량을 측정하여 Class-1 IoT 기기에서의 실행 가능성 판단.
오픈 소스 공개: 재현성을 위한 전체 코드, 데이터, 스크립트를 오픈 소스로 공개.
4. 주요 결과 (Key Results)
가. 성능 (Timing)
ML-KEM (키 교환): ML-KEM-512 는 전체 키 교환 (키 생성 + 캡슐화 + 복호화) 을 35.7 ms에 완료. 이는 동일한 하드웨어에서 ECDH P-256(617 ms) 보다 약 17 배 빠릅니다.
ML-DSA (서명): 서명 시간은 거절 샘플링으로 인해 변동성이 큽니다.
ML-DSA-44: 평균 158.9 ms (변동계수 67.5%, 99 백분위수 489.9 ms).
ML-DSA-87: 평균 355.2 ms (변동계수 65.6%, 99 백분위수 1,125 ms).
이는 실시간 IoT 애플리케이션에 치명적인 지연을 초래할 수 있음을 시사합니다.
아키텍처 비교: Cortex-M0+ 는 64 비트 승산 및 SIMD 가 없음에도 불구하고, 참조 C 코드로 실행 시 Cortex-M4(pqm4) 대비 1.8~1.9 배의 성능 저하만 발생했습니다. (기존에 예상되던 3~7 배보다 훨씬 낮음).
나. 에너지 효율 (Energy)
ML-KEM-512 키 교환 시 에너지 소비는 2.83 mJ로, ECDH P-256(48.9 mJ) 대비 94% 감소 (약 17 배 효율 향상) 했습니다.
ML-DSA 서명 사이클도 ECDSA 대비 에너지 효율이 우수합니다.
다. 메모리 사용량 (Memory)
ML-KEM: 모든 보안 레벨이 264 KB SRAM 내에서 실행 가능. ML-KEM-1024 의 최대 스택 사용량은 약 20 KB.
ML-DSA: 메모리 요구량이 훨씬 큽니다. ML-DSA-87 서명 시 119.6 KB의 스택을 필요로 하여 RP2040 전체 SRAM 의 약 45% 를 차지합니다. 이는 Class-1 IoT 기기에서 고보안 레벨 ML-DSA 사용 시 주의가 필요함을 의미합니다.
5. 의의 및 결론 (Significance & Conclusion)
IoT 보안의 실현 가능성: 저가형 ($5 미만) 인 Cortex-M0+ 기반 IoT 기기에서도 격자 기반 양자내성 암호 (PQC) 가 실제로 실행 가능함을 입증했습니다. 이는 "지금 수집하여 나중에 해독" 위협에 대응할 수 있는 실질적인 해결책을 제시합니다.
ML-KEM 의 적합성: ML-KEM 은 속도와 메모리 측면에서 Class-1 IoT 키 교환에 매우 적합합니다.
ML-DSA 의 주의점: ML-DSA 는 메모리 사용량이 크고 서명 시간의 변동성이 커서, 실시간 제약이 있는 환경에서는 사전 계산 (Pre-computation) 이나 타임아웃/재시도 전략이 필요합니다.
향후 과제: 어셈블리 최적화 (NTT 커널), SLH-DSA(FIPS 205) 벤치마킹, 사이드채널 공격 저항성 평가, 프로토콜 수준 (TLS/DTLS) 통합 테스트 등이 필요합니다.
이 논문은 제한된 리소스를 가진 가장 작은 32 비트 마이크로컨트롤러에서도 NIST 표준 PQC 알고리즘이 작동할 수 있음을 체계적으로 증명하여, IoT 보안의 미래 표준화에 중요한 기초 데이터를 제공합니다.