

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

# EMV MAC の生成と検証
<a name="use-cases-issuers.generalfunctions.emvmac"></a>

EMV MAC は、EMV 派生キーの入力を使用して MAC になり、結果のデータに対して ISO9797-3 (小売) MAC を実行します。EMV MAC は通常、ブロック解除スクリプトなどの EMV カードにコマンドを送信するために使用されます。

**注記**  
 AWS Payment Cryptography はスクリプトの内容を検証しません。含める特定のコマンドの詳細については、スキームまたはカードマニュアルを参照してください。

詳細については、 API ガイドの[MacAlgorithmEmv](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_MacAlgorithmEmv.html)」を参照してください。

**Topics**
+ [キーを作成する](#use-cases-issuers.generalfunctions.emvmac.setup)
+ [EMV MAC の生成](#use-cases-issuers.generalfunctions.emvmac.generate)

## キーを作成する
<a name="use-cases-issuers.generalfunctions.emvmac.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E2_EMV_MKEY_INTEGRITY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (KCV) などのリクエストパラメータがエコーバックされます。

```
{
        "Key": {
            "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
            "KeyAttributes": {
                "KeyUsage": "TR31_E2_EMV_MKEY_INTEGRITY",
                "KeyClass": "SYMMETRIC_KEY",
                "KeyAlgorithm": "TDES_2KEY",
                "KeyModesOfUse": {
                    "Encrypt": false,
                    "Decrypt": false,
                    "Wrap": false,
                    "Unwrap": false,
                    "Generate": false,
                    "Sign": false,
                    "Verify": false,
                    "DeriveKey": true,
                    "NoRestrictions": false
                }
            },
            "KeyCheckValue": "08D7B4",
            "KeyCheckValueAlgorithm": "ANSI_X9_24",
            "Enabled": true,
            "Exportable": true,
            "KeyState": "CREATE_COMPLETE",
            "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
            "CreateTimestamp": "2024-03-07T06:41:46.648000-07:00",
            "UsageStartTimestamp": "2024-03-07T06:41:46.626000-07:00"
        }
    }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* です。これは次のステップで行います。

## EMV MAC の生成
<a name="use-cases-issuers.generalfunctions.emvmac.generate"></a>

一般的なフローは、バックエンドプロセスが EMV スクリプトを生成し (カードのブロック解除など）、このコマンドを使用して署名し (1 つの特定のカードに固有の 1 回限りのキーを取得）、MAC を返すことです。次に、コマンド \$1 MAC がカードに送信されて適用されます。コマンドをカードに送信することは AWS Payment Cryptography の範囲外です。

**注記**  
 このコマンドは、暗号化されたデータ (PIN など) が送信されない場合のコマンドを対象としています。EMV Encrypt をこのコマンドと組み合わせて、このコマンドを呼び出す前に暗号化されたデータを発行者スクリプトに追加できます。

メッセージデータ  
メッセージデータには、APDU ヘッダーとコマンドが含まれます。これは実装によって異なる場合がありますが、この例はブロック解除 (84 24 00 00 08) の APDU ヘッダーで、その後に ATC (0007) が続き、次に前のトランザクションの ARQC (999E57FD0F47CACE) が続きます。サービスはこのフィールドの内容を検証しません。

セッションキー取得モード  
このフィールドは、セッションキーの生成方法を定義します。EMV\$1COMMON\$1SESSION\$1KEY は新しい実装に一般的に使用されますが、EMV2000 \$1 AMEX \$1 MASTERCARD\$1SESSION\$1KEY \$1 VISA も使用できます。

MajorKeyDerivationMode  
EMV はモード A、B、または C を定義します。モード A が最も一般的であり、 AWS Payment Cryptography は現在モード A またはモード B をサポートしています。

PAN  
アカウント番号。通常はチップフィールド 5A または ISO8583 フィールド 2 で使用できますが、カードシステムから取得することもできます。

PSN  
カードシーケンス番号。使用しない場合は、00 と入力します。

SessionKeyDerivationValue  
これはセッションごとの取得データです。取得スキームに応じて、フィールド 9F26 の最後の ARQC (ApplicationCryptogram) または 9F36 の最後の ATC のいずれかになります。

[Padding] (パディング)  
パディングは自動的に適用され、ISO/IEC 9797-1 パディング方法 2 を使用します。

**Example**  

```
$ aws payment-cryptography-data generate-mac --message-data 84240000080007999E57FD0F47CACE --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --message-data 8424000008999E57FD0F47CACE0007 --generation-attributes EmvMac="{MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber='00',PrimaryAccountNumber='2235521304123282',SessionKeyDerivationMode=EMV_COMMON_SESSION_KEY,SessionKeyDerivationValue={ApplicationCryptogram='999E57FD0F47CACE'}}"
```

```
{
"KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
"KeyCheckValue": "08D7B4",
"Mac":"5652EEDF83EA0D84"
}
```