BCRYPT_MLKEM_KEY_BLOB構造体

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 には dwMagicBCRYPT_MLKEM_PRIVATE_MAGIC があり、 キー フィールドにはバイトエンコードキーが含まれています。

BCRYPT_MLKEM_PUBLIC_BLOB ( BCRYPT_MLKEM_ENCAPSULATION_BLOB ともエイリアス化) では、 FIPS 203 ごとの標準バイト エンコード ML-KEM カプセル化キーのインポートとエクスポートがサポートされます。 BLOB には dwMagicBCRYPT_MLKEM_PUBLIC_MAGIC があり、 キー フィールドにはバイトエンコードキーが含まれています。

BCRYPT_MLKEM_PRIVATE_SEED_BLOB では、ML-KEM シードのインポートとエクスポートがサポートされています。 BLOB には dwMagicBCRYPT_MLKEM_PRIVATE_SEED_MAGICがあり、キー フィールドには KEM シード (FIPS 203 あたりのd || zの 64 バイト連結として定義) が含まれているため、cbKey は現在常に64

バイト・エンコード・キーのバイト・サイズは、 FIPS 203 セクション 8 表 3 に記載されています。 多くの呼び出し元は、代わりに BCryptExportKeyNULLpbOutput を使用して、必要な BLOB サイズに動的にクエリを実行できます。

BCRYPT_COMPOSITE_MLKEM_PRIVATE_BLOB では、 PQ 複合 ML-KEM ごとの標準のバイト エンコード複合ML-KEM 秘密キーのインポートとエクスポートがサポートされます。 BLOB には dwMagicBCRYPT_COMPOSITE_MLKEM_PRIVATE_MAGIC があり、 キー フィールドにはバイトエンコードキーが含まれています。

BCRYPT_COMPOSITE_MLKEM_PUBLIC_BLOB では、 PQ 複合 ML-KEM ごとの標準バイト エンコード複合ML-KEM 公開キーのインポートとエクスポートがサポートされます。 BLOB には dwMagicBCRYPT_COMPOSITE_MLKEM_PUBLIC_MAGIC があり、 キー フィールドにはバイトエンコードキーが含まれています。

BCRYPT_COMPOSITE_MLKEM_PRIVATE_IRTF_SEED_BLOB では、複合ML-KEM シードのインポートとエクスポートがサポートされています。 BLOB には dwMagicBCRYPT_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

こちらも参照ください

BCryptGenerateKeyPair

BCryptImportKeyPair

BCryptFinalizeKeyPair

BCryptExportKey

BCryptGetProperty

BCryptSetProperty

BCryptEncapsulate

BCryptDecapsulate