Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Počínaje .NET 11 CompositeMLDsa používá Windows nativní Windows implementaci složených ML-DSA místo spravované implementace vrstvené přes ML-DSA, RSA a ECDSA. Vzhledem k tomu, že Windows nativně implementuje podmnožinu sad parametrů složeného ML-DSA, snižuje tato změna počet algoritmů složených ML-DSA podporovaných na Windows.
Verze byla představena
.NET 11 Preview 7
Předchozí chování
CompositeMLDsa Dříve rozhraní API na Windows fungovala pro jakýkoli složený algoritmus, pokud byly podporovány jeho základní komponenty (ML-DSA, RSA a ECDSA), včetně všech složených algoritmů založených na RSA. Algoritmy, které kombinují ML-DSA s EdDSA (Ed25519 nebo Ed448), se vždy hodily PlatformNotSupportedException na Windows, protože Windows nepodporuje EdDSA.
Nové chování
Počínaje .NET 11 CompositeMLDsa podporují rozhraní API na Windows podporují pouze složené algoritmy, které Windows nativně implementují v CNG. Windows aktuálně implementuje nativní podporu pro přesně tyto čtyři sady parametrů, z nichž všechny páry ML-DSA s ECDSA:
| sada parametrů Windows | Složený algoritmus ML-DSA |
CompositeMLDsaAlgorithm člen |
|---|---|---|
44-ECDSA-P256-SHA256 |
Složené ML-DSA-44 a ECDSA P256 | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
Složené ML-DSA-65 a ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
Složené ML-DSA-65 a ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
Složené ML-DSA-87 a ECDSA P384 | MLDsa87WithECDsaP384 |
Všechny ostatní složené algoritmy teď vyvolává PlatformNotSupportedException Windows. To zahrnuje každý algoritmus, který spáruje ML-DSA s RSA, který dříve fungoval, a každý algoritmus, který spáruje ML-DSA s EdDSA (Ed25519 nebo Ed448), který už před touto změnou vyhodil PlatformNotSupportedException .
Další informace najdete v cbParameterSet poli BCRYPT_PQDSA_KEY_BLOB struktury.
Typ zásadní změny
Tato změna je změna chování.
Důvod změny
Vhodnější je použít nativní implementaci, která operační systém poskytuje, než spravovanou vrstvu postavenou na jiných primitivách. Windows přidání nativní podpory pro podmnožinu složených sad parametrů ML-DSA v nedávných buildech Windows Insider Preview a .NET teď používá nativní podporu, když je dostupná.
Doporučená akce
Před použitím konkrétního složeného algoritmu ML-DSA na Windows voláním IsAlgorithmSupported zkontrolujte, jestli je algoritmus podporovaný. Pokud se algoritmus nepodporuje, zvolte podporovaný algoritmus nebo zpracujte výsledný PlatformNotSupportedExceptionalgoritmus .
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.
}
Tato změna nemá vliv na složená rozhraní API certifikátu ML-DSA. Tato rozhraní API se budou dál hodit PlatformNotSupportedException na Windows, stejně jako předtím.