Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Począwszy od .NET 11, CompositeMLDsa w Windows używa natywnej implementacji Windows złożonej ML-DSA zamiast implementacji zarządzanej warstwowej za pośrednictwem uczenia maszynowego DSA, RSA i ECDSA. Ponieważ Windows implementuje tylko podzbiór zestawów parametrów złożonych ML-DSA natywnie, ta zmiana zmniejsza liczbę algorytmów złożonych ML-DSA obsługiwanych w Windows.
Wersja wprowadzona
.NET 11 (wersja zapoznawcza 7)
Poprzednie zachowanie
CompositeMLDsa Wcześniej interfejsy API na Windows działały dla dowolnego algorytmu złożonego, o ile jego podstawowe składniki (ML-DSA, RSA i ECDSA) były obsługiwane, w tym wszystkie algorytmy złożone oparte na architekturze RSA. Algorytmy łączące ML-DSA z EdDSA (Ed25519 lub Ed448) zawsze rzucane PlatformNotSupportedException na Windows, ponieważ Windows nie obsługuje EdDSA.
Nowe zachowanie
Począwszy od .NET 11, CompositeMLDsa interfejsy API w systemie Windows obsługują tylko algorytmy złożone, które Windows implementują natywnie w sieci CNG. Windows obecnie implementuje natywną obsługę dokładnie tych czterech zestawów parametrów, z których wszystkie ML-DSA z ECDSA:
| zestaw parametrów Windows | Algorytm złożony ML-DSA |
CompositeMLDsaAlgorithm członek |
|---|---|---|
44-ECDSA-P256-SHA256 |
Złożone ML-DSA-44 i ECDSA P256 | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
Złożone ML-DSA-65 i ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
Złożone ML-DSA-65 i ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
Złożone ML-DSA-87 i ECDSA P384 | MLDsa87WithECDsaP384 |
Wszystkie inne algorytmy złożone zgłaszają teraz PlatformNotSupportedException Windows. Obejmuje to każdy algorytm, który paruje ML-DSA z RSA, który działał wcześniej, i każdy algorytm, który paruje ML-DSA z EdDSA (Ed25519 lub Ed448), który już rzucił PlatformNotSupportedException przed tą zmianą.
Aby uzyskać więcej informacji, zobacz cbParameterSet pole BCRYPT_PQDSA_KEY_BLOB struktury.
Typ zmiany przełamującej
Ta zmiana jest zmianą behawioralną.
Przyczyna zmiany
Preferowane jest użycie natywnej implementacji systemu operacyjnego, a nie warstwy zarządzanej opartej na innych elementach pierwotnych. Windows dodano natywną obsługę podzestawu zestawów parametrów złożonych ML-DSA w ostatnich kompilacjach Windows Insider Preview, a .NET teraz używa tej natywnej obsługi, gdy jest dostępna.
Zalecana akcja
Przed użyciem określonego algorytmu złożonego ML-DSA w Windows wywołaj metodę IsAlgorithmSupported , aby sprawdzić, czy algorytm jest obsługiwany. Jeśli algorytm nie jest obsługiwany, wybierz obsługiwany algorytm lub obsłuż wynikowy 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.
}
Ta zmiana nie ma wpływu na interfejsy API certyfikatów złożonych ML-DSA. Te interfejsy API nadal zgłaszają PlatformNotSupportedException Windows, tak jak wcześniej.