ピンの IBM3624 ピンオフセットを生成する - AWS Payment Cryptography

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

ピンの IBM3624 ピンオフセットを生成する

IBM 3624 PIN オフセットは、IBM メソッドとも呼ばれます。このメソッドは、検証データ (通常は PAN) と PIN キー (PVK) を使用して自然/中間 PIN を生成します。自然ピンは実質的に派生値であり、決定論的であることは、カード所有者レベルでピンデータを保存する必要がないため、発行者の処理が非常に効率的です。最も明白なのは、このスキームはカード所有者が選択できるピンやランダムなピンを考慮していないことです。これらのタイプのピンを許可するために、オフセットアルゴリズムがスキームに追加されました。オフセットは、選択したユーザー (またはランダム) ピンと自然キーの差を表します。オフセット値は、カード発行者またはカードプロセッサによって保存されます。トランザクション時に、 AWS Payment Cryptography サービスは内部的に自然ピンを再計算し、オフセットを適用してピンを見つけます。次に、これをトランザクション認可によって提供される値と比較します。

IBM3624 にはいくつかのオプションがあります。

  • Ibm3624NaturalPin は自然ピンと暗号化されたピンブロックを出力します

  • Ibm3624PinFromOffset はオフセットを指定して暗号化されたピンブロックを生成します

  • Ibm3624RandomPin はランダムピンを生成し、次に一致するオフセットと暗号化されたピンブロックを生成します。

  • Ibm3624PinOffset は、ユーザーが選択したピンを指定してピンオフセットを生成します。

AWS Payment Cryptography の内部では、次の手順が実行されます。

  • 提供されたパンを 16 文字にパディングします。<16 が指定されている場合は、指定されたパディング文字を使用して右側にパディングします。

  • PIN 生成キーを使用して検証データを暗号化します。

  • 小数化テーブルを使用して、暗号化されたデータを小数化します。これは、インスタンス「A」が 9 にマッピングされ、1 が 1 にマッピングされる可能性があるため、16 進数桁を 10 進数にマッピングします。

  • 出力の 16 進表現から最初の 4 桁を取得します。これは自然なピンです。

  • ユーザーが選択したピンまたはランダムピンを生成した場合、モジュロはカスタマーピンで自然ピンを減算します。結果はピンオフセットです。

例: ピンの IBM3624 ピンオフセットを生成する

この例では、出力が暗号化された (PinData.PinBlock) とIBM3624オフセット値 PIN block (pinData.Offset).PinData.PinBlock) 入力は、PAN、検証データ (通常は pan)、パディング文字、Pin Verification Key、、および Pin Encryption KeyですPIN block format

このコマンドでは、ピン生成キーが タイプTR31_V1_IBM3624_PIN_VERIFICATION_KEYで、暗号化キーが タイプである必要があります TR31_P0_PIN_ENCRYPTION_KEY

次の例は、ランダムピンを生成し、Ibm3624RandomPin を使用して暗号化されたピンブロックと IBM3624 オフセット値を出力する方法を示しています。 Ibm3624RandomPin

$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2::key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2::key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes Ibm3624RandomPin="{DecimalizationTable=9876543210654321,PinValidationDataPadCharacter=D,PinValidationData=171234567890123}"
{ "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2::key/37y2tsl45p5zjbh2", "GenerationKeyCheckValue": "7F2363", "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2::key/ivi5ksfsuplneuyt", "EncryptionKeyCheckValue": "7CC9E2", "EncryptedPinBlock": "AC17DC148BDA645E", "PinData": { "PinOffset": "5507" } }