次の方法で共有


CNG アルゴリズムの擬似ハンドル

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-4FIPS 198-1
BCRYPT_HMAC_SHA256_ALG_HANDLE
0x000000B1
256 ビットのセキュア ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 FIPS 180-4FIPS 198-1
BCRYPT_HMAC_SHA384_ALG_HANDLE
0x000000C1
384 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 FIPS 180-4FIPS 198-1
BCRYPT_HMAC_SHA512_ALG_HANDLE
0x000000D1
512 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 FIPS 180-4FIPS 198-1
BCRYPT_HMAC_MD2_ALG_HANDLE
0x00000121
MD2 ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 RFC 1319RFC 2104
BCRYPT_HMAC_MD4_ALG_HANDLE
0x00000131
MD4 ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 RFC 1320RFC 2104
BCRYPT_HMAC_MD5_ALG_HANDLE
0x00000091
MD4 ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 RFC 1321RFC 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 202FIPS 198-1
BCRYPT_HMAC_SHA3_384_ALG_HANDLE
0x000003F1
SHA3 384 ビットのセキュリティで保護されたハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 FIPS 202FIPS 198-1
BCRYPT_HMAC_SHA3_512_ALG_HANDLE
0x00000401
SHA3 512 ビットセキュア ハッシュ アルゴリズムを使用したハッシュ ベースのメッセージ認証コードのハンドル。 FIPS 202FIPS 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-67SP 800-38A
BCRYPT_3DES_ECB_ALG_HANDLE
0x00000151
電子コードブック モード (ECB) を使用したトリプル データ暗号化標準アルゴリズムのハンドル。 SP 800-67SP 800-38A
BCRYPT_3DES_CFB_ALG_HANDLE
0x00000161
暗号フィードバック モード (CFB) を使用したトリプル データ暗号化標準アルゴリズムのハンドル。 SP 800-67SP 800-38A
BCRYPT_3DES_112_CBC_ALG_HANDLE
0x00000171
暗号ブロック チェーン モード (CBC) を使用した 112 ビットトリプル データ暗号化標準アルゴリズムのハンドル。 SP 800-67SP 800-38A
BCRYPT_3DES_112_ECB_ALG_HANDLE
0x00000181
電子コードブック モード (ECB) を使用した 112 ビットのトリプル データ暗号化標準アルゴリズムのハンドル。 SP 800-67SP 800-38A
BCRYPT_3DES_112_CFB_ALG_HANDLE
0x00000191
暗号フィードバック モード (CFB) を使用した 112 ビットのトリプル データ暗号化標準アルゴリズムのハンドル。 SP 800-67SP 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-3FIPS 81
BCRYPT_DES_ECB_ALG_HANDLE
0x00000201
電子コードブック モード (ECB) を使用した Data Encryption Standard (DES) アルゴリズムのハンドル。 FIPS 46-3FIPS 81
BCRYPT_DES_CFB_ALG_HANDLE
0x00000211
暗号フィードバック モード (CFB) を使用した Data Encryption Standard (DES) アルゴリズムのハンドル。 FIPS 46-3FIPS 81

備考

これらのハンドルは、アルゴリズム ハンドルを必要とするあらゆる状況で使用できます。 ただし、アルゴリズム ハンドルが共有され、変更できないため、 BCryptSetProperty の呼び出しは失敗します。 さらに、カーネル モードの IRQL=DISPATCH では、これらのハンドルを使用できません。