BCRYPT_MLKEM_KEY_BLOB结构

注释

某些信息与预发行产品有关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。 本主题中所述的功能在 Windows Insider Preview的预发行版本中提供。

BCRYPT_MLKEM_KEY_BLOB结构用作内存中 ML-KEM 公钥(字节编码封装密钥)或私钥BLOB 的标头。

语法

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;

领域

dwMagic

dwMagic 字段是一个 4 字节值,指示正在使用的键的格式。 定义了以下值:

价值 含义
BCRYPT_MLKEM_PUBLIC_MAGIC0x504B4C4D 结构表示公钥。
BCRYPT_MLKEM_PRIVATE_MAGIC0x524B4C4D 结构表示扩展的私钥。
BCRYPT_MLKEM_PRIVATE_SEED_MAGIC0x534B4C4D 结构表示私有种子。

cbParameterSet

缓冲区 参数集 的长度(以字节为单位)紧跟在结构之后。 此缓冲区包含一个以 null 结尾的 Unicode 字符串,用于标识密钥的参数集。 目前支持以下值(每个 FIPS 203):

parameterSet cbParameterSet 含义
BCRYPT_MLKEM_PARAMETER_SET_512L"512" 8 ML-KEM-512,安全类别 1。
BCRYPT_MLKEM_PARAMETER_SET_768L"768" 8 ML-KEM-768,安全类别 3。
BCRYPT_MLKEM_PARAMETER_SET_1024L"1024" 10 ML-KEM-1024,安全类别 5。

cbKey

缓冲区 的长度(以字节为单位)直接遵循 parameterSet。 此大小是静态的,取决于所使用的密钥格式和参数集。

注解

BCRYPT_MLKEM_PRIVATE_SEED_BLOB 支持 ML-KEM 种子的进出口。 Blob 具有 dwMagicBCRYPT_MLKEM_PRIVATE_SEED_MAGIC字段包含 KEM 种子(定义为每个 FIPS 203d || z 64 字节串联),因此 cbKey 当前始终64是。

BCRYPT_MLKEM_PRIVATE_BLOB (也称为别名为 BCRYPT_MLKEM_DECAPSULATION_BLOB)支持按 FIPS 203 导入和导出标准字节编码的 ML-KEM 解码密钥。 Blob 具有 dwMagicBCRYPT_MLKEM_PRIVATE_MAGIC密钥 字段包含字节编码的密钥。

BCRYPT_MLKEM_PUBLIC_BLOB (也称为 别名为BCRYPT_MLKEM_ENCAPSULATION_BLOB)支持按 FIPS 203 导入和导出标准字节编码 ML-KEM 封装密钥。 Blob 具有 dwMagicBCRYPT_MLKEM_PUBLIC_MAGIC密钥 字段包含字节编码的密钥。

字节编码密钥的字节大小可在 FIPS 203 第 8 节表 3 中找到。 许多调用方可以使用带 pbOutputBCryptExportKeyNULL 动态查询所需的 Blob 大小。

要求

要求 价值
最低支持的客户端 Windows 预览体验成员预览版 [仅限桌面应用]
支持的最低服务器 Windows 预览体验成员预览版 [仅限桌面应用]
标头 bcrypt.h

另请参阅

BCryptGenerateKeyPair

BCryptImportKeyPair

BCryptFinalizeKeyPair

BCryptExportKey

BCryptGetProperty

BCryptSetProperty

BCryptEncapsulate

BCryptDecapsulate