Windows 복합 ML-DSA 네이티브 구현 사용

.NET 11부터 Windows ML-DSA, CompositeMLDsa RSA 및 ECDSA를 통해 계층화된 관리되는 구현 대신 복합 ML-DSA 네이티브 Windows 구현을 사용합니다. Windows 기본적으로 Composite ML-DSA 매개 변수 집합의 하위 집합만 구현하므로 이 변경으로 인해 Windows 지원되는 복합 ML-DSA 알고리즘의 수가 줄어듭니다.

도입된 버전

.NET 11 미리 보기 7

이전 동작

CompositeMLDsa 이전에는 모든 RSA 기반 복합 알고리즘을 포함하여 기본 구성 요소(ML-DSA, RSA 및 ECDSA)가 지원되는 한 Windows API는 모든 복합 알고리즘에서 작동했습니다. Windows EdDSA를 지원하지 않기 때문에 ML-DSA EdDSA(Ed25519 또는 Ed448)와 결합하는 알고리즘은 항상 PlatformNotSupportedException Windows.

새 동작

.NET 11 CompositeMLDsa 부터 Windows API는 CNG에서 기본적으로 구현하는 복합 알고리즘만 Windows 지원합니다. Windows 현재 이러한 4개의 매개 변수 집합에 대한 네이티브 지원을 구현하고 있으며, 모두 ECDSA와 ML-DSA 쌍입니다.

Windows 매개 변수 집합 복합 ML-DSA 알고리즘 CompositeMLDsaAlgorithm 멤버
44-ECDSA-P256-SHA256 복합 ML-DSA-44 및 ECDSA P256 MLDsa44WithECDsaP256
65-ECDSA-P256-SHA512 복합 ML-DSA-65 및 ECDSA P256 MLDsa65WithECDsaP256
65-ECDSA-P384-SHA512 복합 ML-DSA-65 및 ECDSA P384 MLDsa65WithECDsaP384
87-ECDSA-P384-SHA512 복합 ML-DSA-87 및 ECDSA P384 MLDsa87WithECDsaP384

다른 모든 복합 알고리즘은 이제 Windows throw PlatformNotSupportedException 합니다. 여기에는 이전에 작동했던 RSA와 ML-DSA 페어링하는 모든 알고리즘과 이 변경 전에 이미 던진 PlatformNotSupportedException EdDSA(Ed25519 또는 Ed448)와 ML-DSA 페어링하는 모든 알고리즘이 포함됩니다.

자세한 내용은 구조체의 cbParameterSet 필드를 참조하세요 BCRYPT_PQDSA_KEY_BLOB .

파괴적 변경 유형

이 변경 사항은 동작 변경입니다.

변경 이유

운영 체제에서 제공하는 네이티브 구현을 다른 기본 형식을 기반으로 빌드된 관리되는 계층보다는 사용하는 것이 좋습니다. Windows 최근 Windows Insider Preview 빌드에서 복합 ML-DSA 매개 변수 집합의 하위 집합에 대한 기본 지원을 추가했으며, 이제 .NET 사용할 수 있을 때 해당 네이티브 지원을 사용합니다.

Windows 특정 복합 ML-DSA 알고리즘을 사용하기 전에 호출 IsAlgorithmSupported 하여 알고리즘이 지원되는지 확인합니다. 알고리즘이 지원되지 않는 경우 지원되는 알고리즘을 선택하거나 결과 알고리즘을 처리합니다 PlatformNotSupportedException.

if (CompositeMLDsa.IsAlgorithmSupported(CompositeMLDsaAlgorithm.MLDsa65WithECDsaP384))
{
    using CompositeMLDsa mldsa = CompositeMLDsa.GenerateKey(CompositeMLDsaAlgorithm.MLDsa65WithECDsaP384);
    // Use mldsa.
}
else
{
    // Fall back to another algorithm, or handle the lack of support.
}

이 변경 내용은 복합 ML-DSA 인증서 API에 영향을 주지 않습니다. 이러한 API는 이전과 같이 Windows 계속 throw PlatformNotSupportedException 합니다.

영향을 받는 API