解密資料 - AWS 支付密碼學

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

解密資料

Decrypt Data API 用於使用對稱和非對稱數據加密密鑰以及 DUKPTEM V 派生密鑰來解密數據。支援各種演算法和變化TDES,包括RSAAES

主要輸入是用於解密數據的解密密鑰,要解密的 HexBinary 格式的密文數據和解密屬性,如初始化矢量,模式作為塊密碼等。主要輸出包括以 HexBinary 格式的純文字形式解密資料,以及解密金鑰的總和檢查碼值。有關所有可用選項的詳細信息,請參閱 API 解指南。

使用 AES 對稱金鑰解密資料

在這個例子中,我們將使用對稱密鑰解密密文數據。這個例子顯示了一個AESTDES_2KEY,但TDES_3KEY也支持。對於此操作,密鑰必須 KeyModesOfUse 設置為Decrypt並將其 KeyUsage 設置為TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY。如需更多選項,請參閱密碼編譯作業的金鑰。

$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --cipher-text 33612AB9D6929C3A828EB6030082B2BD --decryption-attributes 'Symmetric={Mode=CBC}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "71D7AE", "PlainText": "31323334313233343132333431323334" }

使用 DUKPT 密鑰解密數據

注意

在 P2PE 交易中使用解密數據與 DUKPT 可能會將信用卡 PAN 和其他持卡人數據返回到您的應用程序,這些數據在確定其 PCI DSS 範圍時需要考慮這些數據。

在這個例子中,我們將使用 DUKPT 密鑰解密密文數據,該密鑰已使用操作創建或使用CreateKey操作導入。ImportKey對於此操作,密鑰必須 KeyModesOfUse 設置為DeriveKey並將其 KeyUsage 設置為TR31_B0_BASE_DERIVATION_KEY。如需更多選項,請參閱密碼編譯作業的金鑰。當您使用時DUKPT,如果是TDES演算法,密文資料長度必須是 16 個位元組的倍數。對於AES演算法,密文資料長度必須是 32 個位元組的倍數。

$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --cipher-text 33612AB9D6929C3A828EB6030082B2BD --decryption-attributes 'Dukpt={KeySerialNumber=FFFF9876543210E00001}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "71D7AE", "PlainText": "31323334313233343132333431323334" }

使用 EMV 衍生的對稱金鑰解密資料

在此範例中,我們將使用 EMV 衍生的對稱金鑰來解密密文資料,該金鑰是使用作業建立或使用CreateKey作業匯入的。ImportKey對於此操作,密鑰必須 KeyModesOfUse 設置為Derive並將其 KeyUsage 設置為TR31_E1_EMV_MKEY_CONFIDENTIALITYTR31_E6_EMV_MKEY_OTHER。如需詳細資訊,請參閱密碼編譯作業的金鑰

$ aws payment-cryptography-data decrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --cipher-text 33612AB9D6929C3A828EB6030082B2BD --decryption-attributes 'Emv={MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber=27,PrimaryAccountNumber=1000000000000432,SessionDerivationData=02BB000000000000, InitializationVector=1500000000000999,Mode=CBC}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "71D7AE", "PlainText": "31323334313233343132333431323334" }

使用 RSA 金鑰解密資料

在這個例子中,我們將使用已使用該操作創建的 RSA 密 key pair 解密密文數據。CreateKey對於此操作,金鑰必須 KeyModesOfUse 設定為啟用Decrypt並 KeyUsage 設定為TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION。如需更多選項,請參閱密碼編譯作業的金鑰。

對於 PKCS #7 或其他當前不支持的填充方案,請省略填充指示器 「不對稱 = {}」 來選擇不填充,並在調用服務之後刪除填充。

$ aws payment-cryptography-data decrypt-data \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb --cipher-text 8F4C1CAFE7A5DEF9A40BEDE7F2A264635C... \ --decryption-attributes 'Asymmetric={PaddingType=OAEP_SHA256}'
{ "KeyArn": "arn:aws:payment-cryptography:us-east-1:529027455495:key/5dza7xqd6soanjtb", "KeyCheckValue": "FF9DE9CE", "PlainText": "31323334313233343132333431323334" }