

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

# の AWS Encryption SDK 仕組み
<a name="how-it-works"></a>

このセクションのワークフローでは、 AWS Encryption SDK がデータを暗号化し、[暗号化されたメッセージを](concepts.md#message)復号する方法について説明します。これらのワークフローは、デフォルト機能を使用した基本的なプロセスを表します。カスタムコンポーネントの定義と使用の詳細については、サポートされているそれぞれの[言語実装](programming-languages.md)の GitHub リポジトリを参照してください。

 AWS Encryption SDK は、エンベロープ暗号化を使用してデータを保護します。各メッセージは、一意のデータキーで暗号化されます。その後、データキーは指定したラッピングキーにより暗号化されます。暗号化されたメッセージを復号するために、 AWS Encryption SDK は、指定したラッピングキーを使用して、少なくとも 1 つの暗号化されたデータキーを復号します。その後、暗号文を復号化してプレーンテキストのメッセージを返すことができます。

「 AWS Encryption SDK」で使われている用語についてサポートが必要ですか? 「[の概念 AWS Encryption SDK](concepts.md)」を参照してください。

## がデータを AWS Encryption SDK 暗号化する方法
<a name="encrypt-workflow"></a>

 AWS Encryption SDK には、文字列、バイト配列、バイトストリームを暗号化するメソッドが用意されています。コードの例については、各 [プログラミング言語](programming-languages.md) セクションの「例」トピックを参照してください。

1. データを保護するラッピングキーを指定する [キーリング](choose-keyring.md) (または [マスターキープロバイダー](concepts.md#master-key-provider)) を作成します。

1. キーリングとプレーンテキストのデータを暗号化メソッドに渡します。シークレットではないオプションの [暗号化コンテキスト](concepts.md#encryption-context) で渡すことをお勧めします。

1. 暗号化メソッドによって、キーリングに暗号化マテリアルが求められます。キーリングは、メッセージの一意のデータ暗号化キーを返します。1 つのプレーンテキストデータキーと、指定された各ラッピングキーによって暗号化されたそのデータキーのコピーです。

1. 暗号化方法は、プレーンテキストデータキーを使用してデータを暗号化し、プレーンテキストのデータキーを破棄します。暗号化コンテキスト ( AWS Encryption SDK [ベストプラクティス](best-practices.md)) を指定すると、暗号化メソッドは暗号化コンテキストを暗号化データに暗号的に結合します。

1. 暗号化メソッドによって、暗号化されたデータ、暗号化されたデータキー、使用した場合は暗号化コンテキストなどの他の暗号化されたデータを含む [暗号化されたメッセージ](concepts.md#message) が返ります。

## が暗号化されたメッセージを AWS Encryption SDK 復号する方法
<a name="decrypt-workflow"></a>

 AWS Encryption SDK には、[暗号化されたメッセージを](concepts.md#message)復号し、プレーンテキストを返すメソッドが用意されています。コードの例については、各 [プログラミング言語](programming-languages.md) セクションの「例」トピックを参照してください。

暗号化されたメッセージを復号化する [キーリング](choose-keyring.md) (または [マスターキープロバイダー](concepts.md#master-key-provider)) は、メッセージの暗号化に使用されたキーリング (またはマスターキープロバイダー) と互換性がある必要があります。ラッピングキーのいずれか 1 つが暗号化されたメッセージの暗号化されたデータキーを復号できる必要があります。キーリングとマスターキープロバイダとの互換性については、「[キーリングの互換性](choose-keyring.md#keyring-compatibility)」を参照してください。

1. データを復号できるラッピングキーを使用して、キーリングまたはマスターキープロバイダーを作成します。暗号化メソッドに提供ものと同じキーリングを使用するか、別のキーリングを使用することもできます。

1. [暗号化されたメッセージ](concepts.md#message) とキーリングを復号化メソッドに渡します。

1. 復号の方法では、キーリングまたはマスターキープロバイダーに、暗号化されたメッセージの暗号化されたデータキーのいずれかを復号するように要求します。　 次に、暗号化されたメッセージから、暗号化されたデータキーなどの情報を渡します。

1. キーリングは、そのラッピングキーを使用して、暗号化されたデータキーのいずれかを復号します。成功した場合、レスポンスにはプレーンテキストのデータキーが含まれます。キーリングまたはマスターキープロバイダーによって指定されたラッピングキーのいずれも暗号化されたデータキーを復号化できない場合、復号の呼び出しは失敗します。　

1. 復号方法は、プレーンテキストデータキーを使用してデータを復号し、プレーンテキストのデータキーを破棄します。　