Note
一部の情報は、市販される前に大幅に変更される可能性があるプレリリース製品に関連しています。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。 このトピックで説明する複合機能は、Windows Insider Preview のプレリリース バージョンで使用できます。
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 で終わる Unicode 文字列が含まれています。 次の値が現在サポートされています:
| 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 と curve25519 |
BCRYPT_COMPOSITE_MLKEM_PARAMETER_SET_1024_P384L"1024-P384" |
複合 ML-KEM-1024 および ECDH P384 |
cbKey
parameterSet に直接続くバッファー キーの長さ (バイト単位)。 このサイズは静的であり、使用中のキーの形式とパラメーターセットによって異なります。
Remarks
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 があり、 キー フィールドにはバイトエンコードキーが含まれています。
BCRYPT_MLKEM_PRIVATE_SEED_BLOB では、ML-KEM シードのインポートとエクスポートがサポートされています。 BLOB には dwMagic 値BCRYPT_MLKEM_PRIVATE_SEED_MAGICがあり、キー フィールドには KEM シード (FIPS 203 あたりのd || zの 64 バイト連結として定義) が含まれているため、cbKey は現在常に64。
バイト・エンコード・キーのバイト・サイズは、 FIPS 203 セクション 8 表 3 に記載されています。 多くの呼び出し元は、代わりに BCryptExportKey と NULLpbOutput を使用して、必要な BLOB サイズに動的にクエリを実行できます。
BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB では、 PQ 複合 ML-KEM ごとの標準のバイト エンコード複合ML-KEM 秘密キーのインポートとエクスポートがサポートされます。 BLOB には dwMagic 値 BCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC があり、 キー フィールドにはバイトエンコードキーが含まれています。
BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB では、 PQ 複合 ML-KEM ごとの標準バイト エンコード複合ML-KEM 公開キーのインポートとエクスポートがサポートされます。 BLOB には dwMagic 値 BCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC があり、 キー フィールドにはバイトエンコードキーが含まれています。
BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB では、複合ML-KEM シードのインポートとエクスポートがサポートされています。 BLOB には dwMagic 値 BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_MAGIC があり、 キー フィールドには CFRG コンクリート ハイブリッド KEM ごとに 32 バイト IRTF 複合ML-KEM シードが含まれているため、 cbKey は現在常に 32。
Requirements
| Requirement | Value |
|---|---|
| サポートされる最小クライアント | Windows 11 24H2: ML-KEM のサポートが開始されます。 [デスクトップ アプリのみ] |
| サポートされている最小のサーバー | Windows Server 2025: ML-KEM のサポートが開始されます。 [デスクトップ アプリのみ] |
| Header | bcrypt.h |