共通鍵暗号方式は、暗号化と復号に同じ鍵を使う方式です。送信者と受信者が鍵を安全に共有し、秘密に保つことが前提になります。公開鍵暗号との違いは、鍵の数だけでなく、持ち主と使う目的まで含めて考えましょう。
同じ共通鍵で暗号化・復号する

AさんとBさんが共通鍵Kを共有していれば、AさんはKでデータを暗号化し、Bさんは同じKで復号します。鍵が漏れると、その鍵で保護されたデータの安全性が損なわれるため、通信内容だけでなく鍵の管理も必要です。
特徴と代表方式
| 観点 | 押さえること |
|---|---|
| 処理 | 一般に大量のデータの保護に適する |
| 鍵の共有 | 盗まれない方法で通信相手と共有する |
| 鍵の管理 | 保管・更新・漏えいへの対応が必要 |
| 代表例 | AES。DESやBlowfishは歴史的な方式も含めて区別する |
「共通鍵暗号なら方式や使い方を問わず安全」とは考えません。アルゴリズム、鍵長、利用モード、実装、鍵の保管方法によって安全性は変わります。
公開鍵暗号と組み合わせるとき
| 目的 | 処理する側の鍵 | 相手側の鍵 |
|---|---|---|
| 共通鍵暗号による保護 | 共有した共通鍵で暗号化 | 同じ共通鍵で復号 |
| 公開鍵暗号による機密性確保 | 受信者の公開鍵で暗号化 | 受信者の秘密鍵で復号 |
| デジタル署名 | 署名者の秘密鍵で生成 | 署名者の公開鍵で検証 |
共通鍵を公開鍵暗号で暗号化して配送する基本例では、受信者の公開鍵で暗号化し、受信者の秘密鍵で復号します。受信者の公開鍵で共通鍵を復号する、という説明は誤りです。
TLS 1.3では、(EC)DHEや事前共有鍵などで共有秘密を確立し、通信データを共通鍵暗号で保護します。現在のHTTPSが常にRSAで共通鍵を送るわけではありません。
理解を確かめる確認問題
公開鍵暗号で暗号化して配送された共通鍵を、受信者はどの鍵で復号しますか?
解答・解説を見る
受信者自身の秘密鍵です。配送時の暗号化には受信者の公開鍵を使います。配送した共通鍵は、その後のデータの暗号化・復号に使います。

コメント