KOKA773 October   2026 MSPM0G3519 , MSPM0G3519-Q1 , MSPM33C321A , MSPM33C321A-Q1

 

  1.   1
  2.   개요
  3.   상표
  4. 1 소개
  5. 2 임베디드 시스템의 보안 목표
  6. 3 암호화 기본 요소
  7. 4 CRQC의 잠재적 영향
  8. 5 미래를 위한 새로운 알고리즘 및 표준
  9. 6 CNSA 규정 준수
  10. 7 대칭 암호화 및 해시 함수
  11. 8 PQC 디지털 서명: ML-DSA
  12. 9 하드웨어 가속이 필요한가?
  13. 10사전 해싱이 필요한가?
  14. 11NIST가 선정한 기타 PQC 디지털 서명 체계
  15. 12상태 저장형 디지털 서명 체계
  16. 13키 합의는 어떻게 되는가?
  17. 14미래 대비형 임베디드 시스템
  18. 15참고 자료

사전 해싱이 필요한가?

보안 부팅 구현에서는 일반적으로 먼저 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의 순수 모드가 기본으로 사용됩니다.