Hardware Security Module(HSM) 서비스는 Thales Luna HSM을 기반으로 합니다. Luna HSM Firmware 7.9.0부터 NIST 표준 양자내성암호(PQC) 알고리즘이 어플라이언스 펌웨어에 내장되었으며, 이후 펌웨어/클라이언트 버전에서 상태 유지형 해시 기반 서명(HSS/LMS)까지 지원 범위가 확장되었습니다.
이 문서는 Hardware Security Module에서 사용 가능한 PQC 관련 기능을 한눈에 정리하고, 목적에 맞는 상세 가이드(Java 예제, C++ 예제)로 안내하는 개요 문서입니다.
지원 환경
지원 환경을 설명합니다.
지원 버전
Hardware Security Module 서비스는 2026년 7월 3일 기준 펌웨어 버전 7.9.3을 제공합니다.
| 구성 요소 | 버전 | 비고 |
|---|---|---|
| HSM 클라이언트(Luna Client) | 10.9.3 | Luna Client 설치 가이드 |
| JDK (Java 예제 사용 시) | OpenJDK 또는 Oracle JDK 24 이상 (LTS는 25 이상) | Luna HSM Client 10.9.1 Customer Release Notes에 명시된 지원 버전 |
PQC 기능
Hardware Security Module 서비스에서 사용 가능한 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 Firmware 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++ 예제를 참조해 주십시오.
가이드 선택
사용하려는 알고리즘과 언어에 따라 아래 가이드를 참조해 주십시오.
| 알고리즘/기능 | Java | C++ |
|---|---|---|
| ML-KEM (키 캡슐화) | Java 예제 | C++ 예제 |
| ML-DSA (전자서명) | Java 예제 | C++ 예제 |
| HSS/LMS (상태 유지형 전자서명) | 미지원 | C++ 예제 |
HSS/LMS는 Java Provider로 노출되지 않아 PKCS#11(Cryptoki) C++ 예제로만 제공됩니다.