Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Note
Некоторые сведения относятся к предварительному продукту, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь. Составные функции, описанные в этом разделе, доступны в предварительной версии Windows Предварительной версии программы предварительной оценки.
Структура BCRYPT_MLKEM_KEY_BLOB используется в качестве заголовка для открытого ключа ML-KEM (ключ в кодировке байтов) или закрытого ключаBLOB в памяти.
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
Поле dwMagic — это 4-байтовое значение, указывающее формат используемого ключа. Определены следующие значения:
| Value | Meaning |
|---|---|
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D |
Структура представляет открытый ключ. |
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D |
Структура представляет расширенный закрытый ключ. |
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D |
Структура представляет собой частное начальное значение. |
BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC0x504B4D43 |
Структура представляет открытый ключ. |
BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC0x524B4D43 |
Структура представляет закрытый ключ. |
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC0x534B4D43 |
Структура представляет собой частное начальное значение. Справочник: IRTF |
cbParameterSet
Длина в байтах буферного набора параметров непосредственно после структуры. Этот буфер содержит строку Юникода, завершающую значение NULL, которая определяет набор параметров ключа. В настоящее время поддерживаются следующие значения:
| parameterSet | Meaning |
|---|---|
BCRYPT_MLKEM_PARAMETER_SET_512L"512" |
ML-KEM-512, категория безопасности 1. |
BCRYPT_MLKEM_PARAMETER_SET_768L"768" |
ML-KEM-768, категория безопасности 3. |
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" |
ML-KEM-1024, категория безопасности 5. |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_P256L"768-P256" |
Составной ML-KEM-768 и ECDH P256 |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_768_X25519L"768-X25519" |
Составной ML-KEM-768 и кривой25519 |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" |
Составной ML-KEM-1024 и ECDH P384 |
cbKey
Длина ключа буфера в байтах непосредственно после набора параметров. Этот размер является статическим и зависит от используемого формата ключа и набора параметров.
Remarks
BCRYPT_MLKEM_PRIVATE_BLOB (также псевдоним как BCRYPT_MLKEM_DECAPSULATION_BLOB) поддерживает импорт и экспорт стандартных ключей в кодировке байтов ML-KEM decapsulation на FIPS 203. Большой двоичный объект имеет значение BCRYPT_MLKEM_PRIVATE_MAGICdwMagic, а поле ключа содержит ключ в кодировке байтов.
BCRYPT_MLKEM_PUBLIC_BLOB (также псевдоним как BCRYPT_MLKEM_ENCAPSULATION_BLOB) поддерживает импорт и экспорт стандартных байтов, закодированных ML-KEM ключей инкапсулирования на FIPS 203. Большой двоичный объект имеет значение BCRYPT_MLKEM_PUBLIC_MAGICdwMagic, а поле ключа содержит ключ в кодировке байтов.
BCRYPT_MLKEM_PRIVATE_SEED_BLOB поддерживает импорт и экспорт семян ML-KEM. Большой двоичный объект имеет значение dwMagic, а ключевое поле содержит начальное значение BCRYPT_MLKEM_PRIVATE_SEED_MAGIC KEM (определяется как объединение 64-байтов d || z на FIPS 203), поэтому cbKey в настоящее время всегда64.
Размеры байтов ключей в кодировке байтов можно найти в разделе FIPS 203 в таблице 8. Многие вызывающие объекты могут динамически запрашивать необходимые размеры БОЛЬШИХ двоичных объектов с помощью BCryptExportKey с NULLpbOutput.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB поддерживает импорт и экспорт стандартных составных байтов,ML-KEM закрытых ключей на PQ Composite ML-KEM. Большой двоичный объект имеет значение BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGICdwMagic, а поле ключа содержит ключ в кодировке байтов.
BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB поддерживает импорт и экспорт стандартных составных байтов,ML-KEM открытых ключей на PQ Composite ML-KEM. Большой двоичный объект имеет значение BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGICdwMagic, а поле ключа содержит ключ в кодировке байтов.
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB поддерживает импорт и экспорт семян составныхML-KEM. Большой двоичный объект имеет dwMagic-значениеBCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC, а ключевое поле содержит 32-байтовый составной элемент IRTF СоставнойML-KEM начального значения для cfRG Concrete KEMs, поэтому cbKey в настоящее время всегда32.
Requirements
| Requirement | Value |
|---|---|
| Минимальный поддерживаемый клиент | Windows 11 24H2: начинается поддержка ML-KEM. [только классические приложения] |
| минимальный поддерживаемый сервер | Windows Server 2025: начинается поддержка ML-KEM. [только классические приложения] |
| Header | bcrypt.h |