

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Chiffrer, déchiffrer et rechiffrer les données
<a name="crypto-ops.encryptdecrypt"></a>

Les méthodes de chiffrement et de déchiffrement peuvent être utilisées pour chiffrer ou déchiffrer des données à l'aide de diverses techniques symétriques et asymétriques, notamment TDES, AES et RSA. Ces méthodes prennent également en charge les clés dérivées à l'aide des techniques [DUKPT](terminology.md#terms.dukpt) et [EMV](terminology.md#terms.emv). Dans les cas d'utilisation où vous souhaitez sécuriser les données sous une nouvelle clé sans exposer les données sous-jacentes, la ReEncrypt commande peut également être utilisée.

**Note**  
 Lorsque vous utilisez les encrypt/decrypt fonctions, toutes les entrées sont supposées être en hexadécimal. Par exemple, une valeur de 1 sera saisie sous la forme 31 (hexadécimal) et un t minuscule est représenté par 74 (hexadécimal). Toutes les sorties sont également en HexBinary. 

[Pour plus de détails sur toutes les options disponibles, veuillez consulter le guide de l'API pour le [chiffrement](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html), le [déchiffrement et le rechiffrement](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**
+ [Chiffrer des données](encrypt-data.md)
+ [Déchiffrer des données](decrypt-data.md)

# Chiffrer des données
<a name="encrypt-data"></a>

 [L'`Encrypt Data`API est utilisée pour chiffrer les données à l'aide de clés de chiffrement symétriques et asymétriques ainsi que de clés dérivées du [DUKPT](terminology.md#terms.dukpt) et de l'EMV.](terminology.md#terms.emv) Différents algorithmes et variantes sont pris en charge`TDES`, notamment, `RSA` et`AES`.

Les entrées principales sont la clé de chiffrement utilisée pour chiffrer les données, les données en texte brut au format HexBinary à chiffrer et les attributs de chiffrement tels que le vecteur d'initialisation et le mode pour les chiffrements par blocs tels que TDES. Les données en texte brut doivent être exprimées en multiples de 8 octets pour`TDES`, 16 octets pour `AES` et de la longueur de la clé dans le cas de`RSA`. Les entrées clés symétriques (TDES, AES, DUKPT, EMV) doivent être complétées dans les cas où les données d'entrée ne répondent pas à ces exigences. Le tableau suivant indique la longueur maximale du texte brut pour chaque type de clé et le type de remplissage que vous définissez `EncryptionAttributes` pour les clés RSA.


| Type de rembourrage | RSA\$12048 | RSA\$13072 | RSA\$14096 | 
| --- | --- | --- | --- | 
| 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 | 

Les sorties principales incluent les données chiffrées sous forme de texte chiffré au format HexBinary et la valeur de la somme de contrôle pour la clé de chiffrement. Pour plus de détails sur toutes les options disponibles, veuillez consulter le guide de l'API pour [Encrypt](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html). 

**Topics**
+ [Chiffrer les données à l'aide d'une clé symétrique AES](#w2aac15c16c11c13)
+ [Chiffrer les données à l'aide de la clé DUKPT](#w2aac15c16c11c15)
+ [Chiffrer les données à l'aide d'une clé symétrique dérivée de l'EMV](#w2aac15c16c11c17)
+ [Chiffrer les données à l'aide d'une clé RSA](#crypto-ops.encrypt-rsa)

## Chiffrer les données à l'aide d'une clé symétrique AES
<a name="w2aac15c16c11c13"></a>

**Note**  
 Tous les exemples supposent que la clé correspondante existe déjà. Les clés peuvent être créées à l'aide de l'[CreateKey](create-keys.md)opération ou importées à l'aide de l'[ImportKey](keys-import.md)opération. 

**Example**  
 Dans cet exemple, nous chiffrerons les données en texte brut à l'aide d'une clé symétrique créée à l'aide de l'[CreateKey](create-keys.md)opération ou importée à l'aide de l'opération. [ImportKey](keys-import.md) Pour cette opération, la clé doit être KeyModesOfUse réglée sur `Encrypt` et KeyUsage définie sur`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus d'options.   

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

## Chiffrer les données à l'aide de la clé DUKPT
<a name="w2aac15c16c11c15"></a>

**Example**  
 Dans cet exemple, nous allons chiffrer les données en texte brut à l'aide d'une clé [DUKPT](terminology.md#terms.dukpt). AWS Supports de cryptographie des paiements `TDES` et clés `AES` DUKPT. Pour cette opération, la clé doit être KeyModesOfUse réglée sur `DeriveKey` et KeyUsage définie sur`TR31_B0_BASE_DERIVATION_KEY`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus d'options.   

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

## Chiffrer les données à l'aide d'une clé symétrique dérivée de l'EMV
<a name="w2aac15c16c11c17"></a>

**Example**  
 Dans cet exemple, nous allons chiffrer des données en texte clair à l'aide d'une clé symétrique dérivée de l'EMV qui a déjà été créée. Vous pouvez utiliser une commande comme celle-ci pour envoyer des données vers une carte EMV. Pour cette opération, la clé doit être KeyModesOfUse définie sur `Derive` et KeyUsage définie sur `TR31_E1_EMV_MKEY_CONFIDENTIALITY` ou`TR31_E6_EMV_MKEY_OTHER`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus de détails.   

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

## Chiffrer les données à l'aide d'une clé RSA
<a name="crypto-ops.encrypt-rsa"></a>

**Example**  
 Dans cet exemple, nous allons chiffrer les données en texte brut à l'aide d'une [clé publique RSA](terminology.md#terms.publickey) importée à l'aide de l'opération. [ImportKey](keys-import.md) Pour cette opération, la clé doit être KeyModesOfUse réglée sur `Encrypt` et KeyUsage définie sur`TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus d'options.   
 *Pour le PKCS \$17 ou d'autres systèmes de rembourrage non pris en charge actuellement, veuillez en faire la demande avant d'appeler le service et sélectionner aucun rembourrage en omettant l'indicateur de rembourrage « 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"
}
```

# Déchiffrer des données
<a name="decrypt-data"></a>

 [L'`Decrypt Data`API est utilisée pour déchiffrer les données à l'aide de clés de chiffrement symétriques et asymétriques ainsi que de clés dérivées de [DUKPT](terminology.md#terms.dukpt) et EMV.](terminology.md#terms.emv) Différents algorithmes et variantes sont pris en charge`TDES`, notamment, `RSA` et`AES`.

 Les entrées principales sont la clé de déchiffrement utilisée pour déchiffrer les données, les données chiffrées au format HexBinary à déchiffrer et les attributs de déchiffrement tels que le vecteur d'initialisation, le mode sous forme de blocs, etc. Les sorties principales incluent les données déchiffrées sous forme de texte brut au format HexBinary et la valeur de la somme de contrôle pour la clé de déchiffrement. Pour plus de détails sur toutes les options disponibles, veuillez consulter le guide de l'API pour le [déchiffrement](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html). 

**Topics**
+ [Déchiffrer les données à l'aide d'une clé symétrique AES](#w2aac15c16c13b9)
+ [Déchiffrer les données à l'aide de la clé DUKPT](#w2aac15c16c13c11)
+ [Déchiffrer les données à l'aide d'une clé symétrique dérivée d'EMV](#w2aac15c16c13c13)
+ [Déchiffrer les données à l'aide d'une clé RSA](#crypto-ops.decrypt-rsa)

## Déchiffrer les données à l'aide d'une clé symétrique AES
<a name="w2aac15c16c13b9"></a>

**Example**  
 Dans cet exemple, nous allons déchiffrer les données chiffrées à l'aide d'une clé symétrique. Cet exemple montre une `AES` clé, mais elle `TDES_2KEY` est également prise en charge. `TDES_3KEY` Pour cette opération, la clé doit être KeyModesOfUse réglée sur `Decrypt` et KeyUsage définie sur`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus d'options.   

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

## Déchiffrer les données à l'aide de la clé DUKPT
<a name="w2aac15c16c13c11"></a>

**Note**  
 L'utilisation de données de déchiffrement avec DUKPT pour les transactions P2PE peut renvoyer à votre application les données PAN et autres données du titulaire de la carte, qui devront être prises en compte lors de la détermination de son champ d'application PCI DSS. 

**Example**  
 Dans cet exemple, nous allons déchiffrer les données chiffrées à l'aide d'une clé [DUKPT](terminology.md#terms.dukpt) créée à l'aide de l'[CreateKey](create-keys.md)opération ou importée à l'aide de l'opération. [ImportKey](keys-import.md) Pour cette opération, la clé doit être KeyModesOfUse réglée sur `DeriveKey` et KeyUsage définie sur`TR31_B0_BASE_DERIVATION_KEY`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus d'options. Lorsque vous utilisez`DUKPT`, pour l'`TDES`algorithme, la longueur des données du texte chiffré doit être un multiple de 16 octets. Pour `AES` l'algorithme, la longueur des données du texte chiffré doit être un multiple de 32 octets.   

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

## Déchiffrer les données à l'aide d'une clé symétrique dérivée d'EMV
<a name="w2aac15c16c13c13"></a>

**Example**  
 Dans cet exemple, nous allons déchiffrer les données de texte chiffré à l'aide d'une clé symétrique dérivée de l'EMV créée à l'aide de l'opération ou importée à l'aide de l'[CreateKey](create-keys.md)opération. [ImportKey](keys-import.md) Pour cette opération, la clé doit être KeyModesOfUse définie sur `Derive` et KeyUsage définie sur `TR31_E1_EMV_MKEY_CONFIDENTIALITY` ou`TR31_E6_EMV_MKEY_OTHER`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus de détails.   

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

## Déchiffrer les données à l'aide d'une clé RSA
<a name="crypto-ops.decrypt-rsa"></a>

**Example**  
 Dans cet exemple, nous allons déchiffrer les données de texte chiffré à l'aide d'une [paire de clés](terminology.md#terms.privatekey) RSA créée à l'aide de l'opération. [CreateKey](create-keys.md) Pour cette opération, la clé doit être KeyModesOfUse réglée sur Activé `Decrypt` et KeyUsage définie sur`TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION`. Consultez la section [Clés pour les opérations cryptographiques](crypto-ops-validkeys-ops.md) pour plus d'options.   
 Pour le PKCS \$17 ou d'autres systèmes de rembourrage non pris en charge actuellement, veuillez ne sélectionner aucun rembourrage en omettant l'indicateur de rembourrage *« Asymmetric= \$1\$1 »* et supprimez le rembourrage après avoir appelé le service.   

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