

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Datenoperationen
<a name="data-operations"></a>

Nachdem Sie einen Schlüssel für die AWS Zahlungskryptografie eingerichtet haben, kann dieser zur Durchführung kryptografischer Operationen verwendet werden. Verschiedene Operationen führen unterschiedliche Arten von Aktivitäten aus, die von Verschlüsselung und Hashing bis hin zu domänenspezifischen Algorithmen wie der Generierung reichen. CVV2 

Verschlüsselte Daten können ohne den entsprechenden Entschlüsselungsschlüssel (je nach Verschlüsselungstyp der symmetrische Schlüssel oder der private Schlüssel) nicht entschlüsselt werden. Hashing- und domänenspezifische Algorithmen können ohne den symmetrischen Schlüssel oder den öffentlichen Schlüssel ebenfalls nicht verifiziert werden. 

Informationen zu gültigen Schlüsseltypen für bestimmte Operationen finden Sie unter [Gültige Schlüssel für](crypto-ops-validkeys-ops.md) kryptografische Operationen

**Anmerkung**  
Wir empfehlen, Testdaten in einer Umgebung außerhalb der Produktionsumgebung zu verwenden. Die Verwendung von Produktionsschlüsseln und -daten (PAN, BDK-ID usw.) in einer Umgebung außerhalb der Produktion kann sich auf Ihren Compliance-Umfang auswirken, z. B. bei PCI DSS und PCI P2PE. 

**Topics**
+ [Daten verschlüsseln, entschlüsseln und erneut verschlüsseln](crypto-ops.encryptdecrypt.md)
+ [Kartendaten generieren und verifizieren](crypto-ops-carddata.md)
+ [Generieren, übersetzen und verifizieren Sie PIN-Daten](data-operations.pindata.md)
+ [Kryptogramm für Authentifizierungsanfragen (ARQC) verifizieren](data-operations.verifyauthrequestcryptogram.md)
+ [MAC generieren und verifizieren](crypto-ops-mac.md)
+ [Gültige Schlüssel für kryptografische Operationen](crypto-ops-validkeys-ops.md)

# Daten verschlüsseln, entschlüsseln und erneut verschlüsseln
<a name="crypto-ops.encryptdecrypt"></a>

