structure de BCRYPT_MLKEM_KEY_BLOB

Note

Certaines informations concernent un produit de préversion qui peut être sensiblement modifié avant sa publication commerciale. Microsoft n’offre aucune garantie, expresse ou implicite, en ce qui concerne les informations fournies ici. Les fonctionnalités composites décrites dans cette rubrique sont disponibles dans les versions préliminaires du Windows Insider Preview.

La structure BCRYPT_MLKEM_KEY_BLOB est utilisée comme en-tête pour une clé publique ML-KEM (clé d’encapsulation codée en octets) ou blob de clé privée en mémoire.

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

Le champ dwMagic est une valeur de 4 octets qui indique le format de la clé utilisée. Les valeurs suivantes sont définies :

Value Meaning
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D La structure représente une clé publique.
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D La structure représente une clé privée développée.
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D La structure représente une valeur initiale privée.
BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC0x504B4D43 La structure représente une clé publique.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC0x524B4D43 La structure représente une clé privée.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC0x534B4D43 La structure représente une valeur initiale privée. Référence : IRTF

cbParameterSet

Longueur, en octets, du parameterSet de mémoire tampon directement après le struct. Cette mémoire tampon contient une chaîne Unicode terminée par null qui identifie le jeu de paramètres de la clé. Les valeurs suivantes sont actuellement prises en charge :

parameterSet Meaning
BCRYPT_MLKEM_PARAMETER_SET_512L"512" ML-KEM-512, catégorie de sécurité 1.
BCRYPT_MLKEM_PARAMETER_SET_768L"768" ML-KEM-768, catégorie de sécurité 3.
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" ML-KEM-1024, catégorie de sécurité 5.
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_P256L"768-P256" ML-KEM-768 composite et ECDH P256
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_X25519L"768-X25519" ML-KEM-768 composite et courbe25519
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" COMPOSITE ML-KEM-1024 et ECDH P384

cbKey

Longueur, en octets, de la clé de mémoire tampon directement après parameterSet. Cette taille est statique et dépend du format de clé et du jeu de paramètres en cours d’utilisation.

Remarks

BCRYPT_MLKEM_PRIVATE_BLOB (également alias en tant que BCRYPT_MLKEM_DECAPSULATION_BLOB) prend en charge l’importation et l’exportation de clés de décapsulation ML-KEM codées en octets standard par FIPS 203. L’objet blob a une valeur BCRYPT_MLKEM_PRIVATE_MAGICdwMagic et le champ clé contient la clé encodée par octets.

BCRYPT_MLKEM_PUBLIC_BLOB (également alias comme BCRYPT_MLKEM_ENCAPSULATION_BLOB) prend en charge l’importation et l’exportation de clés d’encapsulation codées en octets standard ML-KEM par FIPS 203. L’objet blob a une valeur BCRYPT_MLKEM_PUBLIC_MAGICdwMagic et le champ clé contient la clé encodée par octets.

BCRYPT_MLKEM_PRIVATE_SEED_BLOB prend en charge l’importation et l’exportation de graines ML-KEM. L’objet blob a une valeur BCRYPT_MLKEM_PRIVATE_SEED_MAGICdwMagic et le champ de clé contient la valeur initiale KEM (définie comme concaténation de 64 octets par d || zFIPS 203), donc cbKey est toujours toujours64.

Les tailles d’octets des clés codées en octets sont disponibles dans le tableau 8 de la section 8 FIPS 203 . De nombreux appelants peuvent plutôt interroger dynamiquement les tailles d’objets blob requises à l’aide de BCryptExportKey avec NULLpbOutput.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB prend en charge l’importation et l’exportation de clés privées codées en octets standardML-KEM par ml-KEM composite PQ. L’objet blob a une valeur BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGICdwMagic et le champ clé contient la clé encodée par octets.

BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB prend en charge l’importation et l’exportation de clés publiquesML-KEM codées en octets standard par ML-KEM composite PQ. L’objet blob a une valeur BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGICdwMagic et le champ clé contient la clé encodée par octets.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB prend en charge l’importation et l’exportation de graines compositesML-KEM. L’objet blob a une valeur BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGICdwMagic et le champ de clé contient le composite IRTF de 32 octets-ML-KEM valeur initiale par keMs hybrides CFRG Béton, donc cbKey est actuellement toujours.32

Requirements

Requirement Value
Client minimum requis Windows 11 24H2 : Prise en charge de ML-KEM commence. [Applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2025 : Prise en charge de ML-KEM commence. [Applications de bureau uniquement]
Header bcrypt.h

Voir aussi

BCryptGenerateKeyPair

BCryptImportKeyPair

BCryptFinalizeKeyPair

BCryptExportKey

BCryptGetProperty

BCryptSetProperty

BCryptEncapsulate

BCryptDecapsulate