注释
某些信息与预发行产品有关,该产品在商业发布之前可能会进行大幅修改。 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 具有 dwMagic 值BCRYPT_MLKEM_PRIVATE_SEED_MAGIC
,键字段包含 KEM 种子(定义为每个 FIPS 203 的 d || z
64 字节串联),因此 cbKey 当前始终64
是。
BCRYPT_MLKEM_PRIVATE_BLOB (也称为别名为 BCRYPT_MLKEM_DECAPSULATION_BLOB)支持按 FIPS 203 导入和导出标准字节编码的 ML-KEM 解码密钥。 Blob 具有 dwMagic 值 BCRYPT_MLKEM_PRIVATE_MAGIC
, 密钥 字段包含字节编码的密钥。
BCRYPT_MLKEM_PUBLIC_BLOB (也称为 别名为BCRYPT_MLKEM_ENCAPSULATION_BLOB)支持按 FIPS 203 导入和导出标准字节编码 ML-KEM 封装密钥。 Blob 具有 dwMagic 值 BCRYPT_MLKEM_PUBLIC_MAGIC
, 密钥 字段包含字节编码的密钥。
字节编码密钥的字节大小可在 FIPS 203 第 8 节表 3 中找到。 许多调用方可以使用带 pbOutput 的 BCryptExportKeyNULL
动态查询所需的 Blob 大小。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 预览体验成员预览版 [仅限桌面应用] |
支持的最低服务器 | Windows 预览体验成员预览版 [仅限桌面应用] |
标头 | bcrypt.h |