

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crittografa, decrittografa e ricrittografa i dati
<a name="crypto-ops.encryptdecrypt"></a>

I metodi di crittografia e decrittografia possono essere utilizzati per crittografare o decrittografare i dati utilizzando una varietà di tecniche simmetriche e asimmetriche tra cui TDES, AES e RSA. [[Questi metodi supportano anche chiavi derivate utilizzando le tecniche DUKPT ed EMV.](terminology.md#terms.emv)](terminology.md#terms.dukpt) Nei casi d'uso in cui si desidera proteggere i dati con una nuova chiave senza esporre i dati sottostanti, è possibile utilizzare anche il ReEncrypt comando.

**Nota**  
 Quando si utilizzano le encrypt/decrypt funzioni, si presume che tutti gli input siano in HexBinary, ad esempio un valore 1 verrà immesso come 31 (hex) e una t minuscola viene rappresentata come 74 (hex). Tutti gli output sono anche in HexBinary. 

[Per i dettagli su tutte le opzioni disponibili, consulta la Guida API per [Encrypt, Decrypt](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html)[e Re-Encrypt](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**
+ [Crittografare i dati](encrypt-data.md)
+ [Decrittare i dati](decrypt-data.md)

# Crittografare i dati
<a name="encrypt-data"></a>

 [[L'`Encrypt Data`API viene utilizzata per crittografare i dati utilizzando chiavi di crittografia dei dati simmetriche e asimmetriche, nonché chiavi derivate da DUKPT ed EMV.](terminology.md#terms.emv)](terminology.md#terms.dukpt) Sono supportati vari algoritmi e varianti, tra cui, e. `TDES` `RSA` `AES`

Gli input principali sono la chiave di crittografia utilizzata per crittografare i dati, i dati in testo semplice in formato HexBinary da crittografare e gli attributi di crittografia come il vettore di inizializzazione e la modalità per i cifrari a blocchi come TDES. I dati in chiaro devono essere espressi in multipli di 8 byte per, 16 byte per `TDES` e della lunghezza della chiave nel caso di. `AES` `RSA` Gli input chiave simmetrici (TDES, AES, DUKPT, EMV) devono essere aggiunti nei casi in cui i dati di input non soddisfino questi requisiti. La tabella seguente mostra la lunghezza massima del testo in chiaro per ogni tipo di chiave e il tipo di padding definito per le chiavi RSA. `EncryptionAttributes`


| Tipo di imbottitura | RSA\$12048 | RSA\$13072 | RSA\$14096 | 
| --- | --- | --- | --- | 
| OAEP SHA1 | 428 | 684 | 940 | 
| OAEP SHA256 | 380 | 636 | 892 | 
| OAEP SHA512 | 252 | 508 | 764 | 
| PKCS1 | 488 | 744 | 1000 | 
| None | 488 | 744 | 1000 | 

Gli output primari includono i dati crittografati come testo cifrato in formato HexBinary e il valore di checksum per la chiave di crittografia. [Per i dettagli su tutte le opzioni disponibili, consulta la Guida API per Encrypt.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html) 

**Topics**
+ [Crittografa i dati utilizzando la chiave simmetrica AES](#w2aac15c16c11c13)
+ [Crittografa i dati utilizzando la chiave DUKPT](#w2aac15c16c11c15)
+ [Crittografa i dati utilizzando una chiave simmetrica derivata da EMV](#w2aac15c16c11c17)
+ [Crittografa i dati utilizzando una chiave RSA](#crypto-ops.encrypt-rsa)

## Crittografa i dati utilizzando la chiave simmetrica AES
<a name="w2aac15c16c11c13"></a>

**Nota**  
 Tutti gli esempi presuppongono che la chiave pertinente esista già. Le chiavi possono essere create utilizzando l'[CreateKey](create-keys.md)operazione o importate utilizzando l'[ImportKey](keys-import.md)operazione. 

**Example**  
 In questo esempio, crittograferemo i dati in chiaro utilizzando una chiave simmetrica che è stata creata utilizzando l'[CreateKey](create-keys.md)Operazione o importata utilizzando l'Operazione. [ImportKey](keys-import.md) Per questa operazione, la chiave deve essere impostata su e KeyModesOfUse impostata su. `Encrypt` KeyUsage `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY` Per ulteriori opzioni, consulta la sezione [Chiavi per le operazioni crittografiche](crypto-ops-validkeys-ops.md).   

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

## Crittografa i dati utilizzando la chiave DUKPT
<a name="w2aac15c16c11c15"></a>

**Example**  
 [In questo esempio, crittograferemo i dati in chiaro utilizzando una chiave DUKPT.](terminology.md#terms.dukpt) AWS Supporti per la crittografia dei pagamenti e le chiavi DUKPT. `TDES` `AES` Per questa operazione, la chiave deve essere impostata `DeriveKey` e KeyModesOfUse KeyUsage impostata su. `TR31_B0_BASE_DERIVATION_KEY` Per ulteriori opzioni, consulta la sezione [Chiavi per le operazioni crittografiche](crypto-ops-validkeys-ops.md).   

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

## Crittografa i dati utilizzando una chiave simmetrica derivata da EMV
<a name="w2aac15c16c11c17"></a>

**Example**  
 In questo esempio, crittograferemo i dati di testo non crittografato utilizzando una chiave simmetrica derivata da EMV che è già stata creata. È possibile utilizzare un comando come questo per inviare dati a una scheda EMV. Per questa operazione, la chiave deve essere KeyModesOfUse impostata su `Derive` e KeyUsage impostata su `TR31_E1_EMV_MKEY_CONFIDENTIALITY` o`TR31_E6_EMV_MKEY_OTHER`. Per maggiori dettagli, consulta [Keys for Cryptographic Operations](crypto-ops-validkeys-ops.md).   

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

## Crittografa i dati utilizzando una chiave RSA
<a name="crypto-ops.encrypt-rsa"></a>

**Example**  
 In questo esempio, crittograferemo i dati in chiaro utilizzando una [chiave pubblica RSA](terminology.md#terms.publickey) che è stata importata utilizzando l'operazione. [ImportKey](keys-import.md) Per questa operazione, la chiave deve essere impostata su e KeyModesOfUse impostata su. `Encrypt` KeyUsage `TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION` Per ulteriori opzioni, consulta la sezione [Chiavi per le operazioni crittografiche](crypto-ops-validkeys-ops.md).   
 *Per PKCS \$17 o altri schemi di padding non attualmente supportati, richiedi prima di chiamare il servizio e seleziona no padding omettendo l'indicatore di padding '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"
}
```

# Decrittare i dati
<a name="decrypt-data"></a>

 [[L'`Decrypt Data`API viene utilizzata per decrittografare i dati utilizzando chiavi di crittografia dei dati simmetriche e asimmetriche, nonché chiavi derivate DUKPT ed EMV.](terminology.md#terms.emv)](terminology.md#terms.dukpt) Sono supportati vari algoritmi e varianti, tra cui, e. `TDES` `RSA` `AES`

 Gli input principali sono la chiave di decrittografia utilizzata per decrittografare i dati, i dati di testo cifrato in formato HexBinary da decrittografare e gli attributi di decrittografia come il vettore di inizializzazione, la modalità come i cifrari a blocchi ecc. Gli output principali includono i dati decrittografati come testo semplice in formato HexBinary e il valore di checksum per la chiave di decrittografia. [Per i dettagli su tutte le opzioni disponibili, consulta la Guida API per Decrypt.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html) 

**Topics**
+ [Decrittografa i dati utilizzando la chiave simmetrica AES](#w2aac15c16c13b9)
+ [Decrittografa i dati utilizzando la chiave DUKPT](#w2aac15c16c13c11)
+ [Decrittografa i dati utilizzando una chiave simmetrica derivata da EMV](#w2aac15c16c13c13)
+ [Decrittografa i dati utilizzando una chiave RSA](#crypto-ops.decrypt-rsa)

## Decrittografa i dati utilizzando la chiave simmetrica AES
<a name="w2aac15c16c13b9"></a>

**Example**  
 In questo esempio, decifreremo i dati di testo cifrato utilizzando una chiave simmetrica. Questo esempio mostra una `AES` chiave ma sono anche supportate. `TDES_2KEY` `TDES_3KEY` Per questa operazione, la chiave deve essere KeyModesOfUse impostata `Decrypt` e KeyUsage impostata su`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Per ulteriori opzioni, consulta la sezione [Chiavi per le operazioni crittografiche](crypto-ops-validkeys-ops.md).   

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

## Decrittografa i dati utilizzando la chiave DUKPT
<a name="w2aac15c16c13c11"></a>

**Nota**  
 L'utilizzo dei dati di decrittografia con DUKPT per le transazioni P2PE può restituire all'applicazione i dati PAN della carta di credito e di altri titolari di carta di credito che dovranno essere presi in considerazione per determinare l'ambito PCI DSS. 

**Example**  
 [In questo esempio, decifreremo i dati di testo cifrato utilizzando una chiave DUKPT che è stata creata utilizzando l'Operazione o importata utilizzando l'Operazione. [CreateKey[ImportKey](keys-import.md)](create-keys.md)](terminology.md#terms.dukpt) Per questa operazione, la chiave deve essere impostata e impostata su. KeyModesOfUse `DeriveKey` KeyUsage `TR31_B0_BASE_DERIVATION_KEY` Per ulteriori opzioni, consulta la sezione [Chiavi per le operazioni crittografiche](crypto-ops-validkeys-ops.md). Quando si utilizza`DUKPT`, per l'`TDES`algoritmo, la lunghezza dei dati del testo cifrato deve essere un multiplo di 16 byte. Per l'`AES`algoritmo, la lunghezza dei dati del testo cifrato deve essere un multiplo di 32 byte.   

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

## Decrittografa i dati utilizzando una chiave simmetrica derivata da EMV
<a name="w2aac15c16c13c13"></a>

**Example**  
 In questo esempio, decifreremo i dati di testo cifrato utilizzando una chiave simmetrica derivata da EMV che è stata creata utilizzando l'operazione o importata utilizzando l'operazione. [CreateKey[ImportKey](keys-import.md)](create-keys.md) Per questa operazione, la chiave deve essere impostata su e impostata su o. KeyModesOfUse `Derive` KeyUsage `TR31_E1_EMV_MKEY_CONFIDENTIALITY` `TR31_E6_EMV_MKEY_OTHER` Per maggiori dettagli, consulta [Keys for Cryptographic Operations](crypto-ops-validkeys-ops.md).   

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

## Decrittografa i dati utilizzando una chiave RSA
<a name="crypto-ops.decrypt-rsa"></a>

**Example**  
 In questo esempio, decifreremo i dati di testo cifrato utilizzando una [coppia di chiavi](terminology.md#terms.privatekey) RSA creata utilizzando l'operazione. [CreateKey](create-keys.md) Per questa operazione, la chiave deve essere impostata su enable e KeyModesOfUse impostata su. `Decrypt` KeyUsage `TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION` Per ulteriori opzioni, consulta [Keys for Cryptographic Operations](crypto-ops-validkeys-ops.md).   
 Per PKCS \$17 o altri schemi di padding non attualmente supportati, seleziona no padding omettendo l'indicatore di padding *'Asymmetric= \$1\$1* 'e rimuovi il padding dopo aver chiamato il servizio.   

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