Verschlüsselungs- und Entschlüsselungsmethoden können verwendet werden, um Daten mithilfe einer Vielzahl von symmetrischen und asymmetrischen Techniken wie TDES, AES und RSA zu verschlüsseln oder zu entschlüsseln. [[Diese Methoden unterstützen auch Schlüssel, die mit DUKPT- und EMV-Techniken abgeleitet wurden.](terminology.md#terms.emv)](terminology.md#terms.dukpt) Für Anwendungsfälle, in denen Sie Daten unter einem neuen Schlüssel sichern möchten, ohne die zugrunde liegenden Daten offenzulegen, kann der ReEncrypt Befehl auch verwendet werden.

**Anmerkung**  
 Bei der Verwendung der encrypt/decrypt Funktionen wird davon ausgegangen, dass alle Eingaben in HexBinary vorliegen. Beispielsweise wird ein Wert von 1 als 31 (Hex) eingegeben und ein kleingeschriebenes t wird als 74 (Hex) dargestellt. Alle Ausgaben sind ebenfalls in HexBinary. 

[Einzelheiten zu allen verfügbaren Optionen finden Sie im API-Leitfaden für [Encrypt, [Decrypt and Re-Encrypt](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html)](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html).](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_ReEncryptData.html) 

**Topics**
+ [Daten verschlüsseln](encrypt-data.md)
+ [Daten entschlüsseln](decrypt-data.md)

# Daten verschlüsseln
<a name="encrypt-data"></a>

 [[Die `Encrypt Data` API wird verwendet, um Daten mit symmetrischen und asymmetrischen Datenverschlüsselungsschlüsseln sowie von DUKPT und EMV abgeleiteten Schlüsseln zu verschlüsseln.](terminology.md#terms.emv)](terminology.md#terms.dukpt) Verschiedene Algorithmen und Varianten werden unterstützt, darunter, und. `TDES` `RSA` `AES`

Die wichtigsten Eingaben sind der Verschlüsselungsschlüssel, der zur Verschlüsselung der Daten verwendet wird, die Klartextdaten im HexBinary-Format, die verschlüsselt werden sollen, und Verschlüsselungsattribute wie Initialisierungsvektor und Modus für Blockchiffren wie TDES. Die Klartextdaten müssen ein Vielfaches von 8 Byte für`TDES`, 16 Byte für `AES` und der Länge des Schlüssels im Fall von sein. `RSA` Symmetrische Tasteneingaben (TDES, AES, DUKPT, EMV) sollten aufgefüllt werden, falls die Eingabedaten diese Anforderungen nicht erfüllen. Die folgende Tabelle zeigt die maximale Klartext-Länge für jeden Schlüsseltyp und den Fülltyp, den Sie für RSA-Schlüssel definieren. `EncryptionAttributes`


| Füllungstyp | 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 | 

Die primären Ausgaben enthalten die verschlüsselten Daten als Chiffretext im HexBinary-Format und den Prüfsummenwert für den Verschlüsselungsschlüssel. [Einzelheiten zu allen verfügbaren Optionen finden Sie im API-Leitfaden für Encrypt.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_EncryptData.html) 

**Topics**
+ [Verschlüsseln Sie Daten mit einem symmetrischen AES-Schlüssel](#w2aac15c16c11c13)
+ [Verschlüsseln Sie Daten mit dem DUKPT-Schlüssel](#w2aac15c16c11c15)
+ [Verschlüsseln Sie Daten mit einem von EMV abgeleiteten symmetrischen Schlüssel](#w2aac15c16c11c17)
+ [Verschlüsseln Sie Daten mit einem RSA-Schlüssel](#crypto-ops.encrypt-rsa)

## Verschlüsseln Sie Daten mit einem symmetrischen AES-Schlüssel
<a name="w2aac15c16c11c13"></a>

**Anmerkung**  
 Alle Beispiele gehen davon aus, dass der entsprechende Schlüssel bereits existiert. Schlüssel können mithilfe der [CreateKey](create-keys.md)Operation erstellt oder mithilfe der [ImportKey](keys-import.md)Operation importiert werden. 

**Example**  
 In diesem Beispiel verschlüsseln wir Klartextdaten mit einem symmetrischen Schlüssel, der mithilfe der Operation erstellt oder mithilfe der [CreateKey](create-keys.md)Operation importiert wurde. [ImportKey](keys-import.md) Für diesen Vorgang muss der Schlüssel auf `Encrypt` und KeyUsage auf KeyModesOfUse gesetzt sein. `TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY` Weitere Optionen finden Sie unter [Schlüssel für kryptografische Operationen](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"
}
```

## Verschlüsseln Sie Daten mit dem DUKPT-Schlüssel
<a name="w2aac15c16c11c15"></a>

**Example**  
 [In diesem Beispiel verschlüsseln wir Klartextdaten mit einem DUKPT-Schlüssel.](terminology.md#terms.dukpt) AWS Zahlungskryptografie unterstützt `TDES` und DUKPT-Schlüssel. `AES` Für diesen Vorgang muss der Schlüssel auf `DeriveKey` und KeyUsage auf KeyModesOfUse gesetzt sein. `TR31_B0_BASE_DERIVATION_KEY` Weitere Optionen finden Sie unter [Schlüssel für kryptografische Operationen](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"
}
```

## Verschlüsseln Sie Daten mit einem von EMV abgeleiteten symmetrischen Schlüssel
<a name="w2aac15c16c11c17"></a>

**Example**  
 In diesem Beispiel verschlüsseln wir Klartextdaten mit einem von EMV abgeleiteten symmetrischen Schlüssel, der bereits erstellt wurde. Sie könnten einen Befehl wie diesen verwenden, um Daten an eine EMV-Karte zu senden. Für diesen Vorgang muss KeyModesOfUse der Schlüssel auf `Derive` und auf `TR31_E1_EMV_MKEY_CONFIDENTIALITY` oder KeyUsage `TR31_E6_EMV_MKEY_OTHER` gesetzt sein. Weitere Informationen finden Sie unter [Schlüssel für kryptografische Operationen](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"
}
```

## Verschlüsseln Sie Daten mit einem RSA-Schlüssel
<a name="crypto-ops.encrypt-rsa"></a>

**Example**  
 In diesem Beispiel verschlüsseln wir Klartextdaten mit einem [öffentlichen RSA-Schlüssel, der mit der Operation](terminology.md#terms.publickey) importiert wurde. [ImportKey](keys-import.md) Für diesen Vorgang muss der Schlüssel auf `Encrypt` und KeyUsage auf KeyModesOfUse gesetzt sein. `TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION` Weitere Optionen finden Sie unter [Schlüssel für kryptografische Operationen](crypto-ops-validkeys-ops.md).   
 *Für PKCS \$17 oder andere Padding-Schemata, die derzeit nicht unterstützt werden, bewerben Sie sich bitte, bevor Sie den Service aufrufen, und wählen Sie kein Padding aus, indem Sie den Padding-Indikator 'Asymmetric= \$1\$1 'weglassen*   

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

# Daten entschlüsseln
<a name="decrypt-data"></a>

 [[Die `Decrypt Data` API wird verwendet, um Daten mit symmetrischen und asymmetrischen Datenverschlüsselungsschlüsseln sowie von DUKPT und EMV abgeleiteten Schlüsseln zu entschlüsseln.](terminology.md#terms.emv)](terminology.md#terms.dukpt) Verschiedene Algorithmen und Varianten werden unterstützt, darunter, und. `TDES` `RSA` `AES`

 Die wichtigsten Eingaben sind der Entschlüsselungsschlüssel, der zum Entschlüsseln der Daten verwendet wird, die Chiffretextdaten im HexBinary-Format, die entschlüsselt werden sollen, und Entschlüsselungsattribute wie Initialisierungsvektor, Modus als Blockchiffren usw. Die primären Ausgaben umfassen die entschlüsselten Daten als Klartext im HexBinary-Format und den Prüfsummenwert für den Entschlüsselungsschlüssel. [Einzelheiten zu allen verfügbaren Optionen finden Sie im API-Leitfaden für Decrypt.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DecryptData.html) 

**Topics**
+ [Entschlüsseln Sie Daten mit dem symmetrischen AES-Schlüssel](#w2aac15c16c13b9)
+ [Entschlüsseln Sie Daten mit dem DUKPT-Schlüssel](#w2aac15c16c13c11)
+ [Entschlüsseln Sie Daten mithilfe eines von EMV abgeleiteten symmetrischen Schlüssels](#w2aac15c16c13c13)
+ [Entschlüsseln Sie Daten mit einem RSA-Schlüssel](#crypto-ops.decrypt-rsa)

## Entschlüsseln Sie Daten mit dem symmetrischen AES-Schlüssel
<a name="w2aac15c16c13b9"></a>

**Example**  
 In diesem Beispiel werden wir Chiffretextdaten mit einem symmetrischen Schlüssel entschlüsseln. Dieses Beispiel zeigt einen `AES` Schlüssel, aber `TDES_2KEY` er wird auch unterstützt. `TDES_3KEY` Für diesen Vorgang muss der Schlüssel auf KeyModesOfUse gesetzt `Decrypt` und auf KeyUsage gesetzt sein`TR31_D0_SYMMETRIC_DATA_ENCRYPTION_KEY`. Weitere Optionen finden Sie unter [Schlüssel für kryptografische Operationen](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"
}
```

## Entschlüsseln Sie Daten mit dem DUKPT-Schlüssel
<a name="w2aac15c16c13c11"></a>

**Anmerkung**  
 Die Verwendung von Entschlüsselungsdaten mit DUKPT für P2PE-Transaktionen kann dazu führen, dass Kreditkarten-PAN und andere Karteninhaberdaten an Ihre Anwendung zurückgegeben werden, die bei der Bestimmung des PCI-DSS-Umfangs berücksichtigt werden müssen. 

**Example**  
 In diesem Beispiel werden wir Chiffretextdaten mithilfe eines [DUKPT-Schlüssels](terminology.md#terms.dukpt) entschlüsseln, der mit der Operation erstellt oder mit der Operation importiert wurde. [CreateKey[ImportKey](keys-import.md)](create-keys.md) Für diesen Vorgang muss der Schlüssel auf gesetzt und auf KeyModesOfUse gesetzt sein`DeriveKey`. KeyUsage `TR31_B0_BASE_DERIVATION_KEY` Weitere Optionen finden Sie unter [Schlüssel für kryptografische Operationen](crypto-ops-validkeys-ops.md). Wenn Sie für den `TDES` Algorithmus verwenden`DUKPT`, muss die Länge der Chiffretext-Daten ein Vielfaches von 16 Byte sein. Für `AES` Algorithmen muss die Länge der Chiffretext-Daten ein Vielfaches von 32 Byte sein.   

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

## Entschlüsseln Sie Daten mithilfe eines von EMV abgeleiteten symmetrischen Schlüssels
<a name="w2aac15c16c13c13"></a>

**Example**  
 In diesem Beispiel werden wir Chiffretextdaten mit einem von EMV abgeleiteten symmetrischen Schlüssel entschlüsseln, der mit der Operation erstellt oder mit der Operation importiert wurde. [CreateKey[ImportKey](keys-import.md)](create-keys.md) Für diesen Vorgang muss der Schlüssel auf und auf oder KeyModesOfUse gesetzt sein. `Derive` KeyUsage `TR31_E1_EMV_MKEY_CONFIDENTIALITY` `TR31_E6_EMV_MKEY_OTHER` Weitere Informationen finden Sie unter [Schlüssel für kryptografische Operationen](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"
}
```

## Entschlüsseln Sie Daten mit einem RSA-Schlüssel
<a name="crypto-ops.decrypt-rsa"></a>

**Example**  
 In diesem Beispiel werden wir Chiffretextdaten mit einem [RSA-Schlüsselpaar](terminology.md#terms.privatekey) entschlüsseln, das mit der Operation erstellt wurde. [CreateKey](create-keys.md) Für diesen Vorgang muss der Schlüssel auf aktiviert `Decrypt` und auf KeyModesOfUse gesetzt sein. KeyUsage `TR31_D1_ASYMMETRIC_KEY_FOR_DATA_ENCRYPTION` Weitere Optionen finden Sie unter [Schlüssel für kryptografische Operationen](crypto-ops-validkeys-ops.md).   
 Für PKCS \$17 oder andere Padding-Schemata, die derzeit nicht unterstützt werden, wählen Sie bitte kein Padding aus, indem Sie den Padding-Indikator *'Asymmetric= \$1\$1* 'weglassen und das Padding nach dem Aufrufen des Dienstes entfernen.   

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

# Kartendaten generieren und verifizieren
<a name="crypto-ops-carddata"></a>

Das Generieren und Überprüfen von Kartendaten umfasst Daten, die aus Kartendaten abgeleitet wurden, z. B. CVV CVV2, CVC und CVV.

**Topics**
+ [Kartendaten generieren](generate-card-data.md)
+ [Überprüfen Sie die Kartendaten](verify-card-data.md)

# Kartendaten generieren
<a name="generate-card-data"></a>

 Die `Generate Card Data` API wird verwendet, um Kartendaten mithilfe von Algorithmen wie CVV CVV2 oder Dynamic CVV2 zu generieren. Welche Schlüssel für diesen Befehl verwendet werden können, finden Sie im Abschnitt [Gültige Schlüssel für kryptografische Operationen](crypto-ops-validkeys-ops.md). 

Viele kryptografische Werte wie CVV, iCVV CVV2, CAV V7 verwenden denselben kryptografischen Algorithmus, variieren jedoch die Eingabewerte. Zum Beispiel hat [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) Eingaben für Kartennummer und Ablaufdatum. ServiceCode Während [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) nur zwei dieser Eingaben hat, liegt das daranCVC2, dass für CVV2/der auf 000 festgelegt ServiceCode ist. In ähnlicher Weise ServiceCode ist der Wert für iCVV auf 999 festgelegt. Einige Algorithmen können die vorhandenen Felder wiederverwenden, z. B. CAVV V8. In diesem Fall müssen Sie die korrekten Eingabewerte im Handbuch Ihres Anbieters nachlesen. 

**Anmerkung**  
 Das Ablaufdatum muss für die Generierung und Validierung im gleichen Format eingegeben werden (z. B. MMYY oder YYMM), damit korrekte Ergebnisse erzielt werden. 

# Generieren CVV2
<a name="generate-cvv2"></a>

**Example**  
In diesem Beispiel generieren wir eine CVV2 für eine bestimmte PAN mit den Eingaben von `PAN` und dem Ablaufdatum der Karte. Dies setzt voraus, dass Sie einen Kartenbestätigungsschlüssel [generiert](create-keys.md#cvvkey-example) haben.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --primary-account-number=171234567890123 --generation-attributes CardVerificationValue2={CardExpiryDate=0123}
```

```
  {
      "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
      "KeyCheckValue": "CADDA1",
      "ValidationData": "801"
  }
```

# Generieren Sie iCVV
<a name="generate-iCVV"></a>

**Example**  
In diesem Beispiel generieren wir ein [iCVV](terminology.md#terms.icvv) für eine bestimmte PAN mit Eingaben von`PAN`, einem Servicecode von 999 und dem Ablaufdatum der Karte. [Dies setzt voraus, dass Sie einen Kartenbestätigungsschlüssel generiert haben.](create-keys.md#cvvkey-example)   
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) im API-Referenzhandbuch.   

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=999}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1",
    "ValidationData": "801"
}
```

# Überprüfen Sie die Kartendaten
<a name="verify-card-data"></a>

`Verify Card Data`wird verwendet, um Daten zu verifizieren, die mithilfe von Zahlungsalgorithmen erstellt wurden, die auf Verschlüsselungsprinzipien basieren, wie `DISCOVER_DYNAMIC_CARD_VERIFICATION_CODE` z. 

Die Eingabewerte werden in der Regel im Rahmen einer eingehenden Transaktion an einen Emittenten oder einen unterstützenden Plattformpartner weitergegeben. [Informationen zur Überprüfung eines ARQC-Kryptogramms (das für EMV-Chipkarten verwendet wird) finden Sie unter ARQC verifizieren.](data-operations.verifyauthrequestcryptogram.md) 

Weitere Informationen finden Sie im API-Leitfaden. [VerifyCardValidationData](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyCardValidationData.html)

Wenn der Wert verifiziert ist, gibt die API http/200 zurück. Wenn der Wert nicht verifiziert ist, wird http/400 zurückgegeben.

# Verifizieren CVV2
<a name="verify-cvv2"></a>

**Example**  
In diesem Beispiel validieren wir einen CVV/ CVV2 für eine bestimmte PAN. Das CVV2 wird in der Regel vom Karteninhaber oder Benutzer während der Transaktion zur Validierung bereitgestellt. Um ihre Eingaben zu validieren, werden zur Laufzeit die folgenden Werte bereitgestellt: [Key to Use for Validation (CVK)](create-keys.md#cvvkey-example)`PAN`, Ablaufdatum der Karte und CVV2 Eingabe. Das Kartenablaufformat muss mit dem Format übereinstimmen, das bei der ursprünglichen Wertgenerierung verwendet wurde.   
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue2](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue2.html) im API-Referenzhandbuch.   

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --primary-account-number=171234567890123 --verification-attributes CardVerificationValue2={CardExpiryDate=0123} --validation-data 801
```

```
  {
      "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
      "KeyCheckValue": "CADDA1"
  }
```

# Überprüfen Sie iCVV
<a name="verify-iCVV"></a>

**Example**  
In diesem Beispiel verifizieren wir ein [iCVV](terminology.md#terms.icvv) für eine bestimmte PAN mit Eingaben von [Key to Use for Validation (CVK)](create-keys.md#cvvkey-example), einem Servicecode von 999`PAN`, dem Ablaufdatum der Karte und dem iCVV, das von der zu validierenden Transaktion bereitgestellt wurde.   
iCVV ist kein vom Benutzer eingegebener Wert (wie CVV2), sondern auf einer EMV-Karte eingebettet. Es sollte geprüft werden, ob es immer validiert werden sollte, wenn es bereitgestellt wird.  
Alle verfügbaren Parameter finden Sie unter [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) im API-Referenzhandbuch.   

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=1127,ServiceCode=999} --validation-data 801
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "CADDA1",
    "ValidationData": "801"
}
```

# Generieren, übersetzen und verifizieren Sie PIN-Daten
<a name="data-operations.pindata"></a>

Mit den Funktionen für PIN-Daten können Sie zufällige Pins und PIN-Bestätigungswerte (PVV) generieren und eingehende verschlüsselte Pins anhand von PVV- oder PIN-Offsets validieren. 

Mit der Pinübersetzung können Sie eine PIN von einem funktionierenden Schlüssel in einen anderen übersetzen, ohne dass die PIN im Klartext angezeigt wird, wie in PCI-PIN-Anforderung 1 festgelegt.

**Anmerkung**  
 Da es sich bei der PIN-Generierung und -Validierung in der Regel um Funktionen des Ausstellers handelt und die PIN-Übersetzung eine typische Acquirer-Funktion ist, empfehlen wir Ihnen, den Zugriff mit den geringsten Rechten in Betracht zu ziehen und die Richtlinien entsprechend Ihrem Systemanwendungsfall festzulegen. 

**Topics**
+ [PIN-Daten Translate](translate-pin-data.md)
+ [Generieren Sie PIN-Daten](generate-pin-data.md)
+ [Überprüfen Sie die PIN-Daten](verify-pin-data.md)

# PIN-Daten Translate
<a name="translate-pin-data"></a>

Funktionen zum Translate von PIN-Daten werden verwendet, um verschlüsselte PIN-Daten von einem Schlüsselsatz in einen anderen zu übersetzen, ohne dass die verschlüsselten Daten das HSM verlassen. Es wird für die P2PE-Verschlüsselung verwendet, bei der sich die funktionierenden Schlüssel ändern sollten, das Verarbeitungssystem die Daten jedoch entweder nicht entschlüsseln muss oder darf. Die primären Eingaben sind die verschlüsselten Daten, der Verschlüsselungsschlüssel, der zur Verschlüsselung der Daten verwendet wird, die Parameter, die zur Generierung der Eingabewerte verwendet werden. Bei den anderen Eingaben handelt es sich um die angeforderten Ausgabeparameter, z. B. den Schlüssel, der zur Verschlüsselung der Ausgabe verwendet werden soll, und die Parameter, mit denen diese Ausgabe erstellt wurde. Die primären Ausgaben sind ein neu verschlüsselter Datensatz sowie die Parameter, die zu seiner Generierung verwendet wurden. 

**Anmerkung**  
Aus Gründen der PCI-Konformität müssen die eingehenden und ausgehenden PrimaryAccountNumber Werte übereinstimmen. Die Übersetzung einer PIN von einer PAN in eine andere ist nicht zulässig.

**Topics**
+ [PIN von PEK nach DUKPT](#crypto-ops-pindata.pektodukpt)
+ [PIN von PEK zu PEK](#crypto-ops-pindata.pektopek)

## PIN von PEK nach DUKPT
<a name="crypto-ops-pindata.pektodukpt"></a>

**Example**  
In diesem Beispiel übersetzen wir eine PIN aus einem AES-ISO-4-PIN-Block unter Verwendung des [DUKPT](terminology.md#terms.dukpt) in eine PEK-TDES-Verschlüsselung mit einem ISO-0-PIN-Block. Dies ist üblich, wenn ein Zahlungsterminal eine PIN in ISO 4 verschlüsselt und sie dann für die nachfolgende Verarbeitung zurück in TDES übersetzt werden kann, falls die nächste Verbindung AES noch nicht unterstützt.   

```
$ aws payment-cryptography-data translate-pin-data --encrypted-pin-block "AC17DC148BDA645E" --outgoing-translation-attributes=IsoFormat0='{PrimaryAccountNumber=171234567890123}' --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt  --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/4pmyquwjs3yj4vwe --incoming-translation-attributes IsoFormat4="{PrimaryAccountNumber=171234567890123}" --incoming-dukpt-attributes KeySerialNumber="FFFF9876543210E00008"  
```

```
    {
            "PinBlock": "1F4209C670E49F83E75CC72E81B787D9",
            "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
            "KeyCheckValue": "7CC9E2"
        }
```

## PIN von PEK zu PEK
<a name="crypto-ops-pindata.pektopek"></a>

**Example**  
In diesem Beispiel übersetzen wir eine unter einem PEK (PIN Encryption Key) verschlüsselte PIN in ein anderes PEK. Dies wird häufig verwendet, wenn Transaktionen zwischen verschiedenen Systemen oder Partnern weitergeleitet werden, die unterschiedliche Verschlüsselungsschlüssel verwenden, wobei gleichzeitig die PCI-PIN-Konformität gewahrt bleibt, indem die PIN während des gesamten Prozesses verschlüsselt bleibt. Beide Schlüssel verwenden in diesem Beispiel die TDES 3KEY-Verschlüsselung, es sind jedoch eine Vielzahl von Optionen verfügbar, darunter AES ISO-4 bis TDES ISO-0, DUKPT bis PEK oder PEK. AS2805   

```
$ aws payment-cryptography-data translate-pin-data --encrypted-pin-block "AC17DC148BDA645E" \
    --incoming-translation-attributes IsoFormat0='{PrimaryAccountNumber=171234567890123}' \
    --incoming-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt \
    --outgoing-translation-attributes IsoFormat0='{PrimaryAccountNumber=171234567890123}' \
    --outgoing-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh
```

```
{
    "PinBlock": "E8F2A6C4D1B93E7F",
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/alsuwfxug3pgy6xh",
    "KeyCheckValue": "9A325B"
}
```
Der Ausgangs-PIN-Block ist jetzt unter dem zweiten PEK verschlüsselt und kann sicher an das nachgeschaltete System übertragen werden, das den entsprechenden Schlüssel besitzt.

# Generieren Sie PIN-Daten
<a name="generate-pin-data"></a>

Die Funktionen zum Generieren von PIN-Daten werden zur Generierung von PIN-bezogenen Werten wie [PVV](terminology.md#terms.pvv) und Pin-Block-Offsets verwendet, die zur Überprüfung der PIN-Eingabe durch Benutzer während der Transaktions- oder Autorisierungszeit verwendet werden. Diese API kann auch mithilfe verschiedener Algorithmen eine neue zufällige PIN generieren.

# Generieren Sie eine zufällige PIN und einen passenden Visa PVV
<a name="generate-pvv-random"></a>

**Example**  
In diesem Beispiel werden wir eine neue (zufällige) PIN generieren, bei der die Ausgänge verschlüsselt sind `PIN block` (PinData. PinBlock) und a `PVV` (pinData.Offset). Die wichtigsten Eingaben sind`PAN`, der`Pin Verification Key`, der und der`Pin Encryption Key`. `PIN block format`   
 Dieser Befehl setzt voraus, dass der Schlüssel vom Typ ist`TR31_V2_VISA_PIN_VERIFICATION_KEY`.   

```
$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes VisaPin={PinVerificationKeyIndex=1}
```

```
{
            "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
            "GenerationKeyCheckValue": "7F2363",
            "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
            "EncryptionKeyCheckValue": "7CC9E2",
            "EncryptedPinBlock": "AC17DC148BDA645E",
            "PinData": {
                "VerificationValue": "5507"
            }
        }
```

# Generieren Sie eine Visa-PVV für eine bekannte PIN
<a name="generate-pvv-givenpin"></a>

**Example**  
In diesem Beispiel werden wir eine PVV für eine bestimmte (verschlüsselte) PIN generieren. Eine verschlüsselte PIN kann vorab empfangen werden, z. B. von einem Zahlungsterminal oder von einem Karteninhaber, wobei der vom [Benutzer wählbare](https://github.com/aws-samples/samples-for-payment-cryptography-service/tree/main/python_sdk_example/ecdh_flows) PIN-Flow verwendet wird. Die wichtigsten Eingaben sind`PAN`, der`Pin Verification Key`, der`Pin Encryption Key`, der `Encrypted Pin Block` und der. `PIN block format`   

```
$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes VisaPinVerificationValue={PinVerificationKeyIndex=1,EncryptedPinBlock=AA584CED31790F37}
```

```
{
            "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
            "GenerationKeyCheckValue": "7F2363",
            "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
            "EncryptionKeyCheckValue": "7CC9E2",
            "EncryptedPinBlock": "AC17DC148BDA645E",
            "PinData": {
                "VerificationValue": "5507"
            }
        }
```

# Generiert den IBM3624 Pin-Offset für einen Pin
<a name="generate-ibm3624"></a>

 IBM 3624 PIN Offset wird manchmal auch als IBM-Methode bezeichnet. Diese Methode generiert eine natural/intermediate PIN anhand der Validierungsdaten (normalerweise die PAN) und eines PIN-Schlüssels (PVK). Natürliche Pins sind quasi ein abgeleiteter Wert, und da sie deterministisch sind, sind sie für einen Emittenten sehr effizient zu handhaben, da keine PIN-Daten auf Karteninhaberebene gespeichert werden müssen. Der offensichtlichste Nachteil ist, dass dieses Schema vom Karteninhaber auswählbare oder zufällige Pins nicht berücksichtigt. Um diese Arten von Pins zu berücksichtigen, wurde dem Schema ein Offset-Algorithmus hinzugefügt. Der Offset stellt den Unterschied zwischen dem vom Benutzer ausgewählten (oder zufälligen) Pin und dem natürlichen Schlüssel dar. Der Offsetwert wird vom Kartenaussteller oder Kartenverarbeiter gespeichert. Zum Zeitpunkt der Transaktion berechnet der AWS Payment Cryptography Service intern die natürliche PIN neu und wendet den Offset an, um die PIN zu ermitteln. Dieser Wert wird dann mit dem Wert verglichen, der in der Transaktionsautorisierung angegeben wurde. 

Es gibt mehrere Optionen für IBM3624:
+ `Ibm3624NaturalPin`gibt die natürliche PIN und einen verschlüsselten Pin-Block aus
+ `Ibm3624PinFromOffset`generiert bei gegebenem Offset einen verschlüsselten Pin-Block
+ `Ibm3624RandomPin`generiert eine zufällige PIN und dann den passenden Offset und den verschlüsselten Pinblock.
+  `Ibm3624PinOffset`generiert den Pin-Offset anhand einer vom Benutzer ausgewählten PIN.

Bei der AWS Zahlungskryptografie werden die folgenden Schritte ausgeführt:
+ Füllen Sie das bereitgestellte Feld mit 16 Zeichen aus. Wenn <16 angegeben sind, füllen Sie den Text auf der rechten Seite mit dem angegebenen Füllzeichen auf.
+ Verschlüsselt die Validierungsdaten mithilfe des PIN-Generierungsschlüssels.
+ Dezimalisieren Sie die verschlüsselten Daten mithilfe der Dezimalisierungstabelle. Dadurch werden Hexadezimalziffern Dezimalziffern zugeordnet, zum Beispiel kann 'A' 9 und 1 1 1 zugeordnet werden.
+ Ermittelt die ersten 4 Ziffern aus einer Hexadezimaldarstellung der Ausgabe. Das ist der natürliche Stift.
+ Wenn ein Benutzer eine PIN ausgewählt hat oder eine zufällige PIN generiert wurde, subtrahiert Modulo die natürliche PIN mit der Kunden-PIN. Das Ergebnis ist der Pin-Offset.

**Topics**
+ [Beispiel: Generieren Sie den IBM3624 Pin-Offset für einen Pin](#generate-ibm3624-random-example)

## Beispiel: Generieren Sie den IBM3624 Pin-Offset für einen Pin
<a name="generate-ibm3624-random-example"></a>

In diesem Beispiel werden wir einen neuen (zufälligen) Pin generieren, bei dem die Ausgänge verschlüsselt sind `PIN block` (PinData. PinBlock) und einen `IBM3624` Offset-Wert (pinData.Offset). Bei den Eingaben handelt es sich `PAN` um Validierungsdaten (normalerweise das Pan), das Füllzeichen, das`Pin Verification Key`, das und das. `Pin Encryption Key` `PIN block format`

 Für diesen Befehl müssen der Pin-Generierungsschlüssel vom Typ `TR31_V1_IBM3624_PIN_VERIFICATION_KEY` und der Verschlüsselungsschlüssel vom Typ `TR31_P0_PIN_ENCRYPTION_KEY` 

**Example**  
Das folgende Beispiel zeigt die Generierung einer zufälligen PIN und die anschließende Ausgabe des verschlüsselten Pinblocks und des IBM3624 Offset-Werts mithilfe von Ibm3624 RandomPin   

```
$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes Ibm3624RandomPin="{DecimalizationTable=9876543210654321,PinValidationDataPadCharacter=D,PinValidationData=171234567890123}"
```

```
{
              "GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
              "GenerationKeyCheckValue": "7F2363",
              "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
              "EncryptionKeyCheckValue": "7CC9E2",
              "EncryptedPinBlock": "AC17DC148BDA645E",
              "PinData": {
                  "PinOffset": "5507"
              }
          }
```

# Überprüfen Sie die PIN-Daten
<a name="verify-pin-data"></a>

Die Funktionen zur Überprüfung der PIN-Daten werden verwendet, um zu überprüfen, ob eine PIN korrekt ist. Dabei wird in der Regel der zuvor gespeicherte PIN-Wert mit dem verglichen, den der Karteninhaber an einem POI eingegeben hat. Diese Funktionen vergleichen zwei Werte, ohne den zugrunde liegenden Wert einer der beiden Quellen offenzulegen. 

## Überprüfen Sie die verschlüsselte PIN mit der PVV-Methode
<a name="verify-pin-data.pvv-example"></a>

**Example**  
In diesem Beispiel validieren wir eine PIN für eine bestimmte PAN. Die PIN wird in der Regel vom Karteninhaber oder Benutzer während der Transaktion zur Validierung bereitgestellt und mit dem in der Datei hinterlegten Wert verglichen (die Eingabe des Karteninhabers wird als verschlüsselter Wert vom Terminal oder einem anderen Upstream-Anbieter bereitgestellt). Um diese Eingabe zu validieren, werden zur Laufzeit auch die folgenden Werte bereitgestellt: Der Schlüssel, mit dem die eingegebene PIN verschlüsselt wurde (dies ist häufig eine`IWK`), `PAN` und der Wert, anhand dessen überprüft werden soll (entweder ein `PVV` oder). `PIN offset`   
Wenn AWS Payment Cryptography die PIN validieren kann, wird ein http/200 zurückgegeben. Wenn die PIN nicht validiert wird, wird ein http/400 zurückgegeben.  

```
$ aws payment-cryptography-data verify-pin-data --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0  --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=5507}" --encrypted-pin-block AC17DC148BDA645E 
```

```
        {
            "VerificationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
            "VerificationKeyCheckValue": "7F2363",
            "EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
            "EncryptionKeyCheckValue": "7CC9E2",
    
        }
```

## Überprüfen Sie die verschlüsselte PIN mit der PVV-Methode — Fehler: ungültige PIN
<a name="verify-pin-data.pvv-example.badpin"></a>

**Example**  
In diesem Beispiel versuchen wir, eine PIN für eine bestimmte PAN zu validieren, was jedoch fehlschlägt, da die PIN falsch ist.   
Bei der Verwendung wird SDKs Folgendes angezeigt: \$1"Nachricht“ :"Die Überprüfung des Pin-Blocks ist fehlgeschlagen.“ , "Grund“ :"INVALID\$1PIN "\$1  

```
$ aws payment-cryptography-data verify-pin-data --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0  --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=9999}" --encrypted-pin-block AC17DC148BDA645E 
```

```
        An error occurred (VerificationFailedException) when calling the VerifyPinData operation: Pin block verification failed. 
```

## Überprüfen Sie die verschlüsselte PIN mit der PVV-Methode — Fehler bei fehlerhaften Eingaben
<a name="verify-pin-data.pvv-example.badkey"></a>

**Example**  
In diesem Beispiel versuchen wir, eine PIN für eine bestimmte PAN zu validieren, was jedoch aufgrund fehlerhafter Eingaben fehlschlägt und die eingehenden Daten keine gültige PIN waren. Die häufigsten Ursachen sind: 1/falscher Schlüssel verwendet 2/Eingabeparameter wie Pan oder Pin-Block-Format sind falsch 3/Pin-Block ist beschädigt.   

```
$ aws payment-cryptography-data verify-pin-data --verification-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier  --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0  --verification-attributes VisaPin="{PinVerificationKeyIndex=1,VerificationValue=9999}" --encrypted-pin-block AC17DC148BDA645E 
```

```
        An error occurred (ValidationException) when calling the VerifyPinData operation: Pin block provided is invalid. Please check your input to ensure all field values are correct.
```

# Überprüfen Sie eine PIN anhand des zuvor gespeicherten Pinversatzes IBM3624
<a name="verify-pin-data.ibm3624-example"></a>

In diesem Beispiel werden wir die von einem Karteninhaber eingegebene PIN mit dem PIN-Offset vergleichen, der in der Datei beim Kartenaussteller/-verarbeiter gespeichert ist. Die Eingaben sind ähnlich wie [Generiert den IBM3624 Pin-Offset für einen Pin](generate-ibm3624.md) bei der zusätzlichen verschlüsselten PIN, die vom Zahlungsterminal (oder einem anderen Upstream-Anbieter wie dem Kartennetzwerk) bereitgestellt wird. Wenn die PIN übereinstimmt, gibt die API http 200 zurück, wobei die Ausgaben verschlüsselt sind `PIN block` (PinData. PinBlock) und einen `IBM3624` Offsetwert (pinData.Offset). 

 Dieser Befehl erfordert, dass der Schlüssel zur PIN-Generierung vom Typ `TR31_V1_IBM3624_PIN_VERIFICATION_KEY` und der Verschlüsselungsschlüssel vom Typ `TR31_P0_PIN_ENCRYPTION_KEY` 

**Example**  

```
$ aws payment-cryptography-data generate-pin-data --generation-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2 --encryption-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt --primary-account-number 171234567890123 --pin-block-format ISO_FORMAT_0 --generation-attributes Ibm3624RandomPin="{DecimalizationTable=9876543210654321,PinValidationDataPadCharacter=D,PinValidationData=171234567890123}"
```

```
{
"GenerationKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/37y2tsl45p5zjbh2",
"GenerationKeyCheckValue": "7F2363",
"EncryptionKeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ivi5ksfsuplneuyt",
"EncryptionKeyCheckValue": "7CC9E2",
"EncryptedPinBlock": "AC17DC148BDA645E",
"PinData": {
  "PinOffset": "5507"
}
}
```

# Kryptogramm für Authentifizierungsanfragen (ARQC) verifizieren
<a name="data-operations.verifyauthrequestcryptogram"></a>

 [Die Kryptogramm-API für Verify Auth Requests wird zur Überprüfung von ARQC verwendet.](terminology.md#terms.arqc) Die Generierung des ARQC fällt nicht in den Anwendungsbereich der AWS Zahlungskryptografie und wird in der Regel während der Transaktionsautorisierung auf einer EMV-Chipkarte (oder einem digitalen Äquivalent wie einer mobilen Geldbörse) durchgeführt. Ein ARQC ist für jede Transaktion einzigartig und dient dazu, sowohl die Gültigkeit der Karte kryptografisch nachzuweisen als auch sicherzustellen, dass die Transaktionsdaten exakt mit der aktuellen (erwarteten) Transaktion übereinstimmen. 

AWS Die Zahlungskryptografie bietet eine Vielzahl von Optionen zur Validierung von ARQC und zur Generierung optionaler ARPC-Werte, einschließlich der in [EMV 4.4 Buch](https://www.emvco.com/specifications/?post_id=80377) 2 definierten und anderen von Visa und Mastercard verwendeten Schemata. [Eine vollständige Liste aller verfügbaren Optionen finden Sie im Abschnitt im VerifyCardValidationData API-Leitfaden.](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyCardValidationData.html) 

ARQC-Kryptogramme erfordern in der Regel die folgenden Eingaben (obwohl dies je nach Implementierung variieren kann): 
+ [PAN](terminology.md#terms.pan) — Im Feld angegeben PrimaryAccountNumber 
+ [PAN-Sequenznummer (PSN)](terminology.md#terms.psn) — im PanSequenceNumber Feld angegeben
+ Methode zur Schlüsselableitung wie Common Session Key (CSK) — Spezifiziert in SessionKeyDerivationAttributes
+ Hauptschlüsselableitungsmodus (z. B. EMV-Option A) — Spezifiziert in MajorKeyDerivationMode
+ Transaktionsdaten — eine Zeichenfolge verschiedener Transaktions-, Terminal- und Kartendaten wie Betrag und Datum —, die im Feld angegeben sind TransactionData 
+ Hauptschlüssel des [Ausstellers — der Hauptschlüssel](terminology.md#terms.imk), der zur Ableitung des Kryptogrammschlüssels (AC) verwendet wird, der zum Schutz einzelner Transaktionen verwendet wird und in dem Feld angegeben ist KeyIdentifier 

**Topics**
+ [Transaktionsdaten erstellen](#w2aac15c25c13)
+ [Auffüllen von Transaktionsdaten](#w2aac15c25c15)
+ [Beispiele](#w2aac15c25c17)

## Transaktionsdaten erstellen
<a name="w2aac15c25c13"></a>

Der genaue Inhalt (und die Reihenfolge) des Transaktionsdatenfeldes variiert je nach Implementierung und Netzwerkschema, aber die empfohlenen Mindestfelder (und die Verkettungsreihenfolge) sind in [EMV 4.4, Buch 2, Abschnitt 8.1.1](https://www.emvco.com/specifications/?post_id=80377) — Datenauswahl, definiert. Wenn die ersten drei Felder Betrag (17,00), sonstiger Betrag (0,00) und Land des Kaufs lauten, würde dies dazu führen, dass die Transaktionsdaten wie folgt beginnen würden:
+ 000000001700 — Betrag — 12 Stellen impliziert eine zweistellige Dezimalzahl
+ 000000000000 — sonstiger Betrag — 12 Stellen impliziert eine zweistellige Dezimalzahl
+ 0124 — vierstelliger Ländercode 
+  Transaktionsdaten (teilweise) ausgeben - 0000000017000000000000000124 

## Auffüllen von Transaktionsdaten
<a name="w2aac15c25c15"></a>

Transaktionsdaten sollten vor dem Senden an den Dienst aufgefüllt werden. Die meisten Schemas verwenden das Auffüllen nach ISO 9797 Methode 2. Dabei wird an eine Hexadezimalzahl 80 gefolgt von 00 angehängt, bis das Feld ein Vielfaches der Größe des Verschlüsselungsblocks ist: 8 Byte oder 16 Zeichen für TDES und 16 Byte oder 32 Zeichen für AES. Die Alternative (Methode 1) ist nicht so üblich, verwendet aber nur 00 als Füllzeichen. 

### ISO 9797 Methode 1: Innenabstand
<a name="w2aac15c25c15b5"></a>

 Ohne Füllung: 00000000170000000000000008400080008000084016051700000000093800000B03011203 (74 Zeichen oder 37 Byte) 

 **Gepolstert: 0000000017000000000008400080008000084016051700000000093800000B03011203 000000 (80 Zeichen oder 40 Byte)** 

### Polsterung nach ISO 9797 Methode 2
<a name="w2aac15c25c15b7"></a>

 Ohne Füllung: 00000000170000000000000008400080008000084016051700000000093800000B1F220103000000 (80 Zeichen oder 40 Byte) 

 **Gepolstert: 00000000170000000000000008400080008000084016051700000000093800000B1F220103000000 8000000000000000 (88 Zeichen oder 44 Byte)** 

## Beispiele
<a name="w2aac15c25c17"></a>

### Visum CVN10
<a name="w2aac15c25c17b3"></a>

**Example**  
In diesem Beispiel validieren wir einen mit Visa generierten ARQC. CVN10   
Wenn AWS Payment Cryptography den ARQC validieren kann, wird ein http/200 zurückgegeben. Wenn dann ARCQ (Authorization Request Cryptogram) nicht validiert wird, wird eine http/400-Antwort zurückgegeben.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram D791093C8A921769 \
--key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
--major-key-derivation-mode EMV_OPTION_A \ 
--transaction-data 00000000170000000000000008400080008000084016051700000000093800000B03011203000000 \
--session-key-derivation-attributes='{"Visa":{"PanSequenceNumber":"01" \ 
,"PrimaryAccountNumber":"9137631040001422"}}'
```

```
{
  "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
  "KeyCheckValue": "08D7B4"
}
```

### CVN18 Visa und Visa CVN22
<a name="w2aac15c25c17b5"></a>

**Example**  
In diesem Beispiel validieren wir einen mit Visa CVN18 oder generierten ARQC. CVN22 Die kryptografischen Operationen sind zwischen CVN18 und identisch, CVN22 aber die in den Transaktionsdaten enthaltenen Daten variieren. Im Vergleich dazu CVN10 wird selbst mit den gleichen Eingaben ein völlig anderes Kryptogramm generiert.  
Wenn AWS Payment Cryptography den ARQC validieren kann, wird ein http/200 zurückgegeben. Wenn der ARCQ nicht validiert ist, wird ein http/400 zurückgegeben.  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram \ 
--auth-request-cryptogram 61EDCC708B4C97B4
--key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \ 
--major-key-derivation-mode EMV_OPTION_A 
--transaction-data 00000000170000000000000008400080008000084016051700000000093800000B1F22010300000000000 \
00000000000000000000000000000000000000000008000000000000000
--session-key-derivation-attributes='{"EmvCommon":{"ApplicationTransactionCounter":"000B", \
"PanSequenceNumber":"01","PrimaryAccountNumber":"9137631040001422"}}'
```

```
{
  "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
  "KeyCheckValue": "08D7B4"
}
```

# MAC generieren und verifizieren
<a name="crypto-ops-mac"></a>

Message Authentication Codes (MAC) werden normalerweise verwendet, um die Integrität einer Nachricht zu authentifizieren (unabhängig davon, ob sie geändert wurde). Kryptografische Hashes wie HMAC (Hash-Based Message Authentication Code), CBC-MAC und CMAC (Cipher-based Message Authentication Code) bieten durch den Einsatz von Kryptografie zusätzliche Sicherheit beim Absender des MAC. HMAC basiert auf Hash-Funktionen, während CMAC auf Blockchiffren basiert. Der Dienst unterstützt auch die ISO9797 Algorithmen 1 und 3, die Typen von CBC- sind. MACs 

Alle MAC-Algorithmen dieses Dienstes kombinieren eine kryptografische Hash-Funktion und einen gemeinsamen geheimen Schlüssel. Sie nehmen eine Nachricht und einen geheimen Schlüssel, z. B. das Schlüsselmaterial in einem Schlüssel, und geben ein eindeutiges Tag oder einen eindeutigen Mac zurück. Wenn sich auch nur ein Zeichen der Nachricht ändert oder wenn sich der geheime Schlüssel ändert, ist das resultierende Tag völlig anders. Durch die Anforderung eines geheimen Schlüssels bietet die Kryptografie MACs auch Authentizität. Ohne den geheimen Schlüssel ist es unmöglich, einen identischen Mac zu generieren. Kryptografische Signaturen MACs werden manchmal als symmetrische Signaturen bezeichnet, da sie wie digitale Signaturen funktionieren, aber einen einzigen Schlüssel sowohl für das Signieren als auch für die Überprüfung verwenden. 

AWS Die Zahlungskryptografie unterstützt verschiedene Arten von: MACs

**ISO9797 ALGORITHMUS 1**  
Bezeichnet mit `KeyUsage` von \$1. ISO9797 ALGORITHM1 Wenn das Feld kein Vielfaches der Blockgröße ist (8 Byte/16 Hexadezimalzeichen für TDES, 16 Byte/32 Zeichen für AES), wendet Payment Cryptography automatisch die Füllmethode 1 an. AWS ISO9797 Wenn andere Füllmethoden erforderlich sind, können Sie diese anwenden, bevor Sie den Dienst aufrufen.

**ISO9797 ALGORITHMUS 3 (MAC für den Einzelhandel)**  
Bezeichnet mit \$1`KeyUsage`. ISO9797 ALGORITHM3 Es gelten dieselben Füllregeln wie bei Algorithmus 1.

**ISO9797 ALGORITHMUS 5 (CMAC)**  
Wird mit \$1M6\$1ISO\$19797\$15\$1CMAC\$1KEY bezeichnet `KeyUsage` TR31

**HMAC**  
Wird mit `KeyUsage` TR31 \$1M7\$1HMAC\$1KEY bezeichnet, einschließlich HMAC\$1, HMAC\$1, HMAC\$1 und HMAC\$1 SHA224 SHA256 SHA384 SHA512

**AS28053.4.1 MAC**  
Wird mit \$1M0\$1ISO\$116609\$1MAC\$1KEY `KeyUsage` bezeichnet. TR31 Weitere Informationen zu finden Sie unter AS2805 [AS2805](advanced.regional.as2805.md)

**DUKPT MAC**  
DUKPT MAC wird in der Regel verwendet, um die Quelle und die Nutzlast von Zahlungsterminals für Nachrichten to/from zu bestätigen. Es leitet mithilfe von DUKPT-Ableitungstechniken einen Schlüssel ab und führt dann den MAC durch. Schlüssel, die mit dieser Option verwendet werden, werden mit einem von \$1B0\$1BASE\$1DERIVATION\$1KEY gekennzeichnet. `KeyUsage` TR31 

**EMV MAC**  
EMV MAC wird in der EMV-Dokumentation in der Regel als Integritätsschlüssel bezeichnet. Es leitet einen Schlüssel mithilfe von EMV-Ableitungstechniken ab und verwendet dann \$1 intern. ISO9797 ALGORITHM3 Es wird normalerweise verwendet, um Ausstellerskripte zur Neuprogrammierung an eine Chipkarte zu senden. Schlüssel, die mit dieser Option verwendet werden, werden mit einem von \$1E2\$1EMV\$1MKEY\$1INTEGRITY gekennzeichnet. `KeyUsage` TR31 Wenn Sie sowohl ein Skript senden als auch eine Offline-PIN aktualisieren, achten Sie darauf, dass diese beiden Operationen ausgeführt werden. [GenerateMacEmvPinChange](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMacEmvPinChange) 

**Topics**
+ [MAC generieren](generate-mac.md)
+ [MAC verifizieren](verify-mac.md)

# MAC generieren
<a name="generate-mac"></a>

Die Generate MAC API wird verwendet, um kartenbezogene Daten zu authentifizieren, z. B. Tracking-Daten von einem Kartenmagnetstreifen. Dabei werden bekannte kryptografische Schlüssel verwendet, um einen MAC (Message Authentication Code) für die Datenvalidierung zwischen sendenden und empfangenden Parteien zu generieren. Die zur Generierung von MAC verwendeten Daten umfassen Nachrichtendaten, einen geheimen MAC-Verschlüsselungsschlüssel und einen MAC-Algorithmus zur Generierung eines eindeutigen MAC-Werts für die Übertragung. Die empfangende Partei des MAC verwendet dieselben MAC-Nachrichtendaten, denselben MAC-Verschlüsselungsschlüssel und denselben Algorithmus, um einen anderen MAC-Wert für den Vergleich und die Datenauthentifizierung zu reproduzieren. Selbst wenn sich ein Zeichen der Nachricht ändert oder der zur Überprüfung verwendete MAC-Schlüssel nicht identisch ist, ist der resultierende MAC-Wert unterschiedlich. Die API unterstützt ISO 9797-1 Algorithmus 1 und ISO 9797-1 Algorithmus 3 MAC (unter Verwendung eines statischen MAC-Schlüssels und eines abgeleiteten DUKPT-Schlüssels), HMAC- und EMV-MAC-Verschlüsselungsschlüssel für diesen Vorgang.

Der Eingabewert für muss HexBinary-Daten sein. `message-data`

Weitere Informationen zu allen Optionen für diese API finden Sie unter [GenerateMac](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_GenerateMac.html)und [VerifyMac](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_VerifyMac.html).

Mit dem optionalen Parameter mac-length können Sie den Ausgabewert kürzen (obwohl dies auch in Ihrem Code möglich ist). Eine Länge von 8 bezieht sich auf 8 Byte oder 16 Hex-Zeichen.

MAC-Schlüssel können entweder mit AWS Payment Cryptography per Anruf erstellt [CreateKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html)oder per Anruf [ImportKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html)importiert werden. 

**Anmerkung**  
Für CMAC- und HMAC-Algorithmen ist kein Padding erforderlich. Alle anderen erfordern, dass die Daten entsprechend der Blockgröße des Algorithmus aufgefüllt werden, die einem Vielfachen von 8 Byte (16 Hex-Zeichen) für TDES und 16 Byte (32 Hex-Zeichen) für AES entspricht. 

**Topics**
+ [Generieren Sie HMAC](#generate-mac-hmac)
+ [Generieren Sie MAC mit dem ISO 9797-1-Algorithmus 3](#generate-mac-iso9797-alg3)
+ [Generieren Sie MAC mit CMAC](#generate-mac-cmac)
+ [Generieren Sie MAC mit DUKPT CMAC](#generate-mac-dukpt-cmac)

## Generieren Sie HMAC
<a name="generate-mac-hmac"></a>

In diesem Beispiel werden wir einen HMAC (Hash-Based Message Authentication Code) für die Kartendatenauthentifizierung mithilfe des HMAC-Algorithmus `HMAC_SHA256` und des HMAC-Verschlüsselungsschlüssels generieren. Der Schlüssel muss auf und auf KeyUsage eingestellt sein. `TR31_M7_HMAC_KEY` KeyModesOfUse `Generate` Die Hash-Länge (z. B. 256) wird bei der Erstellung des Schlüssels definiert und kann nicht geändert werden. 

Der optionale Parameter mac-length kürzt den ausgegebenen MAC, obwohl dies auch außerhalb des Dienstes erfolgen kann. Dieser Wert wird in Byte angegeben, sodass bei einem Wert von 16 eine Hexadezimalzeichenfolge der Länge 32 erwartet wird.

**Example**  

```
$ aws payment-cryptography-data generate-mac \ 
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ 
    --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \
    --generation-attributes Algorithm=HMAC
```

```
           
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
    "KeyCheckValue": "2976E7",
    "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C"
}
```

## Generieren Sie MAC mit dem ISO 9797-1-Algorithmus 3
<a name="generate-mac-iso9797-alg3"></a>

In diesem Beispiel generieren wir einen MAC mit dem ISO 9797-1-Algorithmus 3 (Retail MAC) für die Kartendatenauthentifizierung. Der Schlüssel muss auf und auf KeyUsage gesetzt sein`TR31_M3_ISO_9797_3_MAC_KEY`. KeyModesOfUse `Generate` 

**Example**  

```
$ aws payment-cryptography-data generate-mac \ 
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h \ 
    --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ 
    --generation-attributes="Algorithm=ISO9797_ALGORITHM3"
```

```
           
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h",
    "KeyCheckValue": "2976EA",
    "Mac": "A8F7A73DAF87B6D0"
}
```

## Generieren Sie MAC mit CMAC
<a name="generate-mac-cmac"></a>

CMAC wird am häufigsten verwendet, wenn es sich bei den Schlüsseln um AES handelt, unterstützt aber auch TDES. In diesem Beispiel generieren wir einen MAC mit CMAC (ISO 9797-1 Algorithm 5) für die Kartendatenauthentifizierung mit einem AES-Schlüssel. Der Schlüssel muss auf und auf KeyUsage gesetzt sein. `TR31_M6_ISO_9797_5_CMAC_KEY` KeyModesOfUse `Generate` 

**Example**  

```
$ aws payment-cryptography-data generate-mac \ 
    --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ 
    --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ 
    --generation-attributes Algorithm="CMAC"
```

```
           
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "C1EB8F",
    "Mac": "1F8C36E63F91E4E93DF7842BF5E2E5F7"
}
```

## Generieren Sie MAC mit DUKPT CMAC
<a name="generate-mac-dukpt-cmac"></a>

In diesem Beispiel werden wir einen MAC mithilfe von DUKPT (Derived Unique Key Per Transaction) mit CMAC für die Kartendatenauthentifizierung generieren. Der Schlüssel muss auf `TR31_B0_BASE_DERIVATION_KEY` und auf true KeyUsage KeyModesOfUse `DeriveKey` gesetzt sein. DUKPT-Schlüssel leiten mithilfe eines Base Derivation Key (BDK) und einer Key Serial Number (KSN) für jede Transaktion einen eindeutigen Schlüssel ab. 



**Example**  

```
$ aws payment-cryptography-data generate-mac --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" --generation-attributes="DukptCmac={KeySerialNumber="932A6E954ABB32DD00000001",Direction=BIDIRECTIONAL}"
```

```
       
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
    "KeyCheckValue": "C1EB8F"
}
```

# MAC verifizieren
<a name="verify-mac"></a>

Überprüfen Sie, ob die MAC-API verwendet wird, um den MAC (Message Authentication Code) für die kartenbezogene Datenauthentifizierung zu verifizieren. Es muss derselbe Verschlüsselungsschlüssel verwendet werden, der bei der MAC-Generierung verwendet wurde, um den MAC-Wert für die Authentifizierung zu reproduzieren. Der MAC-Verschlüsselungsschlüssel kann entweder mit AWS Payment Cryptography per Anruf erstellt [CreateKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_CreateKey.html)oder per Anruf importiert werden. [ImportKey](https://docs.aws.amazon.com/payment-cryptography/latest/APIReference/API_ImportKey.html) Die API unterstützt DUKPT MAC-, HMAC- und EMV-MAC-Verschlüsselungsschlüssel für diesen Vorgang.

Wenn der Wert verifiziert ist, kehrt der Antwortparameter `MacDataVerificationSuccessful` zurück`Http/200`, andernfalls `Http/400` mit einer entsprechenden Meldung. `Mac verification failed`

**Topics**
+ [Überprüfen Sie HMAC](#verify-mac-hmac)
+ [Überprüfen Sie den MAC mit DUKPT CMAC](#verify-mac-dukpt-cmac)

## Überprüfen Sie HMAC
<a name="verify-mac-hmac"></a>

In diesem Beispiel verifizieren wir einen HMAC (Hash-Based Message Authentication Code) für die Kartendatenauthentifizierung mithilfe des HMAC-Algorithmus `HMAC_SHA256` und des HMAC-Verschlüsselungsschlüssels. Der Schlüssel muss auf `TR31_M7_HMAC_KEY` und KeyModesOfUse `Verify` auf KeyUsage true gesetzt sein. 

**Example**  

```
$ aws payment-cryptography-data verify-mac \ 
     --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ 
     --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ 
     --mac ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C \ 
     --verification-attributes Algorithm=HMAC_SHA256
