Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ab .NET 11 CompositeMLDsa verwendet Windows die native Windows Implementierung von Composite ML-DSA anstelle einer verwalteten Implementierung, die über ML-DSA, RSA und ECDSA verteilt ist. Da Windows nur eine Teilmenge des Composite ML-DSA Parametersätze nativ implementiert, reduziert diese Änderung die Anzahl der für Windows unterstützten Composite-ML-DSA-Algorithmen.
Eingeführt in Version
.NET 11 Vorschau 7
Bisheriges Verhalten
CompositeMLDsa Zuvor wurden APIs für Windows für jeden zusammengesetzten Algorithmus gearbeitet, solange seine zugrunde liegenden Komponenten (ML-DSA, RSA und ECDSA) unterstützt wurden, einschließlich aller RSA-basierten Zusammengesetztalgorithmen. Algorithmen, die ML-DSA mit EdDSA (Ed25519 oder Ed448) kombinieren, haben immer Windows ausgelöstPlatformNotSupportedException, da Windows EdDSA nicht unterstützt.
Neues Verhalten
Ab .NET 11 CompositeMLDsa unterstützen APIs für Windows nur die zusammengesetzten Algorithmen, die Windows nativ in CNG implementiert. Windows implementiert derzeit systemeigene Unterstützung für genau diese vier Parametersätze, die alle paar ML-DSA mit ECDSA:
| Windows Parametersatz | Zusammengesetzter ML-DSA Algorithmus |
CompositeMLDsaAlgorithm Mitglied |
|---|---|---|
44-ECDSA-P256-SHA256 |
Zusammengesetzt ML-DSA-44 und ECDSA P256 | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
Zusammengesetzt ML-DSA-65 und ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
Zusammengesetzt ML-DSA-65 und ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
Zusammengesetzt ML-DSA-87 und ECDSA P384 | MLDsa87WithECDsaP384 |
Alle anderen zusammengesetzten Algorithmen lösen jetzt auf Windows ausPlatformNotSupportedException. Dazu gehört jeder Algorithmus, der ML-DSA mit RSA kombiniert, was zuvor funktionierte, und jeder Algorithmus, der ML-DSA mit EdDSA (Ed25519 oder Ed448) kombiniert, die bereits vor dieser Änderung geworfen wurde PlatformNotSupportedException .
Weitere Informationen finden Sie im cbParameterSet Feld der BCRYPT_PQDSA_KEY_BLOB Struktur.
Art der einschneidenden Änderung
Diese Änderung ist eine Verhaltensänderung.
Grund für die Änderung
Es ist vorzuziehen, die systemeigene Implementierung zu verwenden, die das Betriebssystem bereitstellt, anstatt auf einer verwalteten Ebene, die auf anderen Grundtypen basiert. Windows hinzugefügte native Unterstützung für eine Teilmenge von Composite ML-DSA Parametersätzen in den letzten Windows Insider Preview-Builds, und .NET verwendet jetzt diese systemeigene Unterstützung, wenn sie verfügbar ist.
Empfohlene Maßnahme
Bevor Sie einen bestimmten zusammengesetzten ML-DSA Algorithmus für Windows verwenden, rufen Sie aufIsAlgorithmSupported, um zu überprüfen, ob der Algorithmus unterstützt wird. Wenn ein Algorithmus nicht unterstützt wird, wählen Sie einen unterstützten Algorithmus aus, oder behandeln Sie den resultierenden PlatformNotSupportedExceptionAlgorithmus.
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.
}
Diese Änderung wirkt sich nicht auf die Zusammengesetzten ML-DSA Zertifikat-APIs aus. Diese APIs werden wie zuvor weiterhin auf Windows ausgelöstPlatformNotSupportedException.