양자내성암호(PQC, Post-Quantum Cryptography)는 네이버 클라우드 플랫폼 Hardware Security Module(HSM) 서비스에서 NIST 표준 PQC 알고리즘을 사용하는 기능입니다.
이 문서는 Ncloud HSM 서비스에서 사용 가능한 PQC 관련 기능을 정리하고, 목적에 맞는 상세 가이드(Java 예제, C++ 예제)로 안내합니다.
참고
지원 환경
지원 환경을 설명합니다.
지원 버전
Ncloud HSM 서비스는 2026-07-03 기준 펌웨어 버전 7.9.3을 제공합니다.
| 구성 요소 | 버전 | 비고 |
|---|---|---|
| HSM 클라이언트(Luna Client) | 10.9.3 | LunaClient 설치 가이드 |
| JDK (Java 예제 사용 시) | OpenJDK 또는 Oracle JDK 24 LTS / 25 LTS 이상 | Luna HSM Client 10.9.1 Customer Release Notes에 명시된 지원 버전 |
PQC 기능
HSM 서비스에서 사용 가능한 PQC 관련 기능과 각각의 사용 방법은 다음과 같습니다.
| 알고리즘/기능 | 분류 | 용도 | 사용 방법 |
|---|---|---|---|
| ML-KEM (FIPS 203) | 키 캡슐화(KEM) | ML-KEM을 이용한 키 캡슐화·역캡슐화 mechanism(CKM_ML_KEM)이며, FIPS 203에 정의되어 있습니다. |
Java(LunaProvider) 코드 또는 C++(Cryptoki) 코드 — Java 예제, C++ 예제 |
| ML-DSA (FIPS 204) | 전자서명 | ML-DSA를 이용한 서명 생성·검증 mechanism(CKM_ML_DSA)이며, FIPS 204에 정의되어 있습니다. Luna HSM 펌웨어 7.9.0 이상에서 사용할 수 있습니다. |
Java(LunaProvider) 코드 또는 C++(Cryptoki) 코드 — Java 예제, C++ 예제 |
| HSS/LMS (NIST SP 800-208) | 전자서명(상태 유지형) | RFC 8554 및 NIST SP 800-208에 정의된 상태 유지형 해시 기반 서명 생성·검증 방식입니다. | C++(Cryptoki) 코드만 — Java Provider 미노출 — C++ 예제 |
주의
HSS/LMS는 상태를 유지하는(stateful) 서명 방식으로, 개인키가 남은 서명 가능 횟수를 내장하고 매 서명마다 소진됩니다. Thales 공식 문서에 따르면 HSS 개인키는 복제(clone)할 수 없어 백업/복원이 불가능하고 고가용성(HA) 그룹에도 포함시킬 수 없습니다. 백업 스크립트나 HA 파티션 구성에 HSS 키를 포함시키지 않도록 주의하십시오. 자세한 제약 사항은 C++ 예제 가이드를 참고하십시오.
가이드 선택
사용하려는 알고리즘과 언어에 따라 아래 가이드를 참조해 주십시오.
- ML-KEM 필요시 사용 중인 언어에 따라 Java 예제 가이드 또는 C++ 예제 가이드를 참조해 주십시오.
- ML-DSA 필요시 사용 중인 언어에 따라 Java 예제 가이드 또는 C++ 예제 가이드를 참조해 주십시오.
- HSS/LMS 필요시 C++ 예제 가이드를 참조해 주십시오. HSS/LMS는 Java Provider로 노출되지 않아 PKCS#11(Cryptoki) C++ 예제로만 제공됩니다.
다음 단계
- ML-KEM/ML-DSA를 Java로 사용하려면 Java 예제 가이드를 참조해 주십시오.
- ML-KEM/ML-DSA/HSS/LMS를 C++(PKCS#11/Cryptoki)로 사용하려면 C++ 예제 가이드를 참조해 주십시오.