

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.

# Unterstützte Mechanismen für den JCE-Anbieter für AWS CloudHSM Client SDK 5
<a name="java-lib-supported_5"></a>

Dieses Thema enthält Informationen zu den unterstützten Mechanismen für den JCE-Anbieter mit dem AWS CloudHSM Client-SDK 5. Informationen zu den Schnittstellen und Engine-Klassen der Java Cryptography Architecture (JCA), die von unterstützt werden AWS CloudHSM, finden Sie in den folgenden Themen. 

**Topics**
+ [Schlüssel- und Schlüsselpaarfunktionen generieren](#java-gen-key-pairs-5)
+ [Cipher-Funktionen](#java-ciphers_5)
+ [Funktionen zum Signieren und Überprüfen](#java-sign-verify_5)
+ [Digest-Funktionen](#java-digests_5)
+ [Funktionen des Hash-basierten Nachrichtenauthentifizierungscodes (HMAC)](#java-mac_5)
+ [Funktionen des verschlüsselten Nachrichtenauthentifizierungscodes (CMAC)](#java-cmac_5)
+ [Die wichtigsten Funktionen der Vereinbarung](#java-key-derivation_5)
+ [Mithilfe von Schlüsselfabriken können Schlüssel in Schlüsselspezifikationen umgewandelt werden](#java-key-factories)
+ [Anmerkungen zum Mechanismus](#w2aac25c21c25c15c23)

## Schlüssel- und Schlüsselpaarfunktionen generieren
<a name="java-gen-key-pairs-5"></a>

Die AWS CloudHSM Softwarebibliothek für Java ermöglicht es Ihnen, die folgenden Operationen zum Generieren von Schlüssel- und Schlüsselpaarfunktionen zu verwenden.
+ `RSA`
+ `EC`
+ `AES`
+ `DESede (Triple DES)`siehe Hinweis [1](#java-gen-key-pairs-5-note-1)
+ `GenericSecret`

## Cipher-Funktionen
<a name="java-ciphers_5"></a>

Die AWS CloudHSM Softwarebibliothek für Java unterstützt die folgenden Kombinationen aus Algorithmus, Modus und Auffüllung.


| Algorithmus | Mode | Padding | Hinweise | 
| --- | --- | --- | --- | 
| AES | CBC |  `AES/CBC/NoPadding` `AES/CBC/PKCS5Padding`  |  Implementiert `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`. Implementiert `Cipher.UNWRAP_MODE for AES/CBC NoPadding`  | 
| AES | ECB |  `AES/ECB/PKCS5Padding` `AES/ECB/NoPadding`  | Implementiert `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`.  | 
| AES | CTR |  `AES/CTR/NoPadding`  |  Implementiert `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`.  | 
| AES | GCM | `AES/GCM/NoPadding` | Implementiert `Cipher.WRAP_MODE`, `Cipher.UNWRAP_MODE`, `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`.HSM ignoriert den Initialisierungsvektor (IV) der Anforderung während der AES-GCM-Datenverschlüsselung und verwendet stattdessen einen selbst generierten IV. Nach Abschluss der Operation müssen Sie `Cipher.getIV()` abrufen, um den IV zu erhalten. | 
| AESWrap | ECB |  `AESWrap/ECB/NoPadding` `AESWrap/ECB/PKCS5Padding` `AESWrap/ECB/ZeroPadding`  | Implementiert `Cipher.WRAP_MODE` und `Cipher.UNWRAP_MODE`.  | 
| DESede (Dreifaches DES) | CBC |  `DESede/CBC/PKCS5Padding` `DESede/CBC/NoPadding`  |  Implementiert `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`. Eine bevorstehende Änderung finden Sie im Hinweis [1](#java-gen-key-pairs-5-note-1) unten.  | 
| DESede (Dreifaches DES) | ECB |  `DESede/ECB/NoPadding` `DESede/ECB/PKCS5Padding`  | Implementiert `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`. Eine bevorstehende Änderung finden Sie im Hinweis [1](#java-gen-key-pairs-5-note-1) unten.  | 
| RSA | ECB | `RSA/ECB/PKCS1Padding` **siehe Hinweis [1](#java-gen-key-pairs-5-note-1)** `RSA/ECB/OAEPPadding` `RSA/ECB/OAEPWithSHA-1ANDMGF1Padding` `RSA/ECB/OAEPWithSHA-224ANDMGF1Padding` `RSA/ECB/OAEPWithSHA-256ANDMGF1Padding` `RSA/ECB/OAEPWithSHA-384ANDMGF1Padding` `RSA/ECB/OAEPWithSHA-512ANDMGF1Padding`  |  Implementiert `Cipher.WRAP_MODE`, `Cipher.UNWRAP_MODE`, `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`.  | 
| RSA | ECB | `RSA/ECB/NoPadding` |  Implementiert `Cipher.ENCRYPT_MODE` und `Cipher.DECRYPT_MODE`.  | 
| RSAAESWrap | ECB |  `RSAAESWrap/ECB/OAEPPadding` `RSAAESWrap/ECB/OAEPWithSHA-1ANDMGF1Padding` `RSAAESWrap/ECB/OAEPWithSHA-224ANDMGF1Padding` `RSAAESWrap/ECB/OAEPWithSHA-256ANDMGF1Padding` `RSAAESWrap/ECB/OAEPWithSHA-384ANDMGF1Padding` `RSAAESWrap/ECB/OAEPWithSHA-512ANDMGF1Padding`  | Implementiert `Cipher.WRAP_MODE` und `Cipher.UNWRAP_MODE`.  | 

## Funktionen zum Signieren und Überprüfen
<a name="java-sign-verify_5"></a>

Die AWS CloudHSM Softwarebibliothek für Java unterstützt die folgenden Arten der Signatur und Überprüfung. Mit Client-SDK 5 und Signaturalgorithmen mit Hashing werden die Daten lokal in der Software gehasht, bevor sie zur Signatur/Überprüfung an das HSM gesendet werden. Das bedeutet, dass die Größe der Daten, die vom SDK gehasht werden können, unbegrenzt ist.

**RSA-Signaturtypen**
+ `NONEwithRSA`
+ `RSASSA-PSS`
+ `SHA1withRSA`
+ `SHA1withRSA/PSS`
+ `SHA1withRSAandMGF1`
+ `SHA224withRSA`
+ `SHA224withRSAandMGF1`
+ `SHA224withRSA/PSS`
+ `SHA256withRSA`
+ `SHA256withRSAandMGF1`
+ `SHA256withRSA/PSS`
+ `SHA384withRSA`
+ `SHA384withRSAandMGF1`
+ `SHA384withRSA/PSS`
+ `SHA512withRSA`
+ `SHA512withRSAandMGF1`
+ `SHA512withRSA/PSS`

**ECDSA-Signaturtypen**
+ `NONEwithECDSA`
+ `SHA1withECDSA`
+ `SHA224withECDSA`
+ `SHA256withECDSA`
+ `SHA384withECDSA`
+ `SHA512withECDSA`

## Digest-Funktionen
<a name="java-digests_5"></a>

Die AWS CloudHSM Softwarebibliothek für Java unterstützt die folgenden Message Digests. Mit Client-SDK 5 werden die Daten lokal in der Software gehasht. Das bedeutet, dass die Größe der Daten, die vom SDK gehasht werden können, unbegrenzt ist.
+ `SHA-1`
+ `SHA-224`
+ `SHA-256`
+ `SHA-384`
+ `SHA-512`

## Funktionen des Hash-basierten Nachrichtenauthentifizierungscodes (HMAC)
<a name="java-mac_5"></a>

Die AWS CloudHSM Softwarebibliothek für Java unterstützt die folgenden HMAC-Algorithmen.
+ `HmacSHA1`(Maximale Datengröße in Byte: 16288)
+ `HmacSHA224`(Maximale Datengröße in Byte: 16256)
+ `HmacSHA256`(Maximale Datengröße in Byte: 16288)
+ `HmacSHA384`(Maximale Datengröße in Byte: 16224)
+ `HmacSHA512`(Maximale Datengröße in Byte: 16224)

## Funktionen des verschlüsselten Nachrichtenauthentifizierungscodes (CMAC)
<a name="java-cmac_5"></a>

CMACs (Verschlüsselungsbasierte Nachrichtenauthentifizierungscodes) Erstellen Sie Nachrichtenauthentifizierungscodes (MACs) mithilfe einer Blockchiffre und eines geheimen Schlüssels. Sie unterscheiden HMACs sich dadurch, dass sie eine blocksymmetrische Schlüsselmethode anstelle einer Hashing-Methode verwenden. MACs 

Die AWS CloudHSM Softwarebibliothek für Java unterstützt die folgenden CMAC-Algorithmen.
+ `AESCMAC`

## Die wichtigsten Funktionen der Vereinbarung
<a name="java-key-derivation_5"></a>

Die AWS CloudHSM Softwarebibliothek für Java unterstützt ECDH mit Key Derivation Functions (KDF). Die folgenden KDF-Typen werden unterstützt:
+ `ECDHwithX963SHA1KDF`Unterstützt den X9.63 KDF-Algorithmus SHA1 [2](#kdf2)
+ `ECDHwithX963SHA224KDF`Unterstützt den X9.63 KDF-Algorithmus SHA224 [2](#kdf2)
+ `ECDHwithX963SHA256KDF`Unterstützt den X9.63 KDF-Algorithmus SHA256 [2](#kdf2)
+ `ECDHwithX963SHA384KDF`Unterstützt den X9.63 KDF-Algorithmus SHA384 [2](#kdf2)
+ `ECDHwithX963SHA512KDF`Unterstützt den X9.63 KDF-Algorithmus SHA512 [2](#kdf2)

## Mithilfe von Schlüsselfabriken können Schlüssel in Schlüsselspezifikationen umgewandelt werden
<a name="java-key-factories"></a>

Sie können Key Factorys verwenden, um Schlüssel in Schlüsselspezifikationen umzuwandeln. AWS CloudHSM hat zwei Arten von Schlüsselfabriken für JCE:

**SecretKeyFactory:** Wird verwendet, um symmetrische Schlüssel zu importieren oder abzuleiten. Mithilfe SecretKeyFactory können Sie einen unterstützten Schlüssel oder einen unterstützten Schlüssel übergeben, in KeySpec den symmetrische Schlüssel importiert oder abgeleitet werden sollen. AWS CloudHSM Im Folgenden finden Sie die unterstützten Spezifikationen für: KeyFactory
+ Für die `generateSecret` Methode SecretKeyFactory von For werden die folgenden [KeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/KeySpec.html)Klassen unterstützt:
  + **KeyAttributesMap**kann verwendet werden, um Schlüsselbytes mit zusätzlichen Attributen als CloudHSM-Schlüssel zu importieren. Ein Beispiel finden Sie [hier](https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/sdk5/src/main/java/com/amazonaws/cloudhsm/examples/KeyUtilitiesRunner.java).
  + **[SecretKeySpec](https://docs.oracle.com/javase/8/docs/api/javax/crypto/spec/SecretKeySpec.html)**kann verwendet werden, um eine symmetrische Schlüsselspezifikation als CloudHSM-Schlüssel zu importieren.
  + **AesCmacKdfParameterSpec**kann verwendet werden, um symmetrische Schlüssel mit einem anderen CloudHSM AES-Schlüssel abzuleiten.

**Anmerkung**  
SecretKeyFactory[Die `translateKey` Methode verwendet jeden Schlüssel, der die Schlüsselschnittstelle implementiert.](https://docs.oracle.com/javase/8/docs/api/java/security/Key.html)

**KeyFactory:** Wird für den Import asymmetrischer Schlüssel verwendet. Mithilfe KeyFactory können Sie einen unterstützten Schlüssel oder einen unterstützten Schlüssel übergeben, in KeySpec den ein asymmetrischer Schlüssel importiert werden soll. AWS CloudHSM Weitere Informationen finden Sie in folgenden verwandten Ressourcen:
+ Für die `generatePublic` Methode KeyFactory von For werden die folgenden [KeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/KeySpec.html)Klassen unterstützt:
+ CloudHSM KeyAttributesMap für RSA und EC KeyTypes, einschließlich:
  + CloudHSM KeyAttributesMap für RSA und EC public. KeyTypes Ein Beispiel finden Sie [hier](https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/sdk5/src/main/java/com/amazonaws/cloudhsm/examples/KeyUtilitiesRunner.java).
  + [X509 EncodedKeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/X509EncodedKeySpec.html) für RSA und EC Public Key
  + [RSAPublicKeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/RSAPublicKeySpec.html)für RSA Public Key
  + [ECPublicKeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/ECPublicKeySpec.html)für EC Public Key
+ Für die `generatePrivate` Methode KeyFactory von For werden die folgenden [KeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/KeySpec.html)Klassen unterstützt:
+ CloudHSM KeyAttributesMap für RSA und EC KeyTypes, einschließlich:
  + CloudHSM KeyAttributesMap für RSA und EC public. KeyTypes Ein Beispiel finden Sie [hier](https://github.com/aws-samples/aws-cloudhsm-jce-examples/blob/sdk5/src/main/java/com/amazonaws/cloudhsm/examples/KeyUtilitiesRunner.java).
  + [PKCS8EncodedKeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/PKCS8EncodedKeySpec.html)sowohl für EC als auch für RSA Private Key
  + [RSAPrivateCrtKeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/RSAPrivateCrtKeySpec.html)für RSA Private Key
  + [ECPrivateKeySpec](https://docs.oracle.com/javase/8/docs/api/java/security/spec/ECPrivateKeySpec.html)für privaten EC-Schlüssel

 KeyFactoryDie `translateKey` Methode von For nimmt jeden Schlüssel auf, der das [Key Interface](https://docs.oracle.com/javase/8/docs/api/java/security/Key.html) implementiert.

## Anmerkungen zum Mechanismus
<a name="w2aac25c21c25c15c23"></a>

[1] Gemäß den NIST-Richtlinien ist dies für Cluster im FIPS-Modus nach 2023 nicht zulässig. Für Cluster im Nicht-FIPS-Modus ist dies auch nach 2023 zulässig. Details dazu finden Sie unter [FIPS-140-Konformität: Mechanismus 2024 nicht mehr unterstützt](compliance-dep-notif.md#compliance-dep-notif-1).

[2] Die wichtigsten Ableitungsfunktionen (KDFs) sind in der [NIST-Sonderveröffentlichung](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf) 800-56A Revision 3 spezifiziert.