

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

# Decrypt
<a name="decrypt-operation"></a>

暗号文値を復号 AWS KMS するための の呼び出しは、暗号化された値の暗号文と暗号化コンテキストを受け入れます。 は[AWS 、署名バージョン 4 の署名付きリクエスト](https://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html)を使用して呼び出し AWS KMS を認証し、暗号文からラッピングキーの HBKID を抽出します。HBKID は、暗号文、キー ID、およびそのポリシーを復号化するために必要な *EKT* の取得に使用されます。リクエストは、キーポリシー、存在する可能性のある許可、およびキー ID を参照する関連 IAM ポリシーに基づいて許可されます。`Decrypt` 関数は、暗号化関数に類似しています。

次に示すのは、`Decrypt` のリクエスト構文です。

```
{
	"CiphertextBlob": "blob",
	"EncryptionContext": { "string" : "string" }
	"GrantTokens": ["string"]
}
```

次に示すのは、リクエストパラメータです。

**CiphertextBlob**  
メタデータを含む暗号文です。

** EncryptionContext**  
(オプション) 暗号化コンテキストです。これが `Encrypt` 関数で指定されている場合、ここで指定する必要があります。そうしないと、復号オペレーションが失敗します。詳しくは、*AWS Key Management Service デベロッパーガイド*の「[Encryption context](https://docs.aws.amazon.com/kms/latest/developerguide/encrypt-context.html)」を参照してください。

**GrantTokens**  
(オプション) 復号化を実行するためのアクセス許可を提供する権限を示す、許可トークンのリストです。

*暗号文*と *EKT* は、認証されたセッションを通じて暗号化コンテキストとともに HSM に送信され、復号化が行われます。

HSM では、次の操作を実行します。

1. *EKT* を復号化し、*HBK = Decrypt(DKi, EKT)* を取得します。

1. *暗号文*構造から、ノンス *N* を抽出します。

1. *HBK* および *N* から、256 ビットの AES-GCM 導出暗号化キー *K* を再生成します。

1. *暗号文*を復号化し、*plaintext = Decrypt(K, context, ciphertext)* を取得します。

生成されたキー ID とプレーンテキストは、セキュアセッションを介して AWS KMS ホストに返され、TLS 接続を介して呼び出し元のカスタマーアプリケーションに戻ります。

次に示すのは、応答の構文です。

```
{
    "KeyId": "string",
    "Plaintext": blob
}
```

呼び出し元のアプリケーションからプレーンテキストの信頼性を確認したい場合は、返されたキー ID が期待どおりであることを確認する必要があります。