

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 die PKCS \#11 -Bibliothek für AWS CloudHSM Client-SDK 5
<a name="pkcs11-mechanisms"></a>

Die PKCS \#11-Bibliothek entspricht Version 2.40 der PKCS \#11-Spezifikation. Um eine kryptographische Funktion mit PKCS\#11 aufzurufen, rufen Sie eine Funktion mit einem bestimmten Mechanismus auf. In den folgenden Abschnitten werden die Kombinationen von Funktionen und Mechanismen zusammengefasst, die vom AWS CloudHSM Client SDK 5 unterstützt werden. 

Die PKCS \#11-Bibliothek unterstützt die folgenden Algorithmen:
+ **Verschlüsselung und Entschlüsselung ** — AES-CBC, AES-CTR, AES-ECB, AES-GCM, DES3-CBC DES3-ECB, und RSA-OAEP RSA-PKCS
+ **Signieren und verifizieren ** — RSA, HMAC, ECDSA (mit und ohne Hashing), edDSA (Ed25519 und ED25519Ph) und (mit reinem und externem Mu-Modus) ML-DSA 
+ **Hash/digest**— SHA1, SHA224, SHA256, SHA384 und SHA512
+ **Schlüsselumschlag ** — AES Key Wrap,, und  [1](#mech1)  AES-GCM RSA-AES RSA-OAEP
+ **Schlüsselableitung ** — SP800-108 Counter KDF und ECDH mit KDF (Unterstützte KDF-Algorithmen sind X9.63 mit SHA1, SHA224, SHA256, SHA384, SHA512)

**Topics**
+ [Schlüssel- und Schlüsselpaarfunktionen generieren](#pkcs11-mech-function-genkey)
+ [Funktionen zum Signieren und Überprüfen](#pkcs11-mech-function-signverify)
+ [Funktionen zur Signierung, Wiederherstellung und Überprüfung der Wiederherstellung](#pkcs11-mech-function-sr-vr)
+ [Digest-Funktionen](#pkcs11-mech-function-digest)
+ [Funktionen zum Verschlüsseln und Entschlüsseln](#pkcs11-mech-function-enc-dec)
+ [Schlüsselfunktionen ableiten](#pkcs11-mech-function-derive-key)
+ [Funktionen „Packen“ und „Entpacken“](#pkcs11-mech-function-wrap-unwrap)
+ [Maximale Datengröße für jeden Mechanismus](#pkcs11-mech-max)
+ [Anmerkungen zum Mechanismus](#pkcs11-mech-annotations)

## Schlüssel- und Schlüsselpaarfunktionen generieren
<a name="pkcs11-mech-function-genkey"></a>

Die AWS CloudHSM Softwarebibliothek für die PKCS \#11 -Bibliothek ermöglicht es Ihnen, die folgenden Mechanismen für die Funktionen „Schlüssel generieren“ und „Schlüsselpaar“ zu verwenden.
+ `CKM_RSA_PKCS_KEY_PAIR_GEN`
+ `CKM_RSA_X9_31_KEY_PAIR_GEN` – Dieser Mechanismus ist funktionell identisch mit dem `CKM_RSA_PKCS_KEY_PAIR_GEN`-Mechanismus, aber bietet stärkere Garantien für die Generierung von `p` und `q`.
+ `CKM_EC_KEY_PAIR_GEN`
+ `CKM_CLOUDHSM_ML_DSA_KEY_PAIR_GEN`[3](#mech3)
+ `CKM_GENERIC_SECRET_KEY_GEN`
+ `CKM_AES_KEY_GEN`
+ `CKM_DES3_KEY_GEN` – bevorstehende Änderung in der Fußnote [5](#mech5) aufgeführt.

## Funktionen zum Signieren und Überprüfen
<a name="pkcs11-mech-function-signverify"></a>

Die AWS CloudHSM Softwarebibliothek für die PKCS \#11 -Bibliothek ermöglicht es Ihnen, die folgenden Mechanismen für Sign- und Verify-Funktionen zu verwenden. 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.

Mit Client-SDK 5 erfolgt das RSA- und ECDSA-Hashing lokal, sodass es kein Datenlimit gibt. Bei HMAC und PureEd DSA (Ed25519) gibt es ein Datenlimit. Weitere Informationen finden Sie in der Fußnote [2](#mech2).

**RSA**
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` – Nur Single-Part-Operationen.
+ `CKM_RSA_PKCS_PSS` – Nur Single-Part-Operationen.
+ `CKM_SHA1_RSA_PKCS`
+ `CKM_SHA224_RSA_PKCS`
+ `CKM_SHA256_RSA_PKCS`
+ `CKM_SHA384_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA512_RSA_PKCS`
+ `CKM_SHA1_RSA_PKCS_PSS`
+ `CKM_SHA224_RSA_PKCS_PSS`
+ `CKM_SHA256_RSA_PKCS_PSS`
+ `CKM_SHA384_RSA_PKCS_PSS`
+ `CKM_SHA512_RSA_PKCS_PSS`

**ECDSA**
+ `CKM_ECDSA` – Nur Single-Part-Operationen.
+ `CKM_ECDSA_SHA1`
+ `CKM_ECDSA_SHA224`
+ `CKM_ECDSA_SHA256`
+ `CKM_ECDSA_SHA384`
+ `CKM_ECDSA_SHA512`

**ML-DSA**
+ `CKM_CLOUDHSM_ML_DSA_KEY_PAIR_GEN`[3](#mech3)— Generiert Schlüsselpaare. ML-DSA 
+ `CKM_CLOUDHSM_ML_DSA`[3](#mech3)— Reines ML-DSA Signieren und Verifizieren.
+ `CKM_CLOUDHSM_EXT_MU_ML_DSA`[3](#mech3)— mit externem MU ML-DSA signieren und verifizieren.

**edDSA **
+ `CKM_CLOUDHSM_EDDSA`[6](#kdf6), [7](#mech7)  — mit NULL-Parametern (PureEdDSA), nur einteilige Operationen.

**HMAC**
+ `CKM_SHA_1_HMAC`[2](#mech2)
+ `CKM_SHA224_HMAC`[2](#mech2)
+ `CKM_SHA256_HMAC`[2](#mech2)
+ `CKM_SHA384_HMAC`[2](#mech2)
+ `CKM_SHA512_HMAC`[2](#mech2)

**CMAC**
+ `CKM_AES_CMAC`

## Funktionen zur Signierung, Wiederherstellung und Überprüfung der Wiederherstellung
<a name="pkcs11-mech-function-sr-vr"></a>

Das Client-SDK 5 unterstützt die Funktionen Sign Recover und Verify Recover nicht.

## Digest-Funktionen
<a name="pkcs11-mech-function-digest"></a>

Die AWS CloudHSM Softwarebibliothek für die PKCS \#11 -Bibliothek ermöglicht es Ihnen, die folgenden Mechanismen für Digest-Funktionen zu verwenden. 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.
+ `CKM_SHA_1`
+ `CKM_SHA224`
+ `CKM_SHA256`
+ `CKM_SHA384`
+ `CKM_SHA512`

## Funktionen zum Verschlüsseln und Entschlüsseln
<a name="pkcs11-mech-function-enc-dec"></a>

Die AWS CloudHSM Softwarebibliothek für die PKCS \#11 -Bibliothek ermöglicht es Ihnen, die folgenden Mechanismen für Verschlüsselungs- und Entschlüsselungsfunktionen zu verwenden.
+ `CKM_RSA_X_509`
+ `CKM_RSA_PKCS` – Nur Single-Part-Operationen. Bevorstehende Änderung in der Fußnote [5](#mech5) aufgeführt.
+ `CKM_RSA_PKCS_OAEP` – Nur Single-Part-Operationen.
+ `CKM_AES_ECB`
+ `CKM_AES_CTR`
+ `CKM_AES_CBC`
+ `CKM_AES_CBC_PAD`
+ `CKM_DES3_CBC` – bevorstehende Änderung in der Fußnote [5](#mech5) aufgeführt.
+ `CKM_DES3_ECB` – bevorstehende Änderung in der Fußnote [5](#mech5) aufgeführt.
+ `CKM_DES3_CBC_PAD` – bevorstehende Änderung in der Fußnote [5](#mech5) aufgeführt.
+  `CKM_AES_GCM` [1](#mech1), [2](#mech2)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)

## Schlüsselfunktionen ableiten
<a name="pkcs11-mech-function-derive-key"></a>

Die AWS CloudHSM Softwarebibliothek für die PKCS \#11 -Bibliothek unterstützt die folgenden Schlüsselableitungsmechanismen:
+ `CKM_SP800_108_COUNTER_KDF`
+ `CKM_ECDH1_DERIVE`- Unterstützt die ECDH-Schlüsselableitung mit den folgenden herstellerdefinierten KDF-Typen:  [6](#kdf6) 
  + `CKD_CLOUDHSM_X963_SHA1_KDF` X9.63 - KDF mit SHA1  [8](#kdf7) 
  + `CKD_CLOUDHSM_X963_SHA224_KDF`- X9.63 KDF mit SHA224  [8](#kdf7) 
  + `CKD_CLOUDHSM_X963_SHA256_KDF`- X9.63 KDF mit SHA256  [8](#kdf7) 
  + `CKD_CLOUDHSM_X963_SHA384_KDF`- X9.63 KDF mit SHA384  [8](#kdf7) 
  + `CKD_CLOUDHSM_X963_SHA512_KDF`- X9.63 KDF mit SHA512  [8](#kdf7) 

## Funktionen „Packen“ und „Entpacken“
<a name="pkcs11-mech-function-wrap-unwrap"></a>

Die AWS CloudHSM Softwarebibliothek für die PKCS \#11 -Bibliothek ermöglicht es Ihnen, die folgenden Mechanismen für Wrap- und Unwrap-Funktionen zu verwenden.

Weitere Informationen zum AES-Packen mit Schlüssel finden Sie unter [AES Key Wrapping](manage-aes-key-wrapping.md). 
+ `CKM_RSA_PKCS` – Nur Single-Part-Operationen. Bevorstehende Änderung in der Fußnote [5](#mech5) aufgeführt.
+ `CKM_RSA_PKCS_OAEP`[4](#mech4)
+ `CKM_AES_GCM`[1](#mech1), [3](#mech3)
+ `CKM_CLOUDHSM_AES_GCM`[3](#mech3)
+ `CKM_RSA_AES_KEY_WRAP`
+ `CKM_CLOUDHSM_AES_KEY_WRAP_NO_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`[3](#mech3)
+ `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`[3](#mech3)

## Maximale Datengröße für jeden Mechanismus
<a name="pkcs11-mech-max"></a>

Die folgende Tabelle listet die maximale Datengröße für jeden Mechanismus auf:.


**Maximale Datensatzgröße**  

| **Mechanismus** | **Maximale Datengröße in Bytes** | 
| --- | --- | 
| CKM\_SHA\_1\_HMAC | 16288 | 
| CKM\_SHA224\_HMAC | 16256 | 
| CKM\_SHA256\_HMAC | 16288 | 
| CKM\_SHA384\_HMAC | 16224 | 
| CKM\_SHA512\_HMAC | 16224 | 
| CKM\_AES\_CBC | 16272 | 
| CKM\_AES\_GCM | 16224 | 
| CKM\_CLOUDHSM\_AES\_GCM | 16224 | 
| CKM\_DES3\_CBC | 16280 | 
| CKM\_CLOUDHSM\_EDDSA(PureEdDSA, NULL-Parameter) | 16000 | 

## Anmerkungen zum Mechanismus
<a name="pkcs11-mech-annotations"></a>
+ [1] Bei der AES-GCM Verschlüsselung akzeptiert das HSM keine Initialisierungsvektordaten (IV) von der Anwendung. Sie müssen einen erzeugten IV verwenden. Das vom HSM bereitgestellte 12 Byte IV wird in den referenzierten Speicherbereich geschrieben, auf den das pIV-Element der von Ihnen bereitgestellten `CK_GCM_PARAMS`-Parameterstruktur zeigt. Um Verwirrung bei den Benutzern zu vermeiden, stellt das PKCS \#11 SDK in Version 1.1.1 und höher sicher, dass PiV bei der Initialisierung der Verschlüsselung auf einen auf Null gesetzten Puffer zeigt. AES-GCM 
+ [2] Wenn der Datenpuffer die maximale Datengröße überschreitet, führt die Operation bei der Bearbeitung von Daten mittels eines der folgenden Mechanismen zu einem Fehler. Für diese Mechanismen muss die gesamte Datenverarbeitung innerhalb des HSM erfolgen. Informationen zur maximalen Datengröße für jeden Mechanismus finden Sie unter. [Maximale Datengröße für jeden Mechanismus](#pkcs11-mech-max)
+ [3] Vendor-defined Mechanismus. Um die von anbieterdefinierten CloudHSM-Mechanismen zu verwenden, müssen PKCS \#11 -Anwendungen während der Kompilierung `/opt/cloudhsm/include/pkcs11/pkcs11t.h` enthalten.

  `CKM_CLOUDHSM_AES_GCM`: Dieser proprietäre Mechanismus ist eine programmatisch sicherere Alternative zum Standard `CKM_AES_GCM`. Er stellt die vom HSM generierte IV dem Chiffretext voran, anstatt sie zurück in die `CK_GCM_PARAMS`- Struktur zu schreiben, die während der Chiffrierinitialisierung bereitgestellt wird. Sie können diesen Mechanismus mit `C_Encrypt`-, `C_WrapKey`-, `C_Decrypt`- und `C_UnwrapKey`-Funktionen verwenden. Bei Verwendung dieses Mechanismus muss die pIV-Variable in der `CK_GCM_PARAMS`-Struktur auf `NULL` gesetzt werden. Wenn Sie diesen Mechanismus mit `C_Decrypt` und `C_UnwrapKey` verwenden, wird erwartet, dass der IV dem Verschlüsselungstext vorangestellt wird, der entpackt werden soll.

  `CKM_CLOUDHSM_AES_KEY_WRAP_PKCS5_PAD`: AES-Verschlüsselung mit PKCS \#5 Padding.

  `CKM_CLOUDHSM_AES_KEY_WRAP_ZERO_PAD`: AES-Verschlüsselung mit Zero Padding.

  `CKM_CLOUDHSM_ML_DSA_KEY_PAIR_GEN`: Generiert ein ML-DSA Schlüsselpaar. Verwenden Sie das `CKA_CLOUDHSM_PARAMETER_SET` Attribut (type`CK_CLOUDHSM_ML_DSA_PARAMETER_SET_TYPE`), um den Parametersatz anzugeben. Zulässige Werte: `CKP_CLOUDHSM_ML_DSA_44`, `CKP_CLOUDHSM_ML_DSA_65`, `CKP_CLOUDHSM_ML_DSA_87`.

  `CKM_CLOUDHSM_ML_DSA`: Einfach ML-DSA signieren und verifizieren. Signiert oder verifiziert Rohdaten mithilfe eines ML-DSA Schlüsselpaars.

  `CKM_CLOUDHSM_EXT_MU_ML_DSA`: ML-DSA Signieren und verifizieren Sie mit einer externen MU. Signiert oder verifiziert Daten, die zu einem externen mu-Wert vorverarbeitet wurden.

  `CKM_CLOUDHSM_EDDSA`: edDSA-Signaturmechanismus. Mit NULL-Parametern: PureEd DSA (Ed25519), nur einteilig, maximal 16.000 Byte. Mit `CK_EDDSA_PARAMS` (`phFlag = CK_TRUE`,`ulContextDataLen = 0`): ed25519Ph, einteilig und mehrteilig, keine Größenbeschränkung. Die `CK_EDDSA_PARAMS` Struktur folgt der PKCS \#11 v3.0-Spezifikation[. ](https://docs.oasis-open.org/pkcs11/pkcs11-curr/v3.0/pkcs11-curr-v3.0.html)
+ [4] Die folgenden `CK_MECHANISM_TYPE` und `CK_RSA_PKCS_MGF_TYPE` werden als `CK_RSA_PKCS_OAEP_PARAMS` für `CKM_RSA_PKCS_OAEP` unterstützt:
  + `CKM_SHA_1` mit `CKG_MGF1_SHA1`
  + `CKM_SHA224` mit `CKG_MGF1_SHA224`
  + `CKM_SHA256` mit `CKG_MGF1_SHA256`
  + `CKM_SHA384` mit `CKM_MGF1_SHA384`
  + `CKM_SHA512` mit `CKM_MGF1_SHA512`
+ [5] 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 noch 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).
+ [6] Vom Hersteller definierte Typen. Um vom Anbieter definierte CloudHSM-Typen verwenden zu können, müssen PKCS \#11 -Anwendungen bei der Kompilierung einbezogen `cloudhsm_pkcs11_vendor_defs.h` werden. Dies ist `/opt/cloudhsm/include/pkcs11/cloudhsm_pkcs11_vendor_defs.h` für Linux-basierte Plattformen und `C:\Program Files\Amazon\CloudHSM\include\pkcs11\cloudhsm_pkcs11_vendor_defs.h` für Windows-basierte Plattformen zu finden
+ [7] Wird nur auf hsm2m.medium-Instances im Nicht-FIPS-Modus unterstützt.
+ [8] Die wichtigsten Ableitungsfunktionen (KDFs) sind in der NIST-Sonderveröffentlichung 800-56A Revision 3 spezifiziert. [https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf)