加密資料 - AWS 支付密碼學

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

加密資料

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

主要輸入是用於加密資料的加密金鑰、要加密的 HexBinary 格式的純文字資料和加密屬性,例如 TDES 區塊加密的初始化向量和模式。在的情況下,明文數據必須是 8 個字節的倍數TDES,16 個字節的倍數AES和密鑰的長度。RSA對稱鍵輸入(TDES,AES,DUKPT,EMV)應在輸入數據不符合這些要求的情況下進行填充。下表顯示每種索引鍵類型的最大純文字長度,以及您在中為 RSA 金鑰定義的EncryptionAttributes填補類型。

填充類型 RSA_2048 RSA_3072 RSA_4096
OAEP SHA1 428 684 940
OAEP SHA256 380 636 892
OAEP SHA512 252 508 764
PKCS1 488 744 1000
None 488 744 1000

主要輸出包括以 HexBinary 格式加密文字的加密資料,以及加密金鑰的總和檢查碼值。有關所有可用選項的詳細信息,請參閱 API 加密指南。

使用 AES 對稱金鑰加密資料

注意

所有範例假設相關金鑰已存在。可以使用CreateKey作業建立金鑰,也可以使用ImportKey作業匯入金鑰。

在這個例子中,我們將使用已經使用操作創建或使用CreateKey操作導入的對稱密鑰來加密明文數據。ImportKey對於此操作,密鑰必須 KeyModesOfUse 設置為Encrypt並將其 KeyUsage 設置為TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY。如需更多選項,請參閱密碼編譯作業的金鑰。

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

使用 DUKPT 密鑰加密數據

在這個例子中,我們將使用 DU KPT 密鑰加密明文數據。 AWS 支付密碼學支持TDESAES DUKPT 密鑰。對於此操作,密鑰必須 KeyModesOfUse 設置為DeriveKey並將其 KeyUsage 設置為TR31_B0_BASE_DERIVATION_KEY。如需更多選項,請參閱密碼編譯作業的金鑰。

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

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

在此範例中,我們將使用已建立的 EMV 衍生的對稱金鑰來加密純文字資料。您可以使用這樣的命令將資料傳送至 EMV 卡。對於此操作,密鑰必須 KeyModesOfUse 設置為Derive並將其 KeyUsage 設置為TR31_E1_EMV_MKEY_CONFIDENTIALITYTR31_E6_EMV_MKEY_OTHER。如需詳細資訊,請參閱密碼編譯作業的金鑰

$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --plain-text 33612AB9D6929C3A828EB6030082B2BD --encryption-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", "CipherText": "33612AB9D6929C3A828EB6030082B2BD" }

使用 RSA 金鑰加密資料

在這個例子中,我們將使用已使用操作導入的 RSA 公鑰加密明文數據。ImportKey對於此操作,密鑰必須 KeyModesOfUse 設置為Encrypt並將其 KeyUsage 設置為TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION。如需更多選項,請參閱密碼編譯作業的金鑰。

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

$ aws payment-cryptography-data encrypt-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/thfezpmsalcfwmsg --plain-text 31323334313233343132333431323334 --encryption-attributes 'Asymmetric={PaddingType=OAEP_SHA256}'
{ "CipherText": "12DF6A2F64CC566D124900D68E8AFEAA794CA819876E258564D525001D00AC93047A83FB13 \ E73F06329A100704FA484A15A49F06A7A2E55A241D276491AA91F6D2D8590C60CDE57A642BC64A897F4832A3930 \ 0FAEC7981102CA0F7370BFBF757F271EF0BB2516007AB111060A9633D1736A9158042D30C5AE11F8C5473EC70F067 \ 72590DEA1638E2B41FAE6FB1662258596072B13F8E2F62F5D9FAF92C12BB70F42F2ECDCF56AADF0E311D4118FE3591 \ FB672998CCE9D00FFFE05D2CD154E3120C5443C8CF9131C7A6A6C05F5723B8F5C07A4003A5A6173E1B425E2B5E42AD \ 7A2966734309387C9938B029AFB20828ACFC6D00CD1539234A4A8D9B94CDD4F23A", "KeyArn": "arn:aws:payment-cryptography:us-east-1:529027455495:key/5dza7xqd6soanjtb", "KeyCheckValue": "FF9DE9CE" }