Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 |