Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A partir do .NET 11, CompositeMLDsa em Windows usa a implementação de Windows nativa do ML-DSA Composto em vez de uma implementação gerenciada em camadas sobre ML-DSA, RSA e ECDSA. Como Windows implementa apenas um subconjunto dos conjuntos de parâmetros de ML-DSA Composto nativamente, essa alteração reduz o número de algoritmos de ML-DSA compostos com suporte em Windows.
Versão introduzida
.NET 11 Versão Prévia 7
Comportamento anterior
Anteriormente, CompositeMLDsa as APIs no Windows funcionavam para qualquer algoritmo composto, desde que seus componentes subjacentes (ML-DSA, RSA e ECDSA) fossem compatíveis, incluindo todos os algoritmos compostos baseados em RSA. Algoritmos que combinam ML-DSA com EdDSA (Ed25519 ou Ed448) sempre são jogados PlatformNotSupportedException em Windows, porque Windows não dá suporte ao EdDSA.
Novo comportamento
A partir do .NET 11, CompositeMLDsa as APIs no Windows dão suporte apenas aos algoritmos compostos que Windows implementa nativamente no CNG. Windows atualmente implementa o suporte nativo para exatamente esses quatro conjuntos de parâmetros, todos os quais emparelham ML-DSA com ECDSA:
| Windows conjunto de parâmetros | Algoritmo de ML-DSA composto |
CompositeMLDsaAlgorithm membro |
|---|---|---|
44-ECDSA-P256-SHA256 |
Composição ML-DSA-44 e ECDSA P256 | MLDsa44WithECDsaP256 |
65-ECDSA-P256-SHA512 |
Composição ML-DSA-65 e ECDSA P256 | MLDsa65WithECDsaP256 |
65-ECDSA-P384-SHA512 |
Composição ML-DSA-65 e ECDSA P384 | MLDsa65WithECDsaP384 |
87-ECDSA-P384-SHA512 |
Composição ML-DSA-87 e ECDSA P384 | MLDsa87WithECDsaP384 |
Todos os outros algoritmos compostos agora são lançados PlatformNotSupportedException em Windows. Isso inclui todos os algoritmos que emparelham ML-DSA com o RSA, que funcionou anteriormente, e todos os algoritmos que emparelham ML-DSA com EdDSA (Ed25519 ou Ed448), que já foram jogados PlatformNotSupportedException antes dessa alteração.
Para obter mais informações, consulte o cbParameterSet campo da BCRYPT_PQDSA_KEY_BLOB estrutura.
Tipo de mudança disruptiva
Esta é uma alteração comportamental.
Motivo da alteração
É preferível usar a implementação nativa que o sistema operacional fornece em vez de uma camada gerenciada criada sobre outras primitivas. Windows adicionado suporte nativo para um subconjunto de conjuntos de parâmetros de ML-DSA compostos em builds recentes do Windows Insider Preview e .NET agora usa esse suporte nativo quando está disponível.
Ação recomendada
Antes de usar um algoritmo de ML-DSA composto específico em Windows, chame IsAlgorithmSupported para verificar se o algoritmo tem suporte. Se não houver suporte para um algoritmo, escolha um algoritmo com suporte ou manipule o 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.
}
Essa alteração não afeta as APIs de certificado de ML-DSA Composto. Essas APIs continuam a ser lançadas PlatformNotSupportedException em Windows, como antes.