```

```
       
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6",
    "KeyCheckValue": "2976E7"
}
```

## Überprüfen Sie den MAC mit DUKPT CMAC
<a name="verify-mac-dukpt-cmac"></a>

In diesem Beispiel verifizieren wir einen MAC mithilfe von DUKPT (Derived Unique Key Per Transaction) mit CMAC für die Kartendatenauthentifizierung. Der Schlüssel muss auf `TR31_B0_BASE_DERIVATION_KEY` und auf true KeyUsage KeyModesOfUse `DeriveKey` gesetzt sein. DUKPT-Schlüssel leiten mithilfe eines Base Derivation Key (BDK) und einer Key Serial Number (KSN) für jede Transaktion einen eindeutigen Schlüssel ab. Der Wert von DukptKeyVariant muss zwischen Sender und Empfänger übereinstimmen. REQUEST wird normalerweise von Terminal zu Backend verwendet, VERIFY von Backend zu Terminal und BIDIRECTIONAL, wenn ein einzelner Schlüssel in beide Richtungen verwendet wird. 

**Example**  

```
$ aws payment-cryptography-data verify-mac \ 
     --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ 
     --message-data "3b343038383439303031303733393431353d32343038323236303030373030303f33" \ 
     --mac D8E804EE74BF1D909A2C01C0BDE8EF34 \ 
     --verification-attributes DukptCmac='{"KeySerialNumber":"932A6E954ABB32DD00000001","DukptKeyVariant":"BIDIRECTIONAL"}'
