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.
Note
Algumas informações referem-se a um produto de pré-lançamento que pode ser substancialmente modificado antes de ser lançado comercialmente. A Microsoft não oferece garantias, expressas ou implícitas, em relação às informações fornecidas aqui. Os recursos de composição descritos neste tópico estão disponíveis em versões de pré-lançamento do Windows Insider Preview.
A estrutura de BCRYPT_MLKEM_KEY_BLOB é usada como um cabeçalho para uma chave pública ML-KEM (chave de encapsulamento codificada por bytes) ou BLOB de chave privada na memória.
Syntax
typedef struct _BCRYPT_MLKEM_KEY_BLOB {
ULONG dwMagic;
ULONG cbParameterSet; // Byte size of parameterSet[]
ULONG cbKey; // Byte size of key[]
// WCHAR parameterSet[cbParameterSet / sizeof(WCHAR)]; // Including \0-terminated
// BYTE key[cbKey]; // Key material
} BCRYPT_MLKEM_KEY_BLOB, *PBCRYPT_MLKEM_KEY_BLOB;
typedef struct _BCRYPT_COMPOSITE_MLKEM_KEY_BLOB {
ULONG dwMagic;
ULONG cbParameterSet; // Byte size of parameterSet[]
ULONG cbKey; // Byte size of key[]
// WCHAR parameterSet[cbParameterSet / sizeof(WCHAR)]; // Including \0-terminated
// BYTE key[cbKey]; // Key material
} BCRYPT_COMPOSITE_MLKEM_KEY_BLOB, *PBCRYPT_COMPOSITE_MLKEM_KEY_BLOB;
Fields
dwMagic
O campo dwMagic é um valor de 4 bytes que indica o formato da chave que está sendo usada. Os seguintes valores são definidos:
| Value | Meaning |
|---|---|
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D |
A estrutura representa uma chave pública. |
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D |
A estrutura representa uma chave privada expandida. |
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D |
A estrutura representa uma semente privada. |
BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC0x504B4D43 |
A estrutura representa uma chave pública. |
BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC0x524B4D43 |
A estrutura representa uma chave privada. |
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC0x534B4D43 |
A estrutura representa uma semente privada. Referência: IRTF |
cbParameterSet
O comprimento, em bytes, do parâmetro de bufferSet seguindo diretamente o struct. Esse buffer contém uma cadeia de caracteres Unicode terminada em nulo que identifica o conjunto de parâmetros da chave. Há suporte para os seguintes valores atualmente:
| parameterSet | Meaning |
|---|---|
BCRYPT_MLKEM_PARAMETER_SET_512L"512" |
ML-KEM-512, categoria de segurança 1. |
BCRYPT_MLKEM_PARAMETER_SET_768L"768" |
ML-KEM-768, categoria de segurança 3. |
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" |
ML-KEM-1024, categoria de segurança 5. |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_P256L"768-P256" |
Composição ML-KEM-768 e ECDH P256 |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_X25519L"768-X25519" |
Composição ML-KEM-768 e curve25519 |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" |
Composição ML-KEM-1024 e ECDH P384 |
cbKey
O comprimento, em bytes, da chave de buffer diretamente seguindo parameterSet. Esse tamanho é estático e depende do formato de chave e do conjunto de parâmetros em uso.
Remarks
BCRYPT_MLKEM_PRIVATE_BLOB (também aliased as BCRYPT_MLKEM_DECAPSULATION_BLOB) dá suporte à importação e exportação de chaves de descapsulação de ML-KEM codificadas em bytes padrão por FIPS 203. O blob tem o valor BCRYPT_MLKEM_PRIVATE_MAGICdwMagic e o campo de chave contém a chave codificada por bytes.
BCRYPT_MLKEM_PUBLIC_BLOB (também aliased as BCRYPT_MLKEM_ENCAPSULATION_BLOB) dá suporte à importação e exportação de chaves de encapsulamento de ML-KEM codificadas em bytes padrão por FIPS 203. O blob tem o valor BCRYPT_MLKEM_PUBLIC_MAGICdwMagic e o campo de chave contém a chave codificada por bytes.
BCRYPT_MLKEM_PRIVATE_SEED_BLOB dá suporte à importação e exportação de sementes ML-KEM. O blob tem o valor BCRYPT_MLKEM_PRIVATE_SEED_MAGICdwMagic e o campo de chave contém a semente KEM (definida como a concatenação de 64 bytes por d || zFIPS 203), portanto cbKey está sempre .64
Os tamanhos de bytes das chaves codificadas por bytes podem ser encontrados na Tabela 3 da Seção 8 do FIPS 203 . Muitos chamadores podem consultar dinamicamente os tamanhos de blob necessários usando BCryptExportKey com NULLpbOutput.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB dá suporte à importação e exportação de chaves privadas de composiçãoML-KEM codificadas em bytes padrão por PQ Composite ML-KEM. O blob tem o valor BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGICdwMagic e o campo de chave contém a chave codificada por bytes.
BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB dá suporte à importação e exportação de chaves públicasML-KEM compostas codificadas por bytes padrão por PQ Composite ML-KEM. O blob tem o valor BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGICdwMagic e o campo de chave contém a chave codificada por bytes.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB dá suporte à importação e exportação de sementesML-KEM compostas. O blob tem o valor BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGICdwMagic e o campo de chave contém a semente de composição IRTF de 32 bytesML-KEM por KEMs Híbridas de Concreto CFRG, portanto cbKey está sempre .32
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | O suporte Windows 11 24H2: para ML-KEM começa. [Somente aplicativos da área de trabalho] |
| Servidor mínimo compatível | Windows Server 2025: o Suporte para ML-KEM começa. [Somente aplicativos da área de trabalho] |
| Header | bcrypt.h |