Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A partir de .NET 11, CompositeMLDsa em Windows utiliza a implementação nativa Windows do Composite ML-DSA em vez de uma implementação gerida em camadas sobre ML-DSA, RSA e ECDSA. Como Windows implementa nativamente um subconjunto dos conjuntos de parâmetros Composite ML-DSA, esta alteração reduz o número de algoritmos Composite ML-DSA suportados em Windows.
Versão introduzida
.NET 11 Pré-visualização 7
Comportamento anterior
Anteriormente, CompositeMLDsa as APIs no Windows funcionavam para qualquer algoritmo composto desde que os seus componentes subjacentes (ML-DSA, RSA e ECDSA) fossem suportados, incluindo todos os algoritmos compostos baseados em RSA. Algoritmos que combinam ML-DSA com EdDSA (Ed25519 ou Ed448) sempre PlatformNotSupportedException Windows, porque Windows não suporta EdDSA.
Novo comportamento
A partir do .NET 11, CompositeMLDsa as APIs no Windows suportam apenas os algoritmos compostos que o Windows implementa nativamente no CNG. Windows implementa atualmente suporte nativo para exatamente estes quatro conjuntos de parâmetros, todos eles emparelhados ML-DSA com ECDSA:
| Conjunto de parâmetros do Windows | Algoritmo ML-DSA composto |
CompositeMLDsaAlgorithm Membro |
|---|---|---|
44-ECDSA-P256-SHA256 |
ML-DSA-44 e ECDSA P256 compostos | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
ML-DSA-65 composto e ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
ML-DSA-65 composto e ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
ML-DSA-87 e ECDSA P384 compostos | MLDsa87WithECDsaP384 |
Todos os outros algoritmos compostos passam PlatformNotSupportedException a ser incluídos no Windows. Isto inclui todos os algoritmos que emparelham ML-DSA com RSA, que funcionava anteriormente, e todos os algoritmos que emparelham ML-DSA com EdDSA (Ed25519 ou Ed448), que já tinham sido lançados PlatformNotSupportedException antes desta alteração.
Para mais informações, veja o cbParameterSet campo da BCRYPT_PQDSA_KEY_BLOB estrutura.
Tipo de mudança disruptiva
Esta mudança é uma mudança comportamental.
Motivo da mudança
É preferível usar a implementação nativa que o sistema operativo fornece em vez de uma camada gerida construída sobre outras primitivas. Windows adicionado suporte nativo para um subconjunto de conjuntos de parâmetros ML-DSA compostos em versões recentes do Windows Insider Preview, e .NET agora usa esse suporte nativo quando está disponível.
Ação recomendada
Antes de usar um algoritmo específico de ML-DSA composto no Windows, ligue IsAlgorithmSupported para verificar se o algoritmo é suportado. Se um algoritmo não for suportado, escolha um algoritmo suportado ou trate do resultado 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.
}
Esta alteração não afeta as APIs de certificados ML-DSA compostas. Essas APIs continuam PlatformNotSupportedException a instalar o Windows, como antes.