本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
產生接腳的 IBM3624 接腳位移
IBM 3624 PIN 位移有時也稱為 IBM 方法。此方法會使用驗證資料 (通常是 PAN) 和 PIN 金鑰 (PVK) 產生自然/中繼 PIN。自然接腳實際上是衍生的值,而且對於發行者來說,決定性非常有效率,因為不需要將接腳資料存放在持卡人層級。最明顯的缺點是,此機制不會考慮持卡人可選或隨機接腳。為了允許這些類型的接腳,已將位移演算法新增至配置。偏移代表使用者選取 (或隨機) 接腳與自然金鑰之間的差異。位移值由卡片發行者或卡片處理器存放。在交易時間, AWS 付款密碼編譯服務會在內部重新計算自然接腳,並套用偏移來尋找接腳。然後,它會將此值與交易授權提供的值進行比較。
IBM3624 有幾個選項:
Ibm3624NaturalPin
將輸出自然接腳和加密接腳區塊Ibm3624PinFromOffset
會針對位移產生加密的 PIN 區塊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
下列範例顯示產生隨機接腳,然後使用 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" } }