翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Encryption SDK のしくみ
このセクションのワークフローは、AWS Encryption SDK がデータを暗号化し、暗号化されたメッセージ を復号する方法について説明します。これらのワークフローは、デフォルト機能を使用した基本的なプロセスを表します。カスタムコンポーネントの定義と使用の詳細については、 GitHub サポートされている各言語実装のリポジトリを参照してください。
AWS Encryption SDK は、エンベロープ暗号化を使用してデータを保護します。各メッセージは、一意のデータキーで暗号化されます。その後、データキーは指定したラッピングキーにより暗号化されます。暗号化されたメッセージを復号するために、AWS Encryption SDK は指定されたラッピングキーを使用し、少なくとも 1 つの暗号化されたデータキーを復号化します。その後、暗号文を復号化してプレーンテキストのメッセージを返すことができます。
「AWS Encryption SDK」で使われている用語についてサポートが必要ですか? の概念 AWS Encryption SDK を参照してください。
AWS Encryption SDK がデータを暗号化する方法
AWS Encryption SDK では、文字列、バイト配列およびバイトストリームを暗号化する方法を提供します。コードの例については、各 プログラミング言語 セクションの「例」トピックを参照してください。
-
データを保護するラッピングキーを指定する キーリング (または マスターキープロバイダー) を作成します。
-
キーリングとプレーンテキストのデータを暗号化メソッドに渡します。シークレットではないオプションの 暗号化コンテキスト で渡すことをお勧めします。
-
暗号化メソッドによって、キーリングに暗号化マテリアルが求められます。キーリングは、メッセージ固有のデータ暗号化キーを返します。1 つはプレーンテキストのデータキー、もう 1 つは、指定された各ラッピングキーで暗号化されたデータキーのコピーです。
-
暗号化方法は、プレーンテキストデータキーを使用してデータを暗号化し、プレーンテキストのデータキーを破棄します。暗号化コンテキスト (AWS Encryption SDK ベストプラクティス) を指定すると、暗号化メソッドは暗号化コンテキストを暗号化データに暗号的に結合します。
-
暗号化メソッドによって、暗号化されたデータ、暗号化されたデータキー、使用した場合は暗号化コンテキストなどの他の暗号化されたデータを含む 暗号化されたメッセージ が返ります。
AWS Encryption SDK が暗号化されたメッセージを復号する方法
AWS Encryption SDK は、暗号化されたメッセージ を復号するメソッドを提供し、プレーンテキストを返します。コードの例については、各 プログラミング言語 セクションの「例」トピックを参照してください。
暗号化されたメッセージを復号化する キーリング (または マスターキープロバイダー) は、メッセージの暗号化に使用されたキーリング (またはマスターキープロバイダー) と互換性がある必要があります。ラッピングキーのいずれか 1 つが暗号化されたメッセージの暗号化されたデータキーを復号できる必要があります。キーリングとマスターキープロバイダとの互換性については、「キーリングの互換性」を参照してください。
-
データを復号できるラッピングキーを使用して、キーリングまたはマスターキープロバイダーを作成します。暗号化メソッドに提供ものと同じキーリングを使用するか、別のキーリングを使用することもできます。
-
暗号化されたメッセージ とキーリングを復号化メソッドに渡します。
-
復号の方法では、キーリングまたはマスターキープロバイダーに、暗号化されたメッセージの暗号化されたデータキーのいずれかを復号するように要求します。 次に、暗号化されたメッセージから、暗号化されたデータキーなどの情報を渡します。
-
キーリングは、そのラッピングキーを使用して、暗号化されたデータキーのいずれかを復号します。成功した場合、レスポンスにはプレーンテキストのデータキーが含まれます。キーリングまたはマスターキープロバイダーによって指定されたラッピングキーのいずれも暗号化されたデータキーを復号化できない場合、復号の呼び出しは失敗します。
-
復号方法は、プレーンテキストデータキーを使用してデータを復号し、プレーンテキストのデータキーを破棄します。