

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.

# Generieren Sie ein AWS CloudHSM DSA-Schlüsselpaar mit KMU
<a name="key_mgmt_util-genDSAKeyPair"></a>

Verwenden Sie den **genDSAKeyPair** Befehl im Tool AWS CloudHSM key\_mgmt\_util, um ein DSA-Schlüsselpaar ([Digital Signing Algorithm](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm)) in Ihren Hardware-Sicherheitsmodulen (HSM) zu generieren. Sie müssen die Modullänge angeben, der Befehl generiert den Modulwert. Sie können auch eine ID zuweisen, den Schlüssel für andere HSM-Benutzer freigeben sowie nicht extrahierbare Schlüssel und Schlüssel, die bei Sitzungsende ablaufen, erstellen. Wenn der Befehl erfolgreich ausgeführt wurde, werden die *Schlüssel-Handles* zurückgegeben, die das HSM den öffentlichen und privaten ECC-Schlüsseln zuweist. Sie können die Schlüssel-Handles nutzen, damit die Schlüssel für andere Befehle identifizierbar sind.

Bevor Sie einen key\_mgmt\_util-Befehl ausführen, müssen Sie [key\_mgmt\_util starten](key_mgmt_util-setup.md#key_mgmt_util-start) und sich am HSM als Crypto-Benutzer (CU) [anmelden](key_mgmt_util-log-in.md). 

**Tipp**  
Um die Attribute eines von Ihnen erstellten Schlüssels wie Typ, Länge, Bezeichnung und ID zu finden, verwenden Sie [getAttribute](key_mgmt_util-getAttribute.md). Um die Schlüssel für einen bestimmten Benutzer zu finden, verwenden Sie. [getKeyInfo](key_mgmt_util-getKeyInfo.md) Verwenden Sie [findKey](key_mgmt_util-findKey.md), um Schlüssel anhand ihrer Attributwerte zu finden. 

## Syntax
<a name="genDSAKeyPair-syntax"></a>

```
genDSAKeyPair -h

genDSAKeyPair -m {{<modulus length>}} 
              -l {{<label>}} 
              [-id {{<key ID>}}] 
              [-min_srv {{<minimum number of servers>}}] 
              [-m_value {{<0..8>}}]
              [-nex] 
              [-sess] 
              [-timeout {{<number of seconds>}} ]
              [-u {{<user-ids>}}] 
              [-attest]
```

## Beispiele
<a name="genDSAKeyPair-examples"></a>

Diese Beispiele verdeutlichen, wie mit **genDSAKeyPair** ein DSA-Schlüsselpaar erstellt wird.

**Example : Erstellen eines DSA-Schlüsselpaares**  
Mit diesem Befehl wird ein DSA-Schlüsselpaar mit einem `DSA`-Label erstellt. Die Ausgabe zeigt, dass das Schlüssel-Handle des öffentlichen Schlüssels `19` ist, und dass das Schlüssel-Handle des privaten Schlüssels `21` lautet.  

```
Command: genDSAKeyPair -m 2048 -l DSA

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 19    private key handle: 21

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Erstellen eines DSA-Schlüsselpaares, das nur für eine Sitzung gültig ist**  
Mit diesem Befehl wird ein DSA-Schlüsselpaar erstellt, das nur für die aktuelle Sitzung gültig ist. Der Befehl weist zusätzlich zu der erforderlichen (nicht eindeutigen) Bezeichnung eine eindeutige ID von `DSA_temp_pair` zu. Sie können ein solches Schlüsselpaar erstellen, um ein nur für diese Sitzung gültiges Token zu signieren und zu überprüfen. Die Ausgabe zeigt, dass das Schlüssel-Handle des öffentlichen Schlüssels `12` ist, und dass das Schlüssel-Handle des privaten Schlüssels `14` lautet.  

```
Command: genDSAKeyPair -m 2048 -l DSA-temp -id DSA_temp_pair -sess

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 12    private key handle: 14

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Um zu überprüfen, ob das Schlüsselpaar nur in der Sitzung vorhanden ist, verwenden Sie den `-sess`-Parameter von [findKey](key_mgmt_util-findKey.md) mit einem Wert von `1` (true).  

```
  Command: findKey -sess 1

  Total number of keys present 2

 number of keys matched from start index 0::1
12, 14

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS
```

**Example : Erstellen eines freigegebenen, unextrahierbaren DSA-Schlüsselpaares**  
Mit diesem Befehl wird ein DSA-Schlüsselpaar erstellt. Der private Schlüssel wird mit drei anderen Benutzern geteilt und kann nicht aus dem HSM exportiert werden. Öffentliche Schlüssel können von jedem Benutzer verwendet und immer extrahiert werden.   

```
        Command:  genDSAKeyPair -m 2048 -l DSA -id DSA_shared_pair -nex -u 3,5,6

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 11    private key handle: 19

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```

**Example : Erstellen eines Quorum-kontrollierten Schlüsselpaares**  
Mit diesem Befehl wird ein DSA-Schlüsselpaar mit der Bezeichnung `DSA-mV2` erstellt. Der Befehl verwendet den `-u`-Parameter, um den privaten Schlüssel für die Benutzer 4 und 6 freizugeben. Er verwendet den `-m_value`-Parameter, damit für alle kryptografischen Vorgänge, die den privaten Schlüssel verwenden, ein Quorum aus mindestens zwei Genehmigungen erforderlich ist. Der Befehl verwendet auch den `-attest`-Parameter, um die Integrität der Firmware zu überprüfen, auf der das Schlüsselpaar generiert wird.  
Die Ausgabe zeigt, dass der Befehl einen öffentlichen Schlüssel mit dem Schlüssel-Handle `12` und einen privaten Schlüssel mit dem Schlüssel-Handle `17` generiert, und dass die Bescheinigungsprüfung auf der Cluster-Firmware erfolgreich bestanden wurde.  

```
        Command:  genDSAKeyPair -m 2048 -l DSA-mV2 -m_value 2 -u 4,6 -attest

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 12    private key handle: 17

        Attestation Check : [PASS]

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
Dieser Befehl verwendet [getKeyInfo](key_mgmt_util-getKeyInfo.md)den privaten Schlüssel (Schlüsselname`17`). Die Ausgabe bestätigt, dass es sich bei dem Eigentümer um den aktuellen Benutzer (Benutzer 3) handelt, und dass der Schlüssel mit den Benutzern 4 und 6 (und keinen anderen) geteilt wird. Die Ausgabe zeigt zudem, dass die Quorum-Authentifizierung aktiviert ist und die Quorumgröße 2 beträgt.  

```
        Command:  getKeyInfo -k 17

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 2 user(s):

                 4
                 6
         2 Users need to approve to use/manage this key
```

## Parameters
<a name="genDSAKeyPair-params"></a>

**-h**  
Zeigt Hilfe für den Befehl an.   
Erforderlich: Ja

**-m**  
Gibt die Länge des Moduls in Bits an. Der einzige gültige Wert ist `2048`.  
Erforderlich: Ja

**-l**  
Gibt eine benutzerdefinierte Bezeichnung für das Schlüsselpaar an. Geben Sie eine Zeichenfolge ein. Dieselbe Bezeichnung gilt für beide Schlüssel im Paar. Die maximal zulässige Größe für `label` beträgt 127 Zeichen.  
Sie können eine beliebige Phrase verwenden, die Ihnen bei der Identifizierung des Schlüssels hilft. Da die Bezeichnung nicht eindeutig sein muss, können Sie sie verwenden, um Schlüssel zu gruppieren und zu kategorisieren.   
Erforderlich: Ja

**-id**  
Gibt einen benutzerdefinierten Bezeichner für das Schlüsselpaar an. Geben Sie eine Zeichenfolge ein, die im Cluster eindeutig ist. Der Standardwert ist eine leere Zeichenfolge. Die von Ihnen angegebene ID gilt für beide Schlüssel im Paar.  
Standard : Kein ID-Wert.  
Erforderlich: Nein

**-min\_srv**  
Gibt die Mindestanzahl HSMs an, mit der der Schlüssel synchronisiert wird, bevor der Wert des `-timeout` Parameters abläuft. Falls der Schlüssel nicht in der zulässigen vorgegebenen Zeit mit der angegebenen Anzahl von Servern synchronisiert wird, wird er nicht erstellt.  
AWS CloudHSM synchronisiert automatisch jeden Schlüssel mit jedem HSM im Cluster. Um Ihren Prozess zu beschleunigen, setzen Sie den Wert von `min_srv` auf weniger als die Anzahl von HSMs im Cluster und legen Sie einen niedrigen Timeout-Wert fest. Beachten Sie jedoch, dass einige Anfragen möglicherweise keinen Schlüssel generieren.  
Standard: 1  
Erforderlich: Nein

**-m\_value**  
Gibt die Anzahl der Benutzer an, die jede kryptografische Operation genehmigen müssen, die den privaten Schlüssel des Paares verwendet. Geben Sie einen Wert von `0` bis `8` ein.  
Dieser Parameter legt eine Quorum-Authentifizierungsanforderung für den privaten Schlüssel fest. Der Standardwert, `0`, deaktiviert die Quorum-Authentifizierungsfunktion für den Schlüssel. Wenn die Quorumauthentifizierung aktiviert ist, muss die angegebene Anzahl von Benutzern ein Token signieren, um kryptografische Operationen, bei denen der private Schlüssel verwendet wird, sowie Operationen, bei denen der private Schlüssel gemeinsam genutzt oder die gemeinsame Nutzung aufgehoben wird, zu genehmigen.  
Um den Wert `m_value` eines Schlüssels zu ermitteln, verwenden Sie [getKeyInfo](key_mgmt_util-getKeyInfo.md).  
Dieser Parameter ist nur gültig, wenn der `-u`-Parameter im Befehl das Schlüsselpaar für ausreichend Benutzer freigibt, um die `m_value`-Anforderung zu erfüllen.  
Standard: 0  
Erforderlich: Nein

**-nex**  
Macht den privaten Schlüssel nicht extrahierbar. Der generierte private Schlüssel kann nicht [aus dem HSM exportiert](export-keys.md) werden. Öffentliche Schlüssel sind immer extrahierbar.  
Standard: Sowohl der öffentliche als auch der private Schlüssel im Schlüsselpaar können extrahiert werden.  
Erforderlich: Nein

**-sess**  
Erstellt einen Schlüssel, der nur in der aktuellen Sitzung existiert. Der Schlüssel kann nach Ende der Sitzung nicht wiederhergestellt werden.  
Verwenden Sie diesen Parameter, wenn Sie einen Schlüssel zum Packen nur für kurze Zeit benötigen, z. B. einen Schlüssel, der einen anderen Schlüssel verschlüsselt und dann schnell entschlüsselt. Verwenden Sie keinen Sitzungsschlüssel, um Daten zu verschlüsseln, die Sie nach dem Ende der Sitzung möglicherweise entschlüsseln müssen.  
Um einen Sitzungsschlüssel in einen persistenten (Token-)Schlüssel zu ändern, verwenden Sie [setAttribute](key_mgmt_util-setAttribute.md).  
Standard: Der Schlüssel ist persistent.   
Erforderlich: Nein

**-timeout**  
Gibt an, wie lange (in Sekunden) der Befehl darauf wartet, dass ein Schlüssel mit der im `min_srv` Parameter HSMs angegebenen Anzahl von synchronisiert wird.   
Dieser Parameter ist nur gültig, wenn der `min_srv`-Parameter auch im Befehl verwendet wird.  
Voreinstellung: Keine Zeitüberschreitung. Der Befehl wartet auf unbestimmte Zeit und kehrt erst zurück, wenn der Schlüssel mit der Mindestanzahl von Servern synchronisiert ist.  
Erforderlich: Nein

**-u**  
Teilt den privaten Schlüssel des Paares mit den angegebenen Benutzern. Dieser Parameter gibt anderen HSM-Kryptobenutzern (CUs) die Erlaubnis, den privaten Schlüssel für kryptografische Operationen zu verwenden. Öffentliche Schlüssel können von jedem Benutzer verwendet werden, ohne sie zu teilen.  
Geben Sie eine durch Kommas getrennte Liste von HSM-Benutzern IDs ein, z. B. -. `u 5,6` Fügen Sie die HSM-Benutzer-ID des aktuellen Benutzers nicht ein. [Um den HSM-Benutzer IDs von CUs auf dem HSM zu finden, verwenden Sie ListUsers.](key_mgmt_util-listUsers.md) Nutzen Sie zum Freigeben oder zum Aufheben der Freigabe vorhandener Schlüssel [shareKey](cloudhsm_mgmt_util-shareKey.md) in cloudhsm\_mgmt\_util.   
Standard: Nur der aktuelle Benutzer kann den privaten Schlüssel verwenden.   
Erforderlich: Nein

**-attest**  
Führt eine Integritätsprüfung durch, die sicherstellt, dass die Firmware, auf der der Cluster läuft, nicht manipuliert wurde.  
Standard: Keine Bescheinigungsprüfung.  
Erforderlich: Nein

## Verwandte Themen
<a name="genDSAKeyPair-seealso"></a>
+ [RSAKeyGen-Paar](key_mgmt_util-genRSAKeyPair.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [ECCKeyGen-Paar](key_mgmt_util-genECCKeyPair.md)