Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
A partir de .NET 11, CompositeMLDsa en Windows usa la implementación nativa de Windows compuesta de ML-DSA en lugar de una implementación administrada superada por ML-DSA, RSA y ECDSA. Dado que Windows solo implementa un subconjunto de los conjuntos de parámetros de ML-DSA compuesto de forma nativa, este cambio reduce el número de algoritmos de ML-DSA compuestos admitidos en Windows.
Versión introducida
.NET 11 Preview 7
Comportamiento anterior
Anteriormente, CompositeMLDsa se admitían las API de Windows para cualquier algoritmo compuesto, siempre que sus componentes subyacentes (ML-DSA, RSA y ECDSA) fueran compatibles, incluidos todos los algoritmos compuestos basados en RSA. Los algoritmos que combinan ML-DSA con EdDSA (Ed25519 o Ed448) siempre se lanzan PlatformNotSupportedException Windows, ya que Windows no admite EdDSA.
Nuevo comportamiento
A partir de .NET 11, CompositeMLDsa las API de Windows solo admiten los algoritmos compuestos que Windows implementan de forma nativa en CNG. Windows implementa actualmente compatibilidad nativa con exactamente estos cuatro conjuntos de parámetros, todos los cuales ML-DSA con ECDSA:
| conjunto de parámetros Windows | Algoritmo de ML-DSA compuesto | MiembroCompositeMLDsaAlgorithm |
|---|---|---|
44-ECDSA-P256-SHA256 |
ML-DSA-44 compuesto y ECDSA P256 | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
ML-DSA-65 compuesto y ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
ML-DSA-65 compuesto y ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
ML-DSA-87 compuesto y ECDSA P384 | MLDsa87WithECDsaP384 |
Todos los demás algoritmos compuestos ahora se inician PlatformNotSupportedException en Windows. Esto incluye todos los algoritmos que emparejan ML-DSA con RSA, que funcionaban anteriormente, y cada algoritmo que empareja ML-DSA con EdDSA (Ed25519 o Ed448), que ya se produjo PlatformNotSupportedException antes de este cambio.
Para obtener más información, consulte el cbParameterSet campo de la BCRYPT_PQDSA_KEY_BLOB estructura.
Tipo de cambio disruptivo
Este es un cambio de comportamiento.
Motivo del cambio
Es preferible usar la implementación nativa que proporciona el sistema operativo en lugar de una capa administrada basada en otras primitivas. Windows se ha agregado compatibilidad nativa para un subconjunto de conjuntos de parámetros de ML-DSA compuestos en compilaciones recientes de Windows Insider Preview y ahora .NET usa esa compatibilidad nativa cuando está disponible.
Acción recomendada
Antes de usar un algoritmo de ML-DSA compuesto específico en Windows, llame IsAlgorithmSupported a para comprobar si se admite el algoritmo. Si no se admite un algoritmo, elija un algoritmo compatible o controle el resultado 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.
}
Este cambio no afecta a las API de certificado de ML-DSA compuestas. Esas API siguen iniciando PlatformNotSupportedException Windows, como antes.