

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# CloudHSM CLI で ML-DSA メカニズムを使用して署名を生成する
<a name="cloudhsm_cli-crypto-sign-mldsa"></a>

CloudHSM CLI の **crypto sign ml-dsa** コマンドを使用して、ML-DSA プライベートキーと ML-DSA 署名メカニズムを使用して署名を生成します。

**crypto sign ml-dsa** コマンドを使用するには、まず AWS CloudHSM クラスターに ML-DSA プライベートキーが必要です。ML-DSA プライベートキーは、 `sign` 属性を に設定して [CloudHSM CLI を使用して非対称 ML-DSA キーペアを生成する](cloudhsm_cli-key-generate-asymmetric-pair-mldsa.md) コマンドを使用して生成できます`true`。

**注記**  
[CloudHSM CLI の暗号化検証カテゴリ](cloudhsm_cli-crypto-verify.md) サブコマンド AWS CloudHSM を使用して、 で署名を検証できます。

raw データまたは計算された外部 mu データの 2 つのデータ型を使用して署名を生成できます。

## 外部 mu を生成するステップ
<a name="cloudhsm_cli-crypto-sign-mldsa-external-mu"></a>

`external-mu` データ型を使用するには、まず ML-DSA パブリックキーを使用してメッセージから 64 バイトの mu ダイジェストを生成する必要があります。

1. **CloudHSM CLI を使用してパブリックキー PEM ファイルを生成します。**

   ```
   aws-cloudhsm > key generate-file --encoding pem --path /tmp/public_key.pem --filter attr.label="mldsa-public-key-example"
   ```

   詳細については、「[CloudHSM CLI で非対称キーをエクスポートする](cloudhsm_cli-key-generate-file.md)」を参照してください。

1. **メッセージプレフィックスを作成します。**

   プレフィックスには、ドメイン区切り文字、コンテキストの長さ、コンテキストが含まれます。ドメイン区切り文字とコンテキストの長さのデフォルトは 0 です。

1. **メッセージプレフィックスをメッセージに追加します。**

1. **SHAKE256 を使用してパブリックキーをハッシュし、ステップ 3 の結果に付加します。**

1. **結果をハッシュして 64 バイトの外部 mu を生成します。**

### OpenSSL の例
<a name="cloudhsm_cli-crypto-sign-mldsa-external-mu-openssl"></a>

次の例ではOpenSSL、3.5 を使用して外部 mu を作成します。

```
{
    openssl asn1parse -inform PEM -in public_key.pem -strparse 17 -noout -out - 2>/dev/null |
    openssl dgst -provider default -shake256 -xoflen 64 -binary;
    
    printf '\x00\x00';
    
    echo -n "your message"
} | openssl dgst -provider default -shake256 -xoflen 64 -binary | base64
```

結果の base64 エンコードされた 64 バイトダイジェストを の`--data`パラメータとして使用します`--data-type external-mu`。

## ユーザーのタイプ
<a name="cloudhsm_cli-crypto-sign-mldsa-userType"></a>

このコマンドは、次のタイプのユーザーが実行できます。
+ Crypto User (CU)

## 要件
<a name="cloudhsm_cli-crypto-sign-mldsa-requirements"></a>
+ このコマンドを実行するには、CU としてログインする必要があります。

## 構文
<a name="cloudhsm_cli-crypto-sign-mldsa-syntax"></a>

```
aws-cloudhsm > help crypto sign ml-dsa
Signs data with a ML-DSA private key

Usage: crypto sign ml-dsa [OPTIONS] --key-filter {{<KEY_FILTER>}} --data-type {{<DATA_TYPE>}} --hash-function {{<HASH_FUNCTION>}}

Options:
      --key-filter {{<KEY_FILTER>}}
          The key reference or a list of key attributes to filter for a key to sign with

      --hash-function {{<HASH_FUNCTION>}}
          The hash function to use with ML-DSA. [possible values: shake256]

      --data {{<DATA>}}
          Data to be signed

      --data-path {{<DATA_PATH>}}
          Path to file containing data to be signed

      --data-type {{<DATA_TYPE>}}
          Specifies if the data is raw or has been processed using external mu. [possible values: raw, external-mu]

      --approval {{<APPROVAL>}}
          File path of signed quorum token file to approve operation. Necessary for keys with quorum enabled

  -h, --help
          Print help
```

