Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Cifrar datos
La Encrypt Data API se utiliza para cifrar datos mediante claves de cifrado de datos simétricas y asimétricas, así como claves derivadas de DUKPT y EMV. Se admiten varios algoritmos y variaciones, incluidos TDES
, RSA
y AES
.
Las entradas principales son la clave de cifrado utilizada para cifrar los datos, los datos de texto simple en formato HexBinary que se van a cifrar y los atributos de cifrado, como el vector de inicialización y el modo para los cifrados por bloques, como el TDES. Los datos en texto plano deben estar en múltiplos de 8 bytes paraTDES
, 16 bytes para AES
y la longitud de la clave en el caso de. RSA
Las entradas clave simétricas (TDES, AES, DUKPT, EMV) deben rellenarse en los casos en que los datos de entrada no cumplan estos requisitos. La siguiente tabla muestra la longitud máxima del texto sin formato para cada tipo de clave y el tipo de relleno que se define para las claves RSA. EncryptionAttributes
Tipo de relleno | RSA_2048 | RSA_3072 | RSA_4096 |
---|---|---|---|
OAEP SHA1 |
428 | 684 | 940 |
OAEP SHA256 |
380 | 636 | 892 |
OAEP SHA512 |
252 | 508 | 764 |
PKCS1 |
488 | 744 | 1 000 |
None |
488 | 744 | 1 000 |
Las salidas primarias incluyen los datos encriptados como texto cifrado en formato hexBinario y el valor de la suma de comprobación de la clave de encriptación. Para obtener más información sobre todas las opciones disponibles, consulte la Guía de API para Encrypt.
Ejemplos
Cifrar datos utilizando la clave simétrica AES
nota
En este ejemplo, cifraremos los datos en texto plano mediante una clave simétrica que se creó mediante la CreateKeyoperación o se importó mediante la operación. ImportKey Para esta operación, la clave debe estar configurada en Encrypt
y KeyModesOfUse KeyUsage establecida en. TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY
Consulte Claves para operaciones criptográficas para ver más opciones.
$
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" }
Cifrar los datos con la clave DUKPT
En este ejemplo, cifraremos los datos en texto plano mediante una clave DUKPT. AWS Soportes de criptografía de pagos y claves DUKPT. TDES
AES
Para esta operación, la clave debe estar configurada en DeriveKey
y KeyModesOfUse KeyUsage configurada en. TR31_B0_BASE_DERIVATION_KEY
Consulte Claves para operaciones criptográficas para ver más opciones.
$
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" }
Cifre los datos mediante una clave simétrica derivada de EMV
En este ejemplo, cifraremos los datos de texto no cifrado mediante una clave simétrica derivada de EMV que ya se ha creado. Puede utilizar un comando como este para enviar datos a una tarjeta EMV. Para esta operación, la clave debe estar KeyModesOfUse configurada en Derive
y KeyUsage establecida en TR31_E1_EMV_MKEY_CONFIDENTIALITY
oTR31_E6_EMV_MKEY_OTHER
. Consulte Claves para operaciones criptográficas para obtener más información.
$
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" }
Cifrado de los datos utilizando una clave de RSA
En este ejemplo, cifraremos los datos en texto plano mediante una clave pública RSA que se importó mediante la operación. ImportKey Para esta operación, la clave debe estar configurada en Encrypt
y KeyModesOfUse KeyUsage establecida en. TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION
Consulte Claves para operaciones criptográficas para ver más opciones.
Para PKCS #7 u otros esquemas de relleno no admitidos actualmente, solicítelos antes de llamar al servicio y seleccione sin relleno omitiendo el indicador de relleno 'Asymmetric={}'
$
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:111122223333:key/5dza7xqd6soanjtb", "KeyCheckValue": "FF9DE9CE" }