

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

# EMV ARQC を検証し、ARPC を生成する
<a name="use-cases-issuers.generalfunctions.arqc"></a>

[ARQC](terminology.md#terms.arqc) (認可リクエスト暗号) は、EMV (チップ) カードによって生成され、トランザクションの詳細と認可されたカードの使用を検証するために使用される暗号文です。カード、ターミナル、トランザクション自体からのデータが組み込まれています。

バックエンドの検証時に、同じ入力が AWS Payment Cryptography に提供され、暗号文が内部で再作成され、トランザクションで指定された値と比較されます。この意味では、MAC に似ています。[EMV 4.4 Book 2 ](https://www.emvco.com/specifications/?post_id=80377)は、この関数の 3 つの側面を定義します。1 回限りのトランザクションキーを生成するキー取得メソッド (共通セッションキー - CSK)、最小ペイロード、およびレスポンス (ARPC) を生成するメソッドです。

 個々のカードスキームでは、組み込む追加のトランザクションフィールドを指定するか、それらのフィールドが表示される順序を指定できます。その他の (一般的に廃止された) スキーム固有の派生スキームも存在し、このドキュメントの他の箇所で説明されています。

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

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

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS,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_E0_EMV_MKEY_APP_CRYPTOGRAMS",
                        "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"
                }
            }
```

*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* など、キー`KeyArn`を表す を書き留めます。これは次のステップで行います。

## ARQC の生成
<a name="use-cases-issuers.generalfunctions.arqc.generate"></a>

ARQC は EMV カードによってのみ生成されます。そのため、 AWS Payment Cryptography にはそのようなペイロードを生成する機能はありません。テスト目的では、適切なペイロードと、さまざまなスキームによって一般的に提供される既知の値を生成できる多数のライブラリがオンラインで利用できます。

## ARQC を検証する
<a name="use-cases-issuers.generalfunctions.arqc.verify"></a>

**Example**  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。ARPC (レスポンス) はオプションで提供でき、ARQC の検証後にレスポンスに含めることができます。  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram 61EDCC708B4C97B4 --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk --major-key-derivation-mode EMV_OPTION_A --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B1F2201030000000000000000000000000000000000000000000000000000008000000000000000 --session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", "PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}' --auth-response-attributes='{"ArpcMethod2":{"CardStatusUpdate":"12345678"}}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
    "KeyCheckValue": "08D7B4",
    "AuthResponseValue":"2263AC85"
}
```