estructura de BCRYPT_MLKEM_KEY_BLOB

Note

Cierta información se relaciona con un producto de versión preliminar que puede modificarse sustancialmente antes de su publicación comercial. Microsoft no ofrece ninguna garantía, expresa o implícita, con respecto a la información proporcionada aquí. Las características compuestas descritas en este tema están disponibles en versiones preliminares de Windows Insider Preview.

La estructura BCRYPT_MLKEM_KEY_BLOB se usa como encabezado para una clave pública ML-KEM (clave de encapsulación codificada por bytes) o BLOBde clave privada en memoria.

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

El campo dwMagic es un valor de 4 bytes que indica el formato de la clave que se está usando. Se definen los siguientes valores:

Value Meaning
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D La estructura representa una clave pública.
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D La estructura representa una clave privada expandida.
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D La estructura representa una inicialización privada.
BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC0x504B4D43 La estructura representa una clave pública.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC0x524B4D43 La estructura representa una clave privada.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC0x534B4D43 La estructura representa una inicialización privada. Referencia: IRTF

cbParameterSet

Longitud, en bytes, del parámetro de búferSet directamente después de la estructura. Este búfer contiene una cadena Unicode terminada en null que identifica el conjunto de parámetros de la clave. Actualmente se admiten los siguientes valores:

parameterSet Meaning
BCRYPT_MLKEM_PARAMETER_SET_512L"512" ML-KEM-512, categoría de seguridad 1.
BCRYPT_MLKEM_PARAMETER_SET_768L"768" ML-KEM-768, categoría de seguridad 3.
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" ML-KEM-1024, categoría de seguridad 5.
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_P256L"768-P256" ML compuesto-KEM-768 y ECDH P256
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_X25519L"768-X25519" Ml compuesto-KEM-768 y curva25519
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" ML compuesto-KEM-1024 y ECDH P384

cbKey

Longitud, en bytes, de la clave de búfer directamente después de parameterSet. Este tamaño es estático y depende del formato de clave y del parámetro establecido en uso.

Remarks

BCRYPT_MLKEM_PRIVATE_BLOB (también con alias como BCRYPT_MLKEM_DECAPSULATION_BLOB) admite la importación y exportación de claves de descapsulación de bytes estándar ML-KEM por FIPS 203. El blob tiene el valor BCRYPT_MLKEM_PRIVATE_MAGICdwMagic y el campo de clave contiene la clave codificada por bytes.

BCRYPT_MLKEM_PUBLIC_BLOB (también con alias como BCRYPT_MLKEM_ENCAPSULATION_BLOB) admite la importación y exportación de claves de encapsulación de bytes estándar ML-KEM por FIPS 203. El blob tiene el valor BCRYPT_MLKEM_PUBLIC_MAGICdwMagic y el campo de clave contiene la clave codificada por bytes.

BCRYPT_MLKEM_PRIVATE_SEED_BLOB admite la importación y exportación de semillas de ML-KEM. El blob tiene el valor BCRYPT_MLKEM_PRIVATE_SEED_MAGICdwMagic y el campo de clave contiene la inicialización KEM (definida como la concatenación de 64 bytes de d || z por FIPS 203), por lo que cbKey es siempre 64.

Los tamaños de bytes de las claves codificadas por bytes se pueden encontrar en FIPS 203 Sección 8 Tabla 3. Muchos autores de llamadas pueden consultar dinámicamente los tamaños de blob necesarios mediante BCryptExportKey con NULLpbOutput.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB admite la importación y exportación de claves privadas codificadas por bytes estándar,ML-KEM claves privadas por ML-KEM compuesto de PQ. El blob tiene el valor BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGICdwMagic y el campo de clave contiene la clave codificada por bytes.

BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB admite la importación y exportación de claves públicas codificadas por bytes estándar,ML-KEM claves públicas por ML-KEM compuesto de PQ. El blob tiene el valor BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGICdwMagic y el campo de clave contiene la clave codificada por bytes.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB admite la importación y exportación de semillas compuestasML-KEM. El blob tiene el valor BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGICdwMagic y el campo de clave contiene el irTF compuesto de 32 bytes:ML-KEM inicialización por KEM híbridos concretos CFRG, por lo que cbKey es siempre 32.

Requirements

Requirement Value
Cliente mínimo compatible Windows 11 24H2: comienza la compatibilidad con ML-KEM. [solo aplicaciones de escritorio]
Servidor mínimo admitido Windows Server 2025: Comienza la compatibilidad con ML-KEM. [solo aplicaciones de escritorio]
Header bcrypt.h

Consulte también

BCryptGenerateKeyPair

BCryptImportKeyPair

BCryptFinalizeKeyPair

BCryptExportKey

BCryptGetProperty

BCryptSetProperty

BCryptEncapsulate

BCryptDecapsulate