

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 为 IBM3624 引脚生成引脚偏移
<a name="generate-ibm3624"></a>

 IBM 3624 PIN Offset 有时也被称为 IBM 方法。此方法使用验证数据（通常是 natural/intermediate PAN）和 PIN 密钥 (PVK) 生成 PIN。自然密码实际上是一种衍生值，对于发卡机构来说，确定性非常有效，因为不需要在持卡人级别存储密码数据。最明显的缺点是，该计划没有考虑持卡人可选择的密码或随机密码。为了允许使用这些类型的引脚，在该方案中添加了偏移算法。偏移量表示用户选择（或随机）的引脚与自然密钥之间的差异。抵消值由发卡机构或发卡商存储。在交易时，P AWS ayment Cryptography 服务会在内部重新计算自然引脚，然后应用偏移量来找到密码。然后，它将其与交易授权提供的值进行比较。

有几个选项可用于 IBM3624：
+ `Ibm3624NaturalPin`将输出自然引脚和加密密码块
+ `Ibm3624PinFromOffset`给定偏移量后将生成一个加密的密码块
+ `Ibm3624RandomPin`将生成一个随机引脚，然后生成匹配的偏移量和加密的引脚块。
+  `Ibm3624PinOffset`根据用户选择的引脚生成引脚偏移。

在 AWS 支付密码学的内部，执行以下步骤：
+ 将提供的平移填充到 16 个字符。如果提供了 <16，则使用提供的填充字符在右侧填充。
+ 使用 PIN 生成密钥对验证数据进行加密。
+ 使用十进制表对加密的数据进行十进制化。这会将十六进制数字映射到十进制数字，例如 “A” 可能映射到 9，而 1 可能映射到 1。
+ 从输出的十六进制表示形式中获取前 4 位数字。这是天生的别针。
+ 如果用户选择或生成了随机引脚，则用客户引脚模数减去自然引脚。结果是引脚偏移。

**Topics**
+ [示例：为 IBM3624 引脚生成引脚偏移](#generate-ibm3624-random-example)

## 示例：为 IBM3624 引脚生成引脚偏移
<a name="generate-ibm3624-random-example"></a>

在此示例中，我们将生成一个新的（随机）引脚，其中的输出将是加密的 `PIN block` (PinData. PinBlock）和`IBM3624`偏移值（pindata.Offset）。输入是`PAN`验证数据（通常是平移）、填充字符`Pin Verification Key`、、`Pin Encryption Key`和。`PIN block format`

 此命令要求 PIN 生成密钥的类型为`TR31_V1_IBM3624_PIN_VERIFICATION_KEY`，加密密钥的类型为 `TR31_P0_PIN_ENCRYPTION_KEY` 

**Example**  
以下示例显示生成一个随机引脚，然后使用 Ibm3624 输出加密引脚块和 IBM3624 偏移值 RandomPin   

```
$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333: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:111122223333:key/37y2tsl45p5zjbh2",
              "GenerationKeyCheckValue": "7F2363",
              "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
              "EncryptionKeyCheckValue": "7CC9E2",
              "EncryptedPinBlock": "AC17DC148BDA645E",
              "PinData": {
                  "PinOffset": "5507"
              }
          }
```