为 IBM3624 引脚生成引脚偏移 - AWS 支付密码学

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

为 IBM3624 引脚生成引脚偏移

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 位数字。这是自然的别针。

  • 如果用户选择或生成了随机引脚,则用客户引脚模数减去自然引脚。结果是引脚偏移。

示例:为 IBM3624 引脚生成引脚偏移

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

此命令要求密码生成密钥的类型为TR31_V1_IBM3624_PIN_VERIFICATION_KEY,加密密钥的类型为 TR31_P0_PIN_ENCRYPTION_KEY

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

$ 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" } }