

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# MAC の生成と検証
<a name="crypto-ops-mac"></a>

メッセージ認証コード (MAC) は通常、メッセージの完全性 (変更されているかどうか) を認証するために使用されます。HMAC (ハッシュベースのメッセージ認証コード）、CBC-MAC、CMAC (暗号ベースのメッセージ認証コード) などの暗号化ハッシュは、暗号化を利用して MAC の送信者をさらに保証します。HMAC はハッシュ関数をベースにしていますが、CMAC はブロック暗号に基づいています。このサービスは、CBC-MAC のタイプである ISO9797 アルゴリズム 1 および 3 もサポートしています。 MACs 

すべての MAC アルゴリズムは、暗号化ハッシュ関数と共有シークレットキーを組み合わせます。これらはメッセージとシークレットキー ( キーのキーマテリアルなど) を使用して、一意のタグまたはmacを返します。メッセージの文字が 1 字でも変更されている場合、またはシークレットキーが同一ではない場合、結果として得られるタグはまったく異なるものになります。暗号化MAC は、シークレットキーをリクエストすることによって信頼性も提供するため、シークレットキーがなければ、同一の HMAC タグを生成することは不可能となります。Cryptographic MAC は対称署名と呼ばれることもあります。これらはデジタル署名のように機能しますが、署名と検証の両方に単一のキーを使用するからです。

AWS Payment Cryptography は、いくつかのタイプの MACs をサポートしています。

**ISO9797 アルゴリズム 1**  
ISO9797\$1ALGORITHM1 `KeyUsage`の で表されます。フィールドがブロックサイズの倍数でない場合 (TDES では 8 バイト/16 進数文字、AES では 16 バイト/32 文字）、 AWS Payment Cryptography は ISO9797 パディング方法 1 を自動的に適用します。他のパディング方法が必要な場合は、サービスを呼び出す前に適用できます。

**ISO9797 アルゴリズム 3 (リテールマック)**  
ISO9797\$1ALGORITHM3 `KeyUsage`の で表されます。アルゴリズム 1 と同じパディングルールが適用されます

**ISO9797 アルゴリズム 5 (CMAC)**  
TR31\$1M6\$1ISO\$19797\$15\$1CMAC\$1KEYの `KeyUsage` で示されます。

**HMAC**  
TR31\$1M7\$1HMAC\$1KEY including HMAC\$1SHA224、HMAC\$1SHA256、HMAC\$1SHA384、HMAC\$1SHA512の `KeyUsage` で示されます。

**AS2805.4.1 MAC**  
TR31\$1M0\$1ISO\$116609\$1MAC\$1KEY `KeyUsage`の で表されます。AS2805 の詳細については、「」を参照してください。 [AS2805](advanced.regional.as2805.md)

**DUKPT MAC**  
DUKPT MAC は通常、支払いターミナルとの間で送受信されるメッセージのソースとペイロードを確認するために使用されます。DUKPT 取得手法を使用してキーを取得し、MAC を実行します。このオプションで使用されるキーは、TR31\$1B0\$1BASE\$1DERIVATION\$1KEY `KeyUsage`の によって示されます。

**EMV MAC**  
EMV MAC は通常、EMV ドキュメントでは整合性キーと呼ばれます。EMV 導出手法を使用してキーを取得し、内部的に ISO9797\$1ALGORITHM3 を使用します。通常、発行者スクリプトをチップカードに送信して再プログラミングするために使用されます。このオプションで使用されるキーは、TR31\$1E2\$1EMV\$1MKEY\$1INTEGRITY `KeyUsage`の で示されます。スクリプトを送信し、オフラインピンを更新する場合は、これらのオペレーションの両方を実行する [GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange) を参照してください。

**Topics**
+ [MAC の生成](generate-mac.md)
+ [MAC の検証](verify-mac.md)