

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, descifrar y volver a cifrar datos
<a name="crypto-ops.encryptdecrypt"></a>

Los métodos de cifrado y descifrado se pueden utilizar para cifrar o descifrar datos mediante una variedad de técnicas simétricas y asimétricas, incluidas TDES, AES y RSA. [Estos métodos también admiten claves derivadas mediante las técnicas [DUKPT](terminology.md#terms.dukpt) y EMV.](terminology.md#terms.emv) Para los casos de uso en los que desee proteger los datos con una clave nueva sin exponer los datos subyacentes, también se puede utilizar el ReEncrypt comando.

**nota**  
 Al utilizar las encrypt/decrypt funciones, se supone que todas las entradas están en HexBinary; por ejemplo, un valor de 1 se introducirá como 31 (hexadecimal) y una t minúscula se representará como 74 (hexadecimal). Todas las salidas también están en hexBinary. 

[Para obtener más información sobre todas las opciones disponibles, consulte la Guía de la API para [cifrar](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html), [descifrar y volver a cifrar.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html)](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_ReEncryptData.html) 

**Topics**
+ [Cifrar datos](encrypt-data.md)
+ [Descifrado de datos](decrypt-data.md)

# Cifrar datos
<a name="encrypt-data"></a>

 [[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.](terminology.md#terms.emv)](terminology.md#terms.dukpt) 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 para`TDES`, 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\$12048 | RSA\$13072 | RSA\$14096 | 
| --- | --- | --- | --- | 
| OAEP SHA1 | 4.28 | 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](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html). 

**Topics**
+ [Cifrar datos utilizando la clave simétrica AES](#w2aac15c16c11c13)
+ [Cifrar los datos con la clave DUKPT](#w2aac15c16c11c15)
+ [Cifre los datos mediante una clave simétrica derivada de EMV](#w2aac15c16c11c17)
+ [Cifrado de los datos utilizando una clave de RSA](#crypto-ops.encrypt-rsa)

## Cifrar datos utilizando la clave simétrica AES
<a name="w2aac15c16c11c13"></a>

**nota**  
 En todos los ejemplos se asume que la clave correspondiente ya existe. Las claves se pueden crear mediante la [CreateKey](create-keys.md)operación o importar mediante la [ImportKey](keys-import.md)operación. 

**Example**  
 En este ejemplo, cifraremos los datos en texto plano mediante una clave simétrica que se creó mediante la [CreateKey](create-keys.md)operación o se importó mediante la operación. [ImportKey](keys-import.md) 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](crypto-ops-validkeys-ops.md) 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
<a name="w2aac15c16c11c15"></a>

**Example**  
 En este ejemplo, cifraremos los datos en texto plano mediante una clave [DUKPT](terminology.md#terms.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](crypto-ops-validkeys-ops.md) 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
<a name="w2aac15c16c11c17"></a>

**Example**  
 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` o`TR31_E6_EMV_MKEY_OTHER`. Consulte [Claves para operaciones criptográficas](crypto-ops-validkeys-ops.md) 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
<a name="crypto-ops.encrypt-rsa"></a>

**Example**  
 En este ejemplo, cifraremos los datos en texto plano mediante una [clave pública RSA](terminology.md#terms.publickey) que se importó mediante la operación. [ImportKey](keys-import.md) 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](crypto-ops-validkeys-ops.md) para ver más opciones.   
 Para PKCS \$17 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=\$1\$1'*   

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

# Descifrado de datos
<a name="decrypt-data"></a>

 [La `Decrypt Data` API se utiliza para descifrar datos mediante claves de cifrado de datos simétricas y asimétricas, así como claves derivadas de [DUKPT](terminology.md#terms.dukpt) y EMV.](terminology.md#terms.emv) Se admiten varios algoritmos y variaciones, incluidos `TDES`, `RSA` y `AES`.

 Las entradas principales son la clave de descifrado utilizada para descifrar los datos, los datos del texto cifrado en formato hexBinario que deben descifrarse y los atributos de descifrado, como el vector de inicialización, el modo como los cifradores de bloques, etc. Las salidas principales incluyen los datos descifrados como texto plano en formato hexBinario y el valor de la suma de comprobación de la clave de descifrado. [Para obtener más información sobre todas las opciones disponibles, consulte la Guía de API para descifrar.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html) 

**Topics**
+ [Descifrar los datos mediante la clave simétrica AES](#w2aac15c16c13b9)
+ [Descifrar los datos con la clave DUKPT](#w2aac15c16c13c11)
+ [Descifre los datos mediante una clave simétrica derivada de EMV](#w2aac15c16c13c13)
+ [Descifrar datos con una clave de RSA](#crypto-ops.decrypt-rsa)

## Descifrar los datos mediante la clave simétrica AES
<a name="w2aac15c16c13b9"></a>

**Example**  
 En este ejemplo, descifraremos los datos de texto cifrado mediante una clave simétrica. En este ejemplo se muestra una `AES` clave, pero también `TDES_2KEY` se admiten. `TDES_3KEY` Para esta operación, la clave debe estar KeyModesOfUse configurada en `Decrypt` y KeyUsage establecida en`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Consulte [Claves para operaciones criptográficas](crypto-ops-validkeys-ops.md) para ver más opciones.   

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

## Descifrar los datos con la clave DUKPT
<a name="w2aac15c16c13c11"></a>

**nota**  
 El uso del descifrado de datos con DUKPT para las transacciones P2PE puede devolver a su aplicación el PAN de la tarjeta de crédito y otros datos del titular de la tarjeta que deberán tenerse en cuenta a la hora de determinar su alcance PCI DSS. 

**Example**  
 En este ejemplo, descifraremos los datos de texto cifrado mediante una clave [DUKPT](terminology.md#terms.dukpt) que se creó mediante la [CreateKey](create-keys.md)operación o se importó mediante la operación. [ImportKey](keys-import.md) Para esta operación, la clave debe estar establecida en y KeyModesOfUse configurada en. `DeriveKey` KeyUsage `TR31_B0_BASE_DERIVATION_KEY` Consulte [Claves para operaciones criptográficas](crypto-ops-validkeys-ops.md) para ver más opciones. Cuando se utiliza `DUKPT`, como algoritmo `TDES`, la longitud de los datos del texto cifrado debe ser un múltiplo de 16 bytes. Para el algoritmo `AES`, la longitud de los datos del texto cifrado debe ser un múltiplo de 32 bytes.   

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

## Descifre los datos mediante una clave simétrica derivada de EMV
<a name="w2aac15c16c13c13"></a>

**Example**  
 En este ejemplo, descifraremos los datos de texto cifrado mediante una clave simétrica derivada de EMV que se creó mediante la operación o se importó mediante la operación. [CreateKey[ImportKey](keys-import.md)](create-keys.md) Para esta operación, la clave debe estar establecida en y KeyModesOfUse establecida en o. `Derive` KeyUsage `TR31_E1_EMV_MKEY_CONFIDENTIALITY` `TR31_E6_EMV_MKEY_OTHER` Consulte [Claves para operaciones criptográficas](crypto-ops-validkeys-ops.md) para obtener más información.   

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

## Descifrar datos con una clave de RSA
<a name="crypto-ops.decrypt-rsa"></a>

**Example**  
 En este ejemplo, descifraremos los datos de texto cifrado mediante un [par de claves RSA](terminology.md#terms.privatekey) que se creó mediante la operación. [CreateKey](create-keys.md) Para esta operación, la clave debe estar configurada como `Decrypt` habilitada y KeyModesOfUse configurada como. KeyUsage `TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION` Consulte [Claves para operaciones criptográficas](crypto-ops-validkeys-ops.md) para ver más opciones.   
 Para PKCS \$17 u otros esquemas de relleno no admitidos actualmente, seleccione sin relleno omitiendo el indicador de relleno * 'Asymmetric=\$1\$1'* y elimine el relleno después de llamar al servicio.   

```
$ 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:111122223333:key/5dza7xqd6soanjtb",
    "KeyCheckValue": "FF9DE9CE",
    "PlainText": "31323334313233343132333431323334"
}
```