【エンベロープあんごうか】

エンベロープ暗号化 とは?

💡 鍵を鍵で包む、暗号化の封筒
📌 このページのポイント
エンベロープ暗号化:鍵を鍵で包む二重構造 Step 1: データをDEK(データ暗号化鍵)で暗号化 データ (平文) DEK データ暗号化鍵 (AES等) 暗号化されたデータ (DEKで暗号化済み) Step 2: DEKをKEK(鍵暗号化鍵)で暗号化 DEK (平文) KEK 鍵暗号化鍵 (KMS管理) 暗号化されたDEK (データと一緒に保存) KEKのローテーション = DEKの再ラップだけでOK(データ本体の再暗号化不要) AWS KMS / Google Cloud KMS / Azure Key Vault が標準採用
エンベロープ暗号化のイメージ:DEKをKEKで包む二重構造
ひよこ ひよこ

エンベロープ暗号化って、普通の暗号化と何が違うの?

ペンギン先生 ペンギン先生

普通の暗号化はデータを一つの鍵で直接暗号化するだけだよ。でもエンベロープ暗号化は「データを暗号化する鍵(DEK)」と「その鍵を暗号化する鍵(KEK)」の二段階にするんだ。封筒に手紙を入れて、さらに封筒を別の箱に入れるイメージだよ。

ひよこ ひよこ

なんでわざわざ二重にするの?

ペンギン先生 ペンギン先生

大きなファイルを直接マスター鍵で暗号化するのは遅いし、鍵が漏れたら全データが危険になるからだよ。エンベロープ方式なら、データごとに異なるDEKを生成して高速なAESで暗号化し、そのDEKだけをクラウドのKMSで保護すればいいんだ。

ひよこ ひよこ

AWSとかGCPのKMSってその方式なんだ!でも鍵が2種類あって管理が大変にならないの?

ペンギン先生 ペンギン先生

むしろ管理が楽になるよ。KEK(マスター鍵)はKMSが厳重に管理して、DEKは暗号化された状態でデータと一緒に保存するんだ。マスター鍵そのものをクラウドの外に出す必要がないから、鍵の漏洩リスクが大幅に下がるよ。

ひよこ ひよこ

鍵のローテーションって、エンベロープだと楽になるって聞いたけど?

ペンギン先生 ペンギン先生

そうなんだ。KEKを変えるだけでOKで、データ本体の再暗号化は不要なんだ。DEKはすでに暗号化した状態で保存されているから、KEKで再ラップ(DEKの暗号化だけやり直す)すれば全体の鍵ローテーションが完了するよ。

ひよこ ひよこ

DEKが漏れたらどうなるの?

ペンギン先生 ペンギン先生

DEKが漏れたとしても、そのDEKで暗号化したデータだけが危険にさらされるよ。データごとにDEKが異なるから、一つのDEKが漏れても他のデータには影響しないんだ。これが「鍵の爆発半径を最小化する」という考え方で、クラウドセキュリティの重要な設計原則だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「エンベロープ暗号化」って出てきたら「データの鍵をさらに別の鍵で暗号化する二重構造」と思えればだいたいOK!
📖 おまけ:英語の意味
「Envelope Encryption」 = エンベロープ(封筒)暗号化
💬 DEKをKEKで包む様子が「封筒に手紙を入れる」ことに似ていることから「エンベロープ(封筒)」と名付けられているだよ
← 用語集にもどる