Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
À compter de .NET 11, CompositeMLDsa sur Windows utilise l’implémentation native Windows de l'ML-DSA composite au lieu d’une implémentation managée superposée sur ML-DSA, RSA et ECDSA. Étant donné que Windows implémente uniquement un sous-ensemble de paramètres composites ML-DSA en mode natif, cette modification réduit le nombre d’algorithmes de ML-DSA composites pris en charge sur Windows.
Version introduite
.NET 11 Preview 7
Comportement antérieur
Auparavant, CompositeMLDsa les API sur Windows fonctionnaient pour n’importe quel algorithme composite tant que ses composants sous-jacents (ML-DSA, RSA et ECDSA) étaient pris en charge, y compris tous les algorithmes composites basés sur RSA. Les algorithmes qui combinent ML-DSA avec EdDSA (Ed25519 ou Ed448) sont toujours levés PlatformNotSupportedException sur Windows, car Windows ne prend pas en charge EdDSA.
Nouveau comportement
À compter de .NET 11, CompositeMLDsa les API sur Windows prennent uniquement en charge les algorithmes composites qui Windows implémentent en mode natif dans CNG. Windows implémente actuellement la prise en charge native de ces quatre ensembles de paramètres, qui associent tous ML-DSA avec ECDSA :
| jeu de paramètres Windows | Algorithme de ML-DSA composite | Membre CompositeMLDsaAlgorithm |
|---|---|---|
44-ECDSA-P256-SHA256 |
Composite ML-DSA-44 et ECDSA P256 | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
Ml-DSA-65 composite et ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
ML-DSA-65 composite et ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
Composite ML-DSA-87 et ECDSA P384 | MLDsa87WithECDsaP384 |
Tous les autres algorithmes composites lèvent PlatformNotSupportedException désormais sur Windows. Cela inclut chaque algorithme qui associe ML-DSA avec RSA, qui a fonctionné précédemment et chaque algorithme qui associe ML-DSA avec EdDSA (Ed25519 ou Ed448), qui a déjà levé PlatformNotSupportedException avant cette modification.
Pour plus d’informations, consultez le cbParameterSet champ de la BCRYPT_PQDSA_KEY_BLOB structure.
Type de changement cassant
Ce changement est un changement de comportement.
Raison du changement
Il est préférable d’utiliser l’implémentation native que le système d’exploitation fournit plutôt qu’une couche managée basée sur d’autres primitives. Windows ajout de la prise en charge native d'un sous-ensemble de jeux de paramètres de ML-DSA composites dans les versions récentes Windows Insider Preview, et .NET utilise désormais cette prise en charge native lorsqu'elle est disponible.
Action recommandée
Avant d’utiliser un algorithme de ML-DSA composite spécifique sur Windows, appelez IsAlgorithmSupported pour vérifier si l’algorithme est pris en charge. Si un algorithme n’est pas pris en charge, choisissez un algorithme pris en charge ou gérez le résultat 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.
}
Cette modification n’affecte pas les API de certificat composite ML-DSA. Ces API continuent d’être levées PlatformNotSupportedException sur Windows, comme précédemment.