Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
Vanaf .NET 11 CompositeMLDsa gebruikt Windows de systeemeigen Windows implementatie van samengestelde ML-DSA in plaats van een beheerde implementatie gelaagd over ML-DSA, RSA en ECDSA. Omdat Windows alleen een subset van de parametersets samengestelde ML-DSA implementeert, vermindert deze wijziging het aantal samengestelde ML-DSA-algoritmen dat wordt ondersteund op Windows.
Geïntroduceerde versie
.NET 11 preview 7
Vorig gedrag
CompositeMLDsa Voorheen werden API's op Windows voor elk samengesteld algoritme gewerkt zolang de onderliggende onderdelen (ML-DSA, RSA en ECDSA) werden ondersteund, inclusief alle op RSA gebaseerde samengestelde algoritmen. Algoritmen die ML-DSA combineren met EdDSA (Ed25519 of Ed448) gooiden PlatformNotSupportedException altijd op Windows, omdat Windows geen ondersteuning biedt voor EdDSA.
Nieuw gedrag
Vanaf .NET 11 CompositeMLDsa bieden API's op Windows alleen ondersteuning voor de samengestelde algoritmen die Windows systeemeigen worden geïmplementeerd in CNG. Windows momenteel systeemeigen ondersteuning implementeert voor precies deze vier parametersets, die allemaal ML-DSA met ECDSA:
| Windows parameterset | Algoritme voor samengestelde ML-DSA |
CompositeMLDsaAlgorithm lid |
|---|---|---|
44-ECDSA-P256-SHA256 |
Samengestelde ML-DSA-44 en ECDSA P256 | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
Samengestelde ML-DSA-65 en ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
Samengestelde ML-DSA-65 en ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
Samengestelde ML-DSA-87 en ECDSA P384 | MLDsa87WithECDsaP384 |
Alle andere samengestelde algoritmen gooien PlatformNotSupportedException nu Windows. Dit omvat elk algoritme dat ML-DSA koppelt aan RSA, dat eerder werkte en elk algoritme dat ML-DSA koppelt aan EdDSA (Ed25519 of Ed448), die al vóór deze wijziging werd gegooid PlatformNotSupportedException .
Zie het cbParameterSet veld van de BCRYPT_PQDSA_KEY_BLOB structuur voor meer informatie.
Type van brekende verandering
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Het is beter om de systeemeigen implementatie te gebruiken die het besturingssysteem biedt in plaats van een beheerde laag die is gebouwd op andere primitieven. Windows systeemeigen ondersteuning toegevoegd voor een subset van samengestelde ML-DSA parametersets in recente Windows Insider Preview-builds. .NET gebruikt nu die systeemeigen ondersteuning wanneer deze beschikbaar is.
Aanbevolen actie
Voordat u een specifiek samengesteld ML-DSA-algoritme op Windows gebruikt, roept IsAlgorithmSupported u aan om te controleren of het algoritme wordt ondersteund. Als een algoritme niet wordt ondersteund, kiest u een ondersteund algoritme of verwerkt u het resulterende PlatformNotSupportedExceptionalgoritme.
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.
}
Deze wijziging heeft geen invloed op de API's van het samengestelde ML-DSA-certificaat. Deze API's blijven net als voorheen op Windows gooienPlatformNotSupportedException.