struttura BCRYPT_MLKEM_KEY_BLOB

Note

Alcune informazioni riguardano un prodotto in versione preliminare che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non fornisce alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui. Le funzionalità composite descritte in questo argomento sono disponibili nelle versioni non definitive del Windows Insider Preview.

La struttura BCRYPT_MLKEM_KEY_BLOB viene usata come intestazione per una chiave pubblica ML-KEM (chiave di incapsulamento con codifica byte) o BLOB di chiavi private in 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

Il campo dwMagic è un valore a 4 byte che indica il formato della chiave utilizzata. Sono definiti i valori seguenti:

Value Meaning
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D La struttura rappresenta una chiave pubblica.
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D La struttura rappresenta una chiave privata espansa.
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D La struttura rappresenta un valore di inizializzazione privato.
BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC0x504B4D43 La struttura rappresenta una chiave pubblica.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC0x524B4D43 La struttura rappresenta una chiave privata.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC0x534B4D43 La struttura rappresenta un valore di inizializzazione privato. Riferimento: IRTF

cbParameterSet

Lunghezza, in byte, del parametro bufferSet direttamente dopo lo struct. Questo buffer contiene una stringa Unicode con terminazione Null che identifica il set di parametri della chiave. Attualmente sono supportati valori seguenti:

parameterSet Meaning
BCRYPT_MLKEM_PARAMETER_SET_512L"512" ML-KEM-512, categoria di sicurezza 1.
BCRYPT_MLKEM_PARAMETER_SET_768L"768" ML-KEM-768, categoria di sicurezza 3.
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" ML-KEM-1024, categoria di sicurezza 5.
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_P256L"768-P256" ML-KEM-768 composito ed ECDH P256
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_X25519L"768-X25519" ML-KEM-768 composito e curva25519
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" ML-KEM-1024 composito ed ECDH P384

cbKey

Lunghezza, in byte, della chiave del buffer direttamente dopo il parametroSet. Questa dimensione è statica e dipende dal formato della chiave e dal set di parametri in uso.

Remarks

BCRYPT_MLKEM_PRIVATE_BLOB (anche con alias come BCRYPT_MLKEM_DECAPSULATION_BLOB) supporta l'importazione e l'esportazione di chiavi con codifica byte standard ML-KEM decapsulation per FIPS 203. Il BLOB ha valore BCRYPT_MLKEM_PRIVATE_MAGICdwMagic e il campo della chiave contiene la chiave con codifica byte.

BCRYPT_MLKEM_PUBLIC_BLOB (anche con alias come BCRYPT_MLKEM_ENCAPSULATION_BLOB) supporta l'importazione e l'esportazione di chiavi di incapsulamento con codifica byte standard ML-KEM per FIPS 203. Il BLOB ha valore BCRYPT_MLKEM_PUBLIC_MAGICdwMagic e il campo della chiave contiene la chiave con codifica byte.

BCRYPT_MLKEM_PRIVATE_SEED_BLOB supporta l'importazione e l'esportazione di semi di ML-KEM. Il BLOB ha valore BCRYPT_MLKEM_PRIVATE_SEED_MAGICdwMagic e il campo chiave contiene il valore di inizializzazione KEM (definito come concatenazione a 64 byte di d || z per FIPS 203), quindi cbKey è attualmente sempre 64.

Le dimensioni dei byte delle chiavi con codifica byte sono disponibili nella tabella 3 della sezione 8 fips 203 . Molti chiamanti possono invece eseguire query dinamiche sulle dimensioni del BLOB necessarie usando BCryptExportKey con NULLpbOutput.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB supporta l'importazione e l'esportazione di chiavi composite con codifica byte standardML-KEM private per PQ Composite ML-KEM. Il BLOB ha valore BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGICdwMagic e il campo della chiave contiene la chiave con codifica byte.

BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB supporta l'importazione e l'esportazione di chiavi pubbliche con codifica composite con byte standardML-KEM per PQ Composite ML-KEM. Il BLOB ha valore BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGICdwMagic e il campo della chiave contiene la chiave con codifica byte.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB supporta l'importazione e l'esportazione di semi diML-KEM composito. Il BLOB ha valore BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGICdwMagic e il campo della chiave contiene il valore COMPOSITO IRTF a 32 byte:ML-KEM valore di inizializzazione per LE CHIAVI ibride concrete di CFRG, quindi cbKey è attualmente sempre 32.

Requirements

Requirement Value
Client minimo supportato Windows 11 24H2: Viene avviato il supporto per ML-KEM. [solo app desktop]
Server minimo supportato Windows Server 2025: Inizia il supporto per ML-KEM. [solo app desktop]
Header bcrypt.h

Vedere anche

BCryptGenerateKeyPair

BCryptImportKeyPair

BCryptFinalizeKeyPair

BCryptExportKey

BCryptGetProperty

BCryptSetProperty

BCryptEncapsulate

BCryptDecapsulate