

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

# 暗号化されたオブジェクトの再暗号化
<a name="reencrypting-an-encrypted-object"></a>

KMS キーで暗号化された既存の顧客暗号文は、再暗号化コマンドを使用して別の KMS キーに再暗号化できます。再暗号化では、クライアント側にキーのプレーンテキストを公開することなく、サーバー側で新しい KMS キーを使用してデータを暗号化できます。データを復号化してから暗号化します。

次に、リクエスト構文を示します。

```
{
	"CiphertextBlob": "blob",
	"DestinationEncryptionContext": { "string" : "string" },
	"DestinationKeyId": "string",
	"GrantTokens": ["string"],
       "SourceKeyId": "string",
	"SourceEncryptionContext": { "string" : "string"}
}
```

リクエストは以下のデータを JSON 形式で受け入れます。

**CiphertextBlob**  
再暗号化するデータの暗号文です。

** DestinationEncryptionContext**  
(オプション) データを再暗号化する際に使用される、暗号化コンテキストです。

**DestinationKeyId**  
データの再暗号化に使用されるキーのキー識別子です。

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

**SourceKeyId**  
(オプション) データの復号化に使用されるキーのキー ID です。

**SourceEncryptionContext**  
(オプション) `CiphertextBlob` パラメータで指定されたデータの暗号化と復号化に使用される、暗号化コンテキストです。

このプロセスでは、前の説明の復号化および暗号化オペレーションを組み合わせます。顧客暗号文は、顧客暗号文で参照される最初の HBK で、意図した KMS キーで管理されている最新の HBK に復号化されます。このコマンドで使用されている KMS キーが同じである場合、コマンドは旧バージョンから最新バージョンの HBK に顧客暗号文を移動します。

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

```
{
    "CiphertextBlob": blob,
    "DestinationEncryptionAlgorithm": "string",
    "KeyId": "string",
    "SourceEncryptionAlgorithm": "string",
    "SourceKeyId": "string"
}
```

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