BCRYPT_MLKEM_KEY_BLOB Struktur

Note

Einige Informationen beziehen sich auf ein Vorabversionsprodukt, das vor der kommerziellen Veröffentlichung erheblich geändert werden kann. Microsoft gibt keine Garantie, weder ausdrücklich noch impliziert, hinsichtlich der hier bereitgestellten Informationen. Die in diesem Thema beschriebenen zusammengesetzten Features sind in Vorabversionen der Windows Insider Preview verfügbar.

Die BCRYPT_MLKEM_KEY_BLOB-Struktur wird als Header für einen ML-KEM öffentlichen Schlüssel (Byte-codierter Kapselschlüssel) oder privateSchlüssel-BLOB im Arbeitsspeicher verwendet.

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

Das dwMagic-Feld ist ein 4-Byte-Wert, der das Format des verwendeten Schlüssels angibt. Die folgenden Werte sind definiert:

Value Meaning
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D Die Struktur stellt einen öffentlichen Schlüssel dar.
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D Die Struktur stellt einen erweiterten privaten Schlüssel dar.
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D Die Struktur stellt einen privaten Seed dar.
BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC0x504B4D43 Die Struktur stellt einen öffentlichen Schlüssel dar.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC0x524B4D43 Die Struktur stellt einen privaten Schlüssel dar.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC0x534B4D43 Die Struktur stellt einen privaten Seed dar. Referenz: IRTF

cbParameterSet

Die Länge des PufferparameterSets in Byte direkt nach der Struktur. Dieser Puffer enthält eine mit Null beendete Unicode-Zeichenfolge, die den Parametersatz des Schlüssels identifiziert. Die folgenden Werte werden derzeit unterstützt:

parameterSet Meaning
BCRYPT_MLKEM_PARAMETER_SET_512L"512" ML-KEM-512, Sicherheitskategorie 1.
BCRYPT_MLKEM_PARAMETER_SET_768L"768" ML-KEM-768, Sicherheitskategorie 3.
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" ML-KEM-1024, Sicherheitskategorie 5.
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_P256L"768-P256" Zusammengesetzt ML-KEM-768 und ECDH P256
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_X25519L"768-X25519" Zusammengesetzt ML-KEM-768 und Curve25519
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" Zusammengesetzt ML-KEM-1024 und ECDH P384

cbKey

Die Länge des Pufferschlüssels in Bytes direkt nach parameterSet. Diese Größe ist statisch und hängt vom verwendeten Schlüsselformat und vom verwendeten Parameter ab.

Remarks

BCRYPT_MLKEM_PRIVATE_BLOB (auch als BCRYPT_MLKEM_DECAPSULATION_BLOB bezeichnet) unterstützt den Import und Export von Standardbyte-codierten ML-KEM Entkapselungsschlüsseln pro FIPS 203. Das Blob hat dwMagic-WertBCRYPT_MLKEM_PRIVATE_MAGIC, und das Schlüsselfeld enthält den bytecodierten Schlüssel.

BCRYPT_MLKEM_PUBLIC_BLOB (auch als BCRYPT_MLKEM_ENCAPSULATION_BLOB bezeichnet) unterstützt den Import und Export von Standardbyte-codierten ML-KEM Kapselschlüsseln pro FIPS 203. Das Blob hat dwMagic-WertBCRYPT_MLKEM_PUBLIC_MAGIC, und das Schlüsselfeld enthält den bytecodierten Schlüssel.

BCRYPT_MLKEM_PRIVATE_SEED_BLOB unterstützt den Import und Export von ML-KEM Samen. Das Blob hat dwMagic-WertBCRYPT_MLKEM_PRIVATE_SEED_MAGIC, und das Schlüsselfeld enthält den KEM-Seed (definiert als 64-Byte-Verkettung pro d || zFIPS 203), sodass cbKey derzeit immer 64ist.

Die Bytegrößen der bytecodierten Schlüssel finden Sie in FIPS 203 Abschnitt 8 Tabelle 3. Viele Aufrufer können stattdessen die erforderlichen Blobgrößen mithilfe von BCryptExportKey mit NULLpbOutput dynamisch abfragen.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB unterstützt den Import und Export von Standardbyte-codierten Composite-ML-KEM privaten Schlüsseln pro PQ Composite ML-KEM. Das Blob hat dwMagic-WertBCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC, und das Schlüsselfeld enthält den bytecodierten Schlüssel.

BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB unterstützt den Import und Export von Standardbyte-codierten Composite-ML-KEM öffentlichen Schlüsseln pro PQ Composite ML-KEM. Das Blob hat dwMagic-WertBCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC, und das Schlüsselfeld enthält den bytecodierten Schlüssel.

BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB unterstützt den Import und Export von Composite-ML-KEM Samen. Der Blob hat dwMagic-WertBCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC und das Schlüsselfeld enthält den 32-Byte IRTF Composite-ML-KEM Seed pro CFRG Concrete Hybrid KEMs, sodass cbKey derzeit immer 32ist.

Requirements

Requirement Value
Mindestens unterstützter Client Windows 11 24H2: Der Support für ML-KEM beginnt. [Nur Desktop-Apps]
Mindestanforderungen für unterstützte Server Windows Server 2025: Der Support für ML-KEM beginnt. [Nur Desktop-Apps]
Header bcrypt.h

Siehe auch

BCryptGenerateKeyPair

BCryptImportKeyPair

BCryptFinalizeKeyPair

BCryptExportKey

BCryptGetProperty

BCryptSetProperty

BCryptEncapsulate

BCryptDecapsulate