## 例
<a name="crypto-sign-mldsa-examples"></a>

**例: ML-DSA プライベートキーを使用して raw データに署名する**

このコマンドを使用して、ML-DSA プライベートキーで raw データに署名します。

```
aws-cloudhsm > crypto sign ml-dsa \
    --key-filter attr.label=ml-dsa-private-key-example \
    --data-type raw \
    --hash-function shake256 \
    --data YWJjMTIz
{
  "error_code": 0,
  "data": {
    "key-reference": "0x0000000000000f63",
    "signature": "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"
  }
}
```

**例: ML-DSA プライベートキーを使用して外部 mu データに署名する**

このコマンドを使用して、ML-DSA プライベートキーで外部 mu データに署名します。

```
aws-cloudhsm > crypto sign ml-dsa \
    --key-filter attr.label="MLDSA_private_key" \
    --data-type external-mu \
    --hash-function shake256 \
    --data DgFbkWgb9fbejQUSbJ09/Nmp7phb714RTkWdNAwQqd9u7M7XCWbI8EoaIeGcZCUwIzaG6kDavZDYxCcaEicbTw==
{
  "error_code": 0,
  "data": {
    "key-reference": "0x0000000000000be2",
    "signature": "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"
  }
}
```

**例: ファイルパスからデータに署名する**

このコマンドを使用して、ML-DSA プライベートキーを使用してファイルからデータに署名します。

```
aws-cloudhsm > crypto sign ml-dsa \
    --key-filter attr.label=ml-dsa-private-key-example \
    --data-type raw \
    --hash-function shake256 \
    --data-path /tmp/data.bin
{
  "error_code": 0,
  "data": {
    "key-reference": "0x0000000000000f63",
    "signature": "..."
  }
}
```

## 引数
<a name="cloudhsm_cli-crypto-sign-mldsa-arguments"></a>

**{{<CLUSTER\_ID>}}**  
このオペレーションを実行するクラスターの ID。  
必須: 複数のクラスターが[設定](cloudhsm_cli-configs-multi-cluster.md)されている場合。

**{{<DATA>}}**  
署名対象の Base64 でエンコードされたデータ。  
必須: はい (データパスを通じて提供される場合を除く）

**{{<DATA\_PATH>}}**  
署名するデータの場所を指定します。  
必須: はい (データを通じて提供される場合を除く）

**{{<HASH\_FUNCTION>}}**  
ML-DSA で使用するハッシュ関数を指定します。  
有効な値:  
+ シェイク256
必須: はい

**{{<KEY\_FILTER>}}**  
キーリファレンス ( など`key-reference=0xabc`) または attr.KEY\_ATTRIBUTE\_NAME=KEY\_ATTRIBUTE\_VALUE 形式のキー属性のスペース区切りリスト。一致するキーを選択します。  
サポートされている CloudHSM CLI キー属性のリストについては、「CloudHSM CLI のキー属性」を参照してください  
必須: はい

**{{<APPROVAL>}}**  
オペレーションを承認する署名付きクォーラムトークンファイルへのファイルパスを指定します。プライベートキーのキー使用サービスのクォーラム値が 1 より大きい場合にのみ必要です。  
必須: いいえ

**{{<DATA\_TYPE>}}**  
提供されたデータのデータ型を指定します。ハッシュされていないデータ`raw`には を使用し、計算された外部 mu データ`external-mu`には を使用します。  
有効な値:  
+ raw
+ external-mu
必須: はい

## 関連トピック
<a name="cloudhsm_cli-crypto-sign-mldsa-seealso"></a>
+ [CloudHSM CLI の暗号化署名カテゴリ](cloudhsm_cli-crypto-sign.md)
+ [CloudHSM CLI で ML-DSA メカニズムで署名された署名を検証する](cloudhsm_cli-crypto-verify-mldsa.md)
+ [CloudHSM CLI を使用して非対称 ML-DSA キーペアを生成する](cloudhsm_cli-key-generate-asymmetric-pair-mldsa.md)