```

```
       
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi",
    "KeyCheckValue": "C1EB8F"
}
```

# Gültige Schlüssel für kryptografische Operationen
<a name="crypto-ops-validkeys-ops"></a>

Bestimmte Schlüssel können nur für bestimmte Operationen verwendet werden. Darüber hinaus können einige Operationen die wichtigsten Verwendungsmodi für Schlüssel einschränken. Die zulässigen Kombinationen finden Sie in der folgenden Tabelle. 

**Anmerkung**  
Bestimmte Kombinationen sind zwar zulässig, können aber zu unbrauchbaren Situationen führen, z. B. beim Generieren von CVV-Codes, die dann `(generate)` aber nicht verifiziert werden können. `(verify)` 

**Topics**
+ [GenerateCardData](#w2aac15c31b9)
+ [VerifyCardData](#w2aac15c31c11)
+ [GeneratePinData (für VISA/ABA Schemata)](#w2aac15c31c15)
+ [GeneratePinData (für`IBM3624`)](#w2aac15c31c17)
+ [VerifyPinData (für VISA/ABA Schemata)](#w2aac15c31c21)
+ [VerifyPinData (für`IBM3624`)](#w2aac15c31c23)
+ [Daten entschlüsseln](#w2aac15c31c27)
+ [Encrypt Data](#w2aac15c31c33)
+ [Translate Pin Data](#w2aac15c31c39)
+ [MAC generieren/verifizieren](#crypto-ops-validkeys.generatemac)
+ [GenerateMacEmvPinChange](#crypto-ops-validkeys.generatemacemvpinchange)
+ [VerifyAuthRequestCryptogram](#w2aac15c31c51)
+ [Schlüssel Import/Export](#crypto-ops-validkeys.importexport)
+ [Unbenutzte Schlüsseltypen](#w2aac15c31c57)

## GenerateCardData
<a name="w2aac15c31b9"></a>


| API-Endpunkt | Kryptografischer Vorgang oder Algorithmus | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | --- | 
| GenerateCardData |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1C0\$1KARTENÜBERPRÜFUNGSSCHLÜSSEL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1Generieren = wahr\$1, \$1Generieren = wahr, Überprüfen = wahr\$1 | 
| GenerateCardData |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1C0\$1CARD\$1VERIFICATION\$1KEY |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1Generieren = wahr\$1, \$1Generieren = wahr, Überprüfen = wahr\$1 | 
| GenerateCardData |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1E6\$1EMV\$1MKEY\$1SONSTIGES |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1= wahr\$1 DeriveKey  | 
| GenerateCardData |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1E4\$1EMV\$1MKEY\$1DYNAMISCHE\$1NUMBERS |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1= wahr\$1 DeriveKey  | 
| GenerateCardData |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1E6\$1EMV\$1MKEY\$1ANDERE |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1= wahr\$1 DeriveKey  | 

## VerifyCardData
<a name="w2aac15c31c11"></a>


| Kryptografischer Vorgang oder Algorithmus | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1C0\$1KARTENÜBERPRÜFUNGSSCHLÜSSEL |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1Generieren = wahr\$1, \$1Generieren = wahr, Überprüfen = wahr\$1 | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1C0\$1CARD\$1VERIFICATION\$1KEY |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1Generieren = wahr\$1, \$1Generieren = wahr, Überprüfen = wahr\$1 | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1E6\$1EMV\$1MKEY\$1SONSTIGES |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1= wahr\$1 DeriveKey  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1E4\$1EMV\$1MKEY\$1DYNAMISCHE\$1NUMBERS |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1= wahr\$1 DeriveKey  | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | TR31\$1E6\$1EMV\$1MKEY\$1ANDERE |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | \$1= wahr\$1 DeriveKey  | 

## GeneratePinData (für VISA/ABA Schemata)
<a name="w2aac15c31c15"></a>

`VISA_PIN or VISA_PIN_VERIFICATION_VALUE`


| Schlüsseltyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  PIN-Verschlüsselungsschlüssel  |  TR31\$1P0\$1PIN\$1ENCRYPTION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Schlüssel zur PIN-Generierung  |  TR31\$1V2\$1VISA\$1PIN\$1VERIFICATION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## GeneratePinData (für`IBM3624`)
<a name="w2aac15c31c17"></a>

`IBM3624_PIN_OFFSET,IBM3624_NATURAL_PIN,IBM3624_RANDOM_PIN, IBM3624_PIN_FROM_OFFSET)`


| Schlüsseltyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  PIN-Verschlüsselungsschlüssel  |  TR31\$1P0\$1PIN\$1ENCRYPTION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  Für IBM3624 \$1NATURAL\$1PIN, \$1RANDOM\$1PIN, \$1PIN\$1FROM\$1OFFSET IBM3624 IBM3624 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) Für IBM3624 \$1PIN\$1OFFSET [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | 
|  Schlüssel zur PIN-Generierung  |  TR31\$1V1\$1 \$1PIN\$1VERIFICATION\$1KEY IBM3624  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## VerifyPinData (für VISA/ABA Schemata)
<a name="w2aac15c31c21"></a>

`VISA_PIN`


| Schlüsseltyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  PIN-Verschlüsselungsschlüssel  |  TR31\$1P0\$1PIN\$1ENCRYPTION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Schlüssel zur PIN-Generierung  |  TR31\$1V2\$1VISA\$1PIN\$1VERIFICATION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## VerifyPinData (für`IBM3624`)
<a name="w2aac15c31c23"></a>

`IBM3624_PIN_OFFSET,IBM3624_NATURAL_PIN,IBM3624_RANDOM_PIN, IBM3624_PIN_FROM_OFFSET)`


| Schlüsseltyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  PIN-Verschlüsselungsschlüssel  |  TR31\$1P0\$1PIN\$1ENCRYPTION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  Für IBM3624 \$1NATURAL\$1PIN, \$1RANDOM\$1PIN, \$1PIN\$1FROM\$1OFFSET IBM3624 IBM3624 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | 
|  PIN-Bestätigungsschlüssel  |  TR31\$1V1\$1 \$1PIN\$1VERIFICATION\$1KEY IBM3624  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## Daten entschlüsseln
<a name="w2aac15c31c27"></a>


| Schlüsseltyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  DUMPT  |  TR31\$1B0\$1BASISABLEITUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  EMV  |  TR31\$1E1\$1EMV\$1MKEY\$1VERTRAULICHKEIT TR31\$1E6\$1EMV\$1MKEY\$1ANDERE  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | 
|  RSA  |  TR31\$1D1\$1ASYMMETRISCHER\$1SCHLÜSSEL\$1FÜR\$1DATENVERSCHLÜSSELUNG  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Symmetrische Schlüssel  |  TR31\$1D0\$1SYMMETRISCHER\$1DATENVERSCHLÜSSELUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## Encrypt Data
<a name="w2aac15c31c33"></a>


| Schlüsseltyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  DUMPT  |  TR31\$1B0\$1BASISABLEITUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  EMV  |  TR31\$1E1\$1EMV\$1MKEY\$1VERTRAULICHKEIT TR31\$1E6\$1EMV\$1MKEY\$1ANDERE  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  | 
|  RSA  |  TR31\$1D1\$1ASYMMETRISCHER\$1SCHLÜSSEL\$1FÜR\$1DATENVERSCHLÜSSELUNG  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Symmetrische Schlüssel  |  TR31\$1D0\$1SYMMETRISCHER\$1DATENVERSCHLÜSSELUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## Translate Pin Data
<a name="w2aac15c31c39"></a>


| Richtung | Schlüsseltyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | --- | 
|  Eingehende Datenquelle  |  DEPUTIERT  |  TR31\$1B0\$1BASISABLEITUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Eingehende Datenquelle  |  Unmanipuliert (PEK, AWK, IWK usw.)  |  TR31\$1P0\$1PIN\$1VERSCHLÜSSELUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Ziel für ausgehende Daten  |  DUPT  |  TR31\$1B0\$1BASISABLEITUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Ziel für ausgehende Daten  |  Nicht dedupt (PEK, IWK, AWK usw.)  |  TR31\$1P0\$1PIN\$1VERSCHLÜSSELUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## MAC generieren/verifizieren
<a name="crypto-ops-validkeys.generatemac"></a>

 MAC-Schlüssel werden zum Erstellen kryptografischer Hashes von Daten verwendet. message/body Es wird nicht empfohlen, einen Schlüssel mit eingeschränkten Verwendungsmöglichkeiten zu erstellen, da Sie den Abgleichvorgang dann nicht durchführen können. Sie können jedoch import/export einen Schlüssel mit nur einer Operation verwenden, wenn das andere System die andere Hälfte des Operationspaares ausführen soll. 


| Zulässige Verwendung von Schlüsseln | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  MAC-Schlüssel   |  TR31\$1M1\$1ISO\$19797\$11\$1MAC\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  MAC-Schlüssel (MAC für den Einzelhandel)   |  TR31\$1M1\$1ISO\$19797\$13\$1MAC\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  MAC-Schlüssel (CMAC)   |  TR31\$1M6\$1ISO\$19797\$15\$1CMAC\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  MAC-Schlüssel (HMAC)   |  TR31\$1M7\$1HMAC-SCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  MAC-Schlüssel (AS2805)   |  TR31\$1M0\$1ISO\$116609\$1MAC\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## GenerateMacEmvPinChange
<a name="crypto-ops-validkeys.generatemacemvpinchange"></a>

 GenerateMacEmvPinChange kombiniert MAC-Generierung und PIN-Verschlüsselung für EMV-Offline-PIN-Änderungsvorgänge. Für diesen Vorgang sind zwei verschiedene Schlüsseltypen erforderlich: ein Integritätsschlüssel für die MAC-Generierung und ein Vertraulichkeitsschlüssel für die PIN-Verschlüsselung. 


| Schlüsseltyp | Zulässige Schlüsselverwendung | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  Integritätsschlüssel für sicheres Messaging   |  TR31\$1E2\$1EMV\$1MKEY\$1INTEGRITY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Schlüssel zur Vertraulichkeit von Secure Messaging   |  TR31\$1E1\$1EMV\$1MKEY\$1CONFIDENTIALITY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Aktuelle PIN PEK (PIN-Verschlüsselungsschlüssel)   |  TR31\$1P0\$1PIN\$1ENCRYPTION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Neue PIN PEK (PIN-Verschlüsselungsschlüssel)   |  TR31\$1P0\$1PIN\$1ENCRYPTION\$1KEY  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  ARQC-Schlüssel   Gilt nur für Visa- und Amex-Ableitungssysteme.   |  TR31\$1E0\$1EMV\$1MKEY\$1APP\$1CRYPTOGRAMS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## VerifyAuthRequestCryptogram
<a name="w2aac15c31c51"></a>


| Zulässige Verwendung von Schlüsseln | EMV-Option | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  TR31\$1E0\$1EMV\$1MKEY\$1APP\$1CRYPTOGRAMS  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## Schlüssel Import/Export
<a name="crypto-ops-validkeys.importexport"></a>


| Vorgangstyp | Zulässige Verwendung von Schlüsseln | Zulässiger Schlüsselalgorithmus | Zulässige Kombination der wichtigsten Nutzungsmodi | 
| --- | --- | --- | --- | 
|  TR-31 Wickelschlüssel  |  TR31\$1K1\$1KEY\$1BLOCK\$1PROTECTION\$1KEY TR31\$1K0\$1KEY\$1VERSCHLÜSSELUNGSSCHLÜSSEL  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Import einer vertrauenswürdigen CA  |  TR31\$1S0\$1ASYMMETRIC\$1KEY\$1FOR\$1DIGITAL\$1SIGNATURE  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Import eines Public-Key-Zertifikats für asymmetrische Verschlüsselung  |  TR31\$1D1\$1ASYMMETRISCHER\$1SCHLÜSSEL\$1FÜR\$1DATENVERSCHLÜSSELUNG  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 
|  Schlüssel, der für wichtige Vereinbarungsalgorithmen wie ECDH verwendet wird  |  TR31\$1K3\$1ASYMMETRIC\$1KEY\$1FOR\$1KEY\$1AGREEMENT  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/payment-cryptography/latest/userguide/crypto-ops-validkeys-ops.html) | 

## Unbenutzte Schlüsseltypen
<a name="w2aac15c31c57"></a>

Die folgenden Schlüsseltypen werden derzeit nicht von AWS Payment Cryptography verwendet
+  TR31\$1P1\$1PIN\$1GENERATION\$1KEY 