非対称暗号化は、公開鍵/秘密鍵ペアの公開鍵を使用して平文を暗号化し、対応する秘密鍵を使用して暗号テキストを復号するプロセスを表します。この暗号化は、非対称暗号(公開鍵暗号とも呼ばれる)を利用しています。
一方、対称暗号化ではデータの暗号化と復号に同じ鍵が使用されます。
非対称暗号化のワークフロー
非対称鍵を使用してデータの暗号化と復号を行うワークフローは次のとおりです。このワークフローは、送信者と受信者で構成されます。送信者は受信者の公開鍵を使用して暗号テキストを作成し、受信者は自分の秘密鍵を使用して暗号テキストを復号します。 秘密鍵を知っている人だけが暗号テキストを復号できます。
送信者が受信者の公開鍵を取得します。
送信者はその公開鍵を使用して平文を暗号化します。
送信者はその暗号テキストを受信者に送信します。
受信者は自分の秘密鍵を使用して暗号テキストを復号します。これで受信者は平文を表示できます。
非対称暗号化の使用事例
一般に非対称暗号化は、サイズの大きいデータではなく、暗号鍵のようなごく小さいサイズの平文にだけ使用されます。たとえば、非対称暗号化を一種のエンベロープ暗号化として使用できます。この場合、公開鍵にアクセスできる人はだれでもデータ暗号鍵(DEK)を暗号化できます。暗号化された DEK は、非対称鍵の所有者に代わって Cloud KMS だけが復号できます。
非対称暗号化アルゴリズム
Cloud Key Management Service は、非対称暗号化の RSA アルゴリズムをサポートしています。RSA は業界標準のアルゴリズムであり、鍵のサイズとダイジェスト アルゴリズムを任意で選択できます。RSA 暗号は、大きい整数を 2 つ以上の素因数に分解する難しさを利用しています。鍵のサイズが大きいほど、整数の素因数分解は難しくなります。
Cloud KMS の非対称暗号化の機能
Cloud KMS に用意された非対称暗号化関連の機能は次のとおりです。
鍵の目的が
ASYMMETRIC_DECRYPT
である非対称鍵を作成する機能。Cloud KMS がサポートするアルゴリズムについては、非対称暗号化アルゴリズムをご覧ください。非対称鍵の公開鍵を取得する機能。この公開鍵を使用してユーザーがデータを暗号化します。Cloud KMS によって直接、非対称方式でデータを暗号化することはできません。代わりに OpenSSL などの公開されている SDK やツールを使用してユーザーがデータを暗号化します。こうした SDK やツールを使用するときに、Cloud KMS から取得した公開鍵が必要になります。
非対称鍵を使用してデータを復号する機能。