ハッシュ アルゴリズムと署名アルゴリズム

次のアルゴリズムでは、ハッシュデジタル署名を計算します。 これらの各アルゴリズムは、Microsoft Base/Strong/Enhanced Cryptographic Provider でサポートされています。 これらのアルゴリズムの内部の詳細については、このドキュメントの範囲外です。 その他のソースの一覧については、「暗号化に関するその他のドキュメント」を参照してください。

アルゴリズム 説明
暗号ブロック チェーン (CBC) MAC
Microsoft プロバイダーによって実装されるアルゴリズム (CALG_MAC) の 1 つが、ブロック暗号 メッセージ認証コード (MAC) です。 このメソッドは、基本データをブロック暗号で暗号化し、最後に暗号化されたブロックをハッシュ値として使用します。 MAC の構築に使用される暗号化アルゴリズムは、セッション キーの作成時に指定された暗号化アルゴリズムです。
HMAC
Microsoft プロバイダーによって実装されるアルゴリズム (CALG_HMAC)。 このアルゴリズムでは、非対称キーを使用してハッシュを作成しますが、単純な暗号ブロック チェーン (CBC) MAC アルゴリズムよりも複雑です。 MD5 や SHA-1 など、任意の反復処理された暗号ハッシュ アルゴリズムで使用できます。 詳細については、「HMAC の作成」を参照してください。
MD2、MD4、MD5
これらのハッシュ アルゴリズムは、すべて RSA Data Security, Inc. によって開発されたものであり、順次開発されました。 3 つすべてが 128 ビット ハッシュ値を生成します。 3 つすべてが弱点を持っていることがわかっており、互換性のために必要な場合にのみ使用する必要があります。 新しいコードでは、SHA-2 ファミリのハッシュをお勧めします。
これらのアルゴリズムはよく知られており、暗号に関するあらゆる参考文献で詳細に確認できます。
メッセージ認証コード (MAC)
MAC アルゴリズムは、ハッシュ アルゴリズムに似ていますが、対称 (セッション) キーを使用して計算されます。 ハッシュ値を再計算するには、元のセッション キーが必要です。 再計算されたハッシュ値は、基本データが変更されていないことを確認するために使用されます。 これらのアルゴリズムは、キー付きハッシュ アルゴリズムと呼ばれることもあります。 MAC をサポートしている Microsoft プロバイダーを確認するには、「Microsoft 暗号化サービス プロバイダー」を参照してください。
セキュア ハッシュ アルゴリズム (SHA-1)
このハッシュ アルゴリズムは、米国立標準技術研究所 (NIST) と 米国国家安全保障局 (NSA) によって開発されました。 このアルゴリズムは、DSA (デジタル署名アルゴリズム) または DSS (デジタル署名標準) で使用するために開発されました。 このアルゴリズムでは、160 ビットのハッシュ値が生成されます。 SHA-1 には弱点があることがわかっているため、互換性のために必要な場合にのみ使用する必要があります。 新しいコードでは、SHA-2 ファミリのハッシュをお勧めします。
セキュア ハッシュ アルゴリズム - 2 (SHA-2)
このハッシュ アルゴリズムは、SHA-1 の後継として、米国立標準技術研究所 (NIST) および米国国家安全保障局 (NSA)によって開発されました 。 SHA-224、SHA-256、SHA-384、SHA-512 の 4 つのバリエーションがあり、出力のビット数に従って名前が付けられます。 これらのうち、SHA-256、SHA-384、SHA-512 は Microsoft AES Cryptographic Provider に実装されています。
SSL3 クライアント承認アルゴリズム
このアルゴリズムは、SSL3 クライアント認証に使用されます。 SSL3 プロトコルでは、MD5 ハッシュと SHA ハッシュの連結が RSA 秘密キーで署名されます。 CryptoAPI 2.0 と Microsoft Base および Enhanced Cryptographic Providers では、ハッシュ型の CALG_SSL3_SHAMD5 でこれをサポートしています。 詳細については、「CALG_SSL3_SHAMD5 ハッシュの作成」を参照してください。