KOKA773 October 2026 MSPM0G3519 , MSPM0G3519-Q1 , MSPM33C321A , MSPM33C321A-Q1
보안 부팅 구현에서는 일반적으로 먼저 SHA-256 또는 SHA-384와 같은 보안 해시 함수를 사용하여 애플리케이션 소프트웨어 및 펌웨어 이미지의 해시값을 계산하고, 이를 통해 고정 크기의 메시지 대푯값을 생성한 다음 ECDSA를 사용하여 서명하고 검증합니다. ML-DSA는 이러한 '사전 해싱' 단계를 없앱니다. 실제로 ML-DSA 설계자들은 이 체계를 사용하는 사용자가 디지털 서명을 생성할 때 메시지의 전체 내용을 서명 알고리즘에 직접 입력하는 것을 선호합니다.
FIPS PUB 204에서는 이 프로세스를 "순수" 모드라고 합니다. FIPS PUB 204에서는 HashML-DSA라는 사전 해싱 모드도 정의하고 있습니다. 이 모드에서는 서명 생성 연산에 사용된 해시 함수에 관한 정보를 포함하여 해당 해시 함수를 서명에 바인딩합니다.
FIPS 204 외에도 세 번째 옵션을 사용할 수 있습니다. 이는 FIPS 204의 사전 해싱 모드인 HashML-DSA를 사용하는 대신, 메시지를 사전에 해싱한 다음 해당 해시값을 ML-DSA에 직접 전달한 메시지처럼 취급하여 순수 모드의 ML-DSA로 서명하는 것입니다. 이 방식에서는 해시 함수가 서명에 바인딩되지 않지만, 현재 ECDSA를 SHA와 함께 사용하는 방식과 더 유사합니다.
ML-DSA는 디지털 서명을 생성하고 검증할 때 내부적으로 Keccak 함수를 사용합니다. Keccak은 SHA-3 함수와 SHA 및 Keccak(Shake) 확장 가능 출력 함수 내부에서 사용되는 핵심 함수입니다. ML-DSA는 메시지의 보안 해시 값 생성과 검증 과정에서의 공개 키 결정적 확장 등 다양한 용도로 Keccak을 사용합니다.
이는 리소스가 제한된 시스템에서 중요한 의미를 갖습니다. ML-DSA를 포함하면 Keccak도 함께 포함되므로 동일한 코드 공간 내에서 보안 해시 함수를 제공합니다. 따라서 ML-DSA의 순수 모드를 사용하면 SHA-384 또는 SHA-512와 같은 추가 해시 함수를 저장하기 위해 비휘발성의 코드 메모리 공간을 추가로 할당할 필요가 없습니다. 또한 Keccak은 SHA-3를 애플리케이션의 다른 용도로 사용할 수 있는 범용 해시 함수로 제공할 수 있습니다.
현재 CNSA 2.0을 준수하는 시스템에서는 승인된 보안 해시 함수(SHA-384 또는 SHA-512)를 사용하여 메시지를 사전에 해싱할 수 있지만, FIPS PUB 204에 명시된 ML-DSA의 사전 해싱 모드(HashML-DSA)는 사용할 수 없습니다. 대신 FIPS PUB 204의 순수 모드가 기본으로 사용됩니다.