

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

# 認証リクエスト (ARQC) 暗号文の検証
<a name="data-operations.verifyauthrequestcryptogram"></a>

 認証リクエスト暗号検証 API は [ARQC](terminology.md#terms.arqc) の検証に使用されます。ARQC の生成は AWS Payment Cryptography の範囲外であり、通常はトランザクション認可時に EMV チップカード (またはモバイルウォレットなどのデジタル対応物) 上で行われます。ARQC は各取引に固有のもので、カードの有効性を暗号的に示すとともに、取引データが現在の (予想される) 取引と完全に一致することを保証することを目的としています。

AWS Payment Cryptography には、ARQC を検証し、[EMV 4.4 Book 2 で定義されているものや Visa ](https://www.emvco.com/specifications/?post_id=80377)や Mastercard で使用されるその他のスキームなど、オプションの ARPC 値を生成するためのさまざまなオプションが用意されています。使用可能なすべてのオプションの完全なリストについては、 [API ガイド](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyCardValidationData.html)の VerifyCardValidationData セクションを参照してください。

ARQC 暗号文には通常、次の入力が必要です (ただし、実装によって異なる場合があります）。
+ [PAN](terminology.md#terms.pan) - プライマリーアカウント番号フィールドで指定
+ [PAN シーケンス番号 (PSN)](terminology.md#terms.psn) - PanSequenceNumber フィールドで指定
+ 共通セッションキー (CSK) などのキー派生方法 - SessionKeyDerivationAttributes で指定
+ マスターキー派生モード (EMV オプション A など) - メジャーキー派生モードで指定
+ トランザクションデータ - TransactionData フィールドで指定される、さまざまなトランザクション、ターミナル、カードデータの文字列 (金額、日付など)
+ [発行者マスターキー](terminology.md#terms.imk) - 個々のトランザクションを保護するために使用される暗号文 (AC) キーの生成に使用されるマスターキーで、KeyIdentifier フィールドで指定されます。

**Topics**
+ [トランザクションデータの作成](#w2aac15c25c13)
+ [トランザクションデータパディング](#w2aac15c25c15)
+ [例](#w2aac15c25c17)

## トランザクションデータの作成
<a name="w2aac15c25c13"></a>

トランザクションデータフィールドの正確な内容 (および順序) は実装とネットワークスキームによって異なりますが、推奨される最小フィールド (および連結シーケンス) は [EMV 4.4 Book 2 Section 8.1.1 - Data Selection](https://www.emvco.com/specifications/?post_id=80377) で定義されています。最初の 3 つのフィールドが金額 (17.00)、その他の金額 (0.00)、購入国の場合、トランザクションデータは次のように始まります。
+ 000000001700 - 金額 - 12 桁の小数点以下 2 桁を暗示します
+ 000000000000 - その他の金額 - 12 桁の数字は 2 桁の十進法で表記されます
+ 0124 - 4 桁の国コード 
+  アウトプット (一部) トランザクションデータ (一部) - 0000000017000000000000000124 

## トランザクションデータパディング
<a name="w2aac15c25c15"></a>

トランザクションデータは、サービスに送信する前にパディングする必要があります。ほとんどのスキームでは、ISO 9797 メソッド 2 のパディングを使用します。このパディングでは、フィールドが暗号化ブロックサイズの倍数になるまで、16 進数文字列に 16 進数 80 の後に 00 が続きます。TDES の場合は 8 バイトまたは 16 文字、AES の場合は 16 バイトまたは 32 文字です。代替方法 (方法 1) はそれほど一般的ではなく、パディング文字として 00 だけを使用します。

### ISO 9797 メソッド 1: パディング
<a name="w2aac15c25c15b5"></a>

 パディングなし: 00000000170000000000000008400080008000084016051700000000093800000B03011203 (74 文字または 37 バイト) 

 パディング付き: 00000000170000000000000008400080008000084016051700000000093800000B03011203 **000000** (80 文字または 40 バイト) 

### ISO 9797 メソッド 2: パディング
<a name="w2aac15c25c15b7"></a>

 パディングなし:ing.17000000084000800080000840160517923093800000B1F220103000000 (80 文字または 40 バイト) 

 パディング付き:17000000084000800080000840160517093800000B1F220103000000 **80000000** (88 文字または 44 バイト) 

## 例
<a name="w2aac15c25c17"></a>

### VISA CVN (10)
<a name="w2aac15c25c17b3"></a>

**Example**  
この例では、Visa CVN10 を使用して生成された ARQC の検証を行います。  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。ARCQ (認可リクエスト暗号) が検証されない場合、http/400 レスポンスが返されます。  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram D791093C8A921769 \
--key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
--major-key-derivation-mode EMV_OPTION_A \ 
--transaction-data 00000000170000000000000008400080008000084016051700000000093800000B03011203000000 \
--session-key-derivation-attributes='{"Visa":{"PanSequenceNumber":"01" \ 
,"PrimaryAccountNumber":"9137631040001422"}}'
```

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

### ビザ CVN18 とビザ CVN22
<a name="w2aac15c25c17b5"></a>

**Example**  
この例では、Visa CVN18 または CVN22 を使用して生成された ARQC を検証します。CVN18 と CVN22 の暗号化オペレーションは同じですが、トランザクションデータに含まれるデータは異なります。CVN10 と比較すると、同じ入力でもまったく異なる暗号文が生成されます。  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。ARCQ が検証されていない場合、http/400 が返されます。  

```
$ 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 00000000170000000000000008400080008000084016051700000000093800000B1F22010300000000000 \
00000000000000000000000000000000000000000008000000000000000
--session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", \
"PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}'
```

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