Windows 10 以降では、CNG (Cryptography API: Next Generation) は暗号化操作用の定義済みのアルゴリズム ハンドルを提供します。 これらのアルゴリズムは、ハッシュ関数、暗号化アルゴリズム、デジタル署名、キー派生関数などの一般的な暗号アルゴリズムのハンドルを手動で作成する必要がなくなるため、開発を簡略化します。
ハッシュおよびメッセージ認証コード (MAC) アルゴリズム
| 定数 | 形容 | 標準 |
|---|---|---|
|
BCRYPT_MD2_ALG_HANDLE 0x00000001 |
MD2 ハッシュ アルゴリズムのハンドル。 | RFC 1319 |
|
BCRYPT_MD4_ALG_HANDLE 0x00000011 |
MD4 ハッシュ アルゴリズムのハンドル。 | RFC 1320 |
|
BCRYPT_MD5_ALG_HANDLE 0x00000021 |
MD5 ハッシュ アルゴリズムのハンドル。 | RFC 1321 |
|
BCRYPT_SHA1_ALG_HANDLE 0x00000031 |
160 ビットセキュア ハッシュ アルゴリズムのハンドル。 | FIPS 180-4 |
|
BCRYPT_SHA256_ALG_HANDLE 0x00000041 |
256 ビットセキュア ハッシュ アルゴリズムのハンドル。 | FIPS 180-4 |
|
BCRYPT_SHA384_ALG_HANDLE 0x00000051 |
384 ビットセキュア ハッシュ アルゴリズムのハンドル。 | FIPS 180-4 |
|
BCRYPT_SHA512_ALG_HANDLE 0x00000061 |
512 ビットのセキュア ハッシュ アルゴリズムのハンドル。 | FIPS 180-4 |
|
BCRYPT_HMAC_SHA1_ALG_HANDLE 0x000000A1 |
160 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | FIPS 180-4、 FIPS 198-1 |
|
BCRYPT_HMAC_SHA256_ALG_HANDLE 0x000000B1 |
256 ビットのセキュア ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | FIPS 180-4、 FIPS 198-1 |
|
BCRYPT_HMAC_SHA384_ALG_HANDLE 0x000000C1 |
384 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | FIPS 180-4、 FIPS 198-1 |
|
BCRYPT_HMAC_SHA512_ALG_HANDLE 0x000000D1 |
512 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | FIPS 180-4、 FIPS 198-1 |
|
BCRYPT_HMAC_MD2_ALG_HANDLE 0x00000121 |
MD2 ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | RFC 1319、 RFC 2104 |
|
BCRYPT_HMAC_MD4_ALG_HANDLE 0x00000131 |
MD4 ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | RFC 1320、 RFC 2104 |
|
BCRYPT_HMAC_MD5_ALG_HANDLE 0x00000091 |
MD4 ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | RFC 1321、 RFC 2104 |
| Windows 11 バージョン 23H2 で使用可能 | ||
|
BCRYPT_SHA3_256_ALG_HANDLE 0x000003B1 |
SHA3 256 ビットセキュア ハッシュ アルゴリズムのハンドル。 | FIPS 202 |
|
BCRYPT_SHA3_384_ALG_HANDLE 0x000003C1 |
SHA3 384 ビットセキュア ハッシュ アルゴリズムのハンドル。 | FIPS 202 |
|
BCRYPT_SHA3_512_ALG_HANDLE 0x000003D1 |
SHA3 512 ビットセキュア ハッシュ アルゴリズムのハンドル。 | FIPS 202 |
|
BCRYPT_HMAC_SHA3_256_ALG_HANDLE 0x000003E1 |
SHA3 256 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | FIPS 202、 FIPS 198-1 |
|
BCRYPT_HMAC_SHA3_384_ALG_HANDLE 0x000003F1 |
SHA3 384 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | FIPS 202、 FIPS 198-1 |
|
BCRYPT_HMAC_SHA3_512_ALG_HANDLE 0x00000401 |
SHA3 512 ビットセキュア ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 | FIPS 202、 FIPS 198-1 |
|
BCRYPT_CSHAKE128_ALG_HANDLE 0x00000411 |
SHA3 派生 cSHAKE 128 ビット XOF (拡張出力関数) ハッシュ アルゴリズムのハンドル。 | SP 800-185 |
|
BCRYPT_CSHAKE256_ALG_HANDLE 0x00000421 |
SHA3 派生 cSHAKE 256 ビット XOF (拡張出力関数) ハッシュ アルゴリズムのハンドル。 | SP 800-185 |
|
BCRYPT_KMAC128_ALG_HANDLE 0x00000431 |
cSHAKE128 上に構築された SHA3 派生 Keccak メッセージ認証コード (KMAC) のハンドル。 | SP 800-185 |
|
BCRYPT_KMAC256_ALG_HANDLE 0x00000441 |
cSHAKE256 上に構築された SHA3 派生 Keccak メッセージ認証コード (KMAC) のハンドル。 | SP 800-185 |
PQ デジタル署名アルゴリズム
注
このセクションの PQDSA ハンドルは、市販される前に大幅に変更できるプレリリース製品に関連しています。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。 このセクションで説明する機能は、 Windows Insider Preview のプレリリース バージョンで利用できます。
| 定数 | 形容 | 標準 |
|---|---|---|
| BCRYPT_LMS_ALG_HANDLE | Leighton-Micali Hash-Based 署名 (LMS) アルゴリズムへのハンドル。 | RFC 8554 |
| BCRYPT_MLDSA_ALG_HANDLE | Module-Lattice-Based Digital Signature Algorithm (ML-DSA) へのハンドル。 | FIPS 204 |
| BCRYPT_SLHDSA_ALG_HANDLE | ステートレス ハッシュ ベースのデジタル署名アルゴリズム (SLH-DSA) へのハンドル。 | FIPS 205 |
| BCRYPT_XMSS_ALG_HANDLE | eXtended Merkle Signature Scheme (XMSS) ステートフル ハッシュ ベースアルゴリズムへのハンドル。 | RFC 8391 |
ストリーム暗号アルゴリズム
| 定数 | 形容 | 標準 |
|---|---|---|
|
BCRYPT_RC4_ALG_HANDLE 0x00000071 |
RC4 ストリーム暗号アルゴリズムのハンドル。 | 各種 |
乱数ジェネレーター アルゴリズム
| 定数 | 形容 | 標準 |
|---|---|---|
|
BCRYPT_RNG_ALG_HANDLE 0x00000081 |
乱数ジェネレーター アルゴリズムのハンドル。 | Windows 10 以降: 使用される RNG アルゴリズムは、 SP 800-90A で定義されている AES CTR_DRBGです。 |
キー派生関数 (KDF) アルゴリズム
| 定数 | 形容 |
|---|---|
|
BCRYPT_CAPI_KDF_ALG_HANDLE 0x00000321 |
Crypto API (CAPI) キー派生関数アルゴリズムへのハンドル。 BCryptKeyDerivation 関数と NCryptKeyDerivation 関数で使用されます。 |
|
BCRYPT_PBKDF2_ALG_HANDLE 0x00000331 |
パスワード ベースのキー派生関数 2 (PBKDF2) アルゴリズムへのハンドル。 BCryptKeyDerivation 関数と NCryptKeyDerivation 関数で使用されます。 |
|
BCRYPT_SP800108_CTR_HMAC_ALG_HANDLE 0x00000341 |
カウンター モードのハッシュ ベースのメッセージ認証コード (HMAC) キー派生関数アルゴリズムへのハンドル。 BCryptKeyDerivation 関数と NCryptKeyDerivation 関数で使用されます。 |
|
BCRYPT_SP80056A_CONCAT_ALG_HANDLE 0x00000351 |
SP800-56A キー派生関数アルゴリズムのハンドル。 BCryptKeyDerivation 関数と NCryptKeyDerivation 関数で使用されます。 |
|
BCRYPT_HKDF_ALG_HANDLE 0x00000391 |
HMAC ベースの抽出と展開のキー派生関数のハンドル。 BCryptKeyDerivation 関数と NCryptKeyDerivation 関数で使用されます。 |
キー カプセル化メカニズム (KEM) アルゴリズム
注
このセクションの ML-KEM ハンドルは、市販される前に大幅に変更できるプレリリース製品に関連しています。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。 このセクションで説明する機能は、 Windows Insider Preview のプレリリース バージョンで利用できます。
| 定数 | 形容 | 標準 |
|---|---|---|
| BCRYPT_MLKEM_ALG_HANDLE | モジュールLattice-Based キー カプセル化メカニズム (ML-KEM) アルゴリズムへのハンドル。 | FIPS 203 |
非対称アルゴリズム
| 定数 | 形容 | 標準 |
|---|---|---|
|
BCRYPT_DH_ALG_HANDLE 0x00000281 |
Diffie-Hellman キー交換アルゴリズムへのハンドル。 | PKCS #3 |
|
BCRYPT_DSA_ALG_HANDLE 0x000002D1 |
デジタル署名アルゴリズム (DSA) デジタル署名アルゴリズムのハンドル。 |
FIPS 186-2 Windows 8 以降: このアルゴリズムは FIPS 186-3 をサポートしています。 1024 ビット以下のキーは FIPS 186-2 に準拠し、1024 より大きいキーは FIPS 186-3 に準拠します。 |
|
BCRYPT_ECDH_ALG_HANDLE 0x00000291 |
キー交換アルゴリズム Diffie-Hellman 汎用素楕円曲線のハンドル。 | SP 800-56A |
|
BCRYPT_ECDH_P256_ALG_HANDLE 0x000002A1 |
キー交換アルゴリズム Diffie-Hellman 256 ビット素楕円曲線へのハンドル。 | SP 800-56A |
|
BCRYPT_ECDH_P384_ALG_HANDLE 0x000002B1 |
キー交換アルゴリズム Diffie-Hellman 384 ビット素楕円曲線へのハンドル。 | SP 800-56A |
|
BCRYPT_ECDH_P521_ALG_HANDLE 0x000002C1 |
キー交換アルゴリズム Diffie-Hellman 521 ビット素楕円曲線へのハンドル。 | SP 800-56A |
|
BCRYPT_ECDSA_ALG_HANDLE 0x000000F1 |
一般的な素楕円曲線デジタル署名アルゴリズムのハンドル。 | ANSI X9.62 |
|
BCRYPT_ECDSA_P256_ALG_HANDLE 0x000002E1 |
256 ビットの素数楕円曲線デジタル署名アルゴリズムのハンドル。 | FIPS 186-2、X9.62 |
|
BCRYPT_ECDSA_P384_ALG_HANDLE 0x000002F1 |
384 ビットの素数楕円曲線デジタル署名アルゴリズムのハンドル。 | FIPS 186-2、X9.62 |
|
BCRYPT_ECDSA_P521_ALG_HANDLE 0x00000301 |
521 ビットの素数楕円曲線デジタル署名アルゴリズムのハンドル。 | FIPS 186-2、X9.62 |
|
BCRYPT_RSA_ALG_HANDLE 0x000000E1 |
RSA 公開キー アルゴリズムへのハンドル。 | PKCS #1 v1.5 および v2.0 |
|
BCRYPT_RSA_SIGN_ALG_HANDLE 0x00000311 |
RSA 署名アルゴリズムへのハンドル。 このアルゴリズムは現在サポートされていません。 BCRYPT_RSA_ALG_HANDLE アルゴリズムを使用して、RSA 署名操作を実行できます。 | PKCS #1 v1.5 および v2.0。 |
暗号と暗号ベースのメッセージ認証コード アルゴリズムをブロックする
| 定数 | 形容 | 標準 |
|---|---|---|
|
BCRYPT_AES_CMAC_ALG_HANDLE 0x00000101 |
Advanced Encryption Standard (AES) 暗号ベースのメッセージ認証コード (CMAC) 対称暗号化アルゴリズムのハンドル。 | SP 800-38B |
|
BCRYPT_AES_GMAC_ALG_HANDLE 0x00000111 |
Advanced Encryption Standard (AES) Galois メッセージ認証コード (GMAC) 対称暗号化アルゴリズムのハンドル。 SP800-38D | |
|
BCRYPT_3DES_CBC_ALG_HANDLE 0x00000141 |
暗号ブロック チェーン モード (CBC) を使用したトリプル データ暗号化標準アルゴリズムのハンドル。 | SP 800-67、 SP 800-38A |
|
BCRYPT_3DES_ECB_ALG_HANDLE 0x00000151 |
電子コードブック モード (ECB) を使用したトリプル データ暗号化標準アルゴリズムのハンドル。 | SP 800-67、 SP 800-38A |
|
BCRYPT_3DES_CFB_ALG_HANDLE 0x00000161 |
暗号フィードバック モード (CFB) を使用したトリプル データ暗号化標準アルゴリズムのハンドル。 | SP 800-67、 SP 800-38A |
|
BCRYPT_3DES_112_CBC_ALG_HANDLE 0x00000171 |
暗号ブロック チェーン モード (CBC) を使用した 112 ビットトリプル データ暗号化標準アルゴリズムのハンドル。 | SP 800-67、 SP 800-38A |
|
BCRYPT_3DES_112_ECB_ALG_HANDLE 0x00000181 |
電子コードブック モード (ECB) を使用した 112 ビットのトリプル データ暗号化標準アルゴリズムのハンドル。 | SP 800-67、 SP 800-38A |
|
BCRYPT_3DES_112_CFB_ALG_HANDLE 0x00000191 |
暗号フィードバック モード (CFB) を使用した 112 ビットのトリプル データ暗号化標準アルゴリズムのハンドル。 | SP 800-67、 SP 800-38A |
|
BCRYPT_AES_CBC_ALG_HANDLE 0x000001A1 |
暗号ブロック チェーン モード (CBC) を使用した Advanced Encryption Standard (AES) アルゴリズムのハンドル。 | FIPS 197 |
|
BCRYPT_AES_ECB_ALG_HANDLE 0x000001B1 |
電子コードブック モード (ECB) を使用した Advanced Encryption Standard (AES) アルゴリズムのハンドル。 | FIPS 197 |
|
BCRYPT_AES_CFB_ALG_HANDLE 0x000001C1 |
暗号フィードバック モード (CFB) を使用した Advanced Encryption Standard (AES) アルゴリズムのハンドル。 | FIPS 197 |
|
BCRYPT_AES_CCM_ALG_HANDLE 0x000001D1 |
CBC-MAC モード (CCM) でカウンターを使用する Advanced Encryption Standard (AES) アルゴリズムのハンドル。 | FIPS 197 |
|
BCRYPT_AES_GCM_ALG_HANDLE 0x000001E1 |
Galois カウンター モード (GCM) を使用した Advanced Encryption Standard (AES) アルゴリズムのハンドル。 | FIPS 197 |
|
BCRYPT_DES_CBC_ALG_HANDLE 0x000001F1 |
暗号ブロック チェーン モード (GCM) を使用した Data Encryption Standard (DES) アルゴリズムのハンドル。 | FIPS 46-3、 FIPS 81 |
|
BCRYPT_DES_ECB_ALG_HANDLE 0x00000201 |
電子コードブック モード (ECB) を使用した Data Encryption Standard (DES) アルゴリズムのハンドル。 | FIPS 46-3、 FIPS 81 |
|
BCRYPT_DES_CFB_ALG_HANDLE 0x00000211 |
暗号フィードバック モード (CFB) を使用した Data Encryption Standard (DES) アルゴリズムのハンドル。 | FIPS 46-3、 FIPS 81 |
備考
これらのハンドルは、アルゴリズム ハンドルを必要とするあらゆる状況で使用できます。 ただし、アルゴリズム ハンドルが共有され、変更できないため、 BCryptSetProperty の呼び出しは失敗します。 さらに、カーネル モードの IRQL=DISPATCH では、これらのハンドルを使用できません。