共通鍵暗号と公開鍵暗号の違いは、鍵の組合せと役割にあります。共通鍵暗号は同じ鍵を共有し、公開鍵暗号は公開鍵と秘密鍵のペアを利用します。実際の通信では、両方の仕組みを組み合わせます。
鍵の持ち主まで含めて比べる

| 方式 | 使う鍵 | 主な用途 |
|---|---|---|
| 共通鍵暗号 | 同じ共通鍵で暗号化・復号 | 大量のデータを効率よく保護 |
| 公開鍵暗号による暗号化 | 受信者の公開鍵で暗号化、受信者の秘密鍵で復号 | 秘密情報の保護・鍵の配送など |
| デジタル署名 | 送信者の秘密鍵で署名、送信者の公開鍵で検証 | 改ざん検知・署名者の確認 |
共通鍵暗号の長所と課題
AESなどの共通鍵暗号は、大量のデータを効率よく保護する用途に適しています。ただし、通信相手と鍵を安全に共有する必要があります。鍵の漏えい、保管方法、更新も運用上の課題です。
公開鍵暗号の長所と課題
機密性を目的とする暗号化では、受信者の公開鍵を使い、受信者が自分の秘密鍵で復号します。秘密鍵を相手に配送する必要はありませんが、公開鍵の配布と真正性の確認は必要です。「鍵配送が不要だから何もしなくてよい」とは考えません。RSAなどが代表例です。
HTTPSで組み合わせる理由
実際の暗号通信では、鍵を確立する仕組みとデータを暗号化する仕組みを組み合わせます。TLS 1.3では、(EC)DHEや事前共有鍵などで共有秘密を確立し、通信データを共通鍵暗号で保護します。「HTTPSでは必ずRSAで共通鍵を送る」とは限りません。
鍵を確立する仕組み、相手を認証する仕組み、通信データを保護する仕組みは役割が異なります。速度だけで優劣を決めず、何を実現するための処理かで判断しましょう。
署名では鍵の向きを混同しない
機密性のための暗号化は受信者の鍵、署名は送信者の鍵を考えます。送信者の秘密鍵で署名し、送信者の公開鍵で検証します。署名は内容を隠す暗号化とは目的が違います。
理解を確かめる確認問題
「公開鍵暗号なら、入手した公開鍵が誰のものか確認する必要はない」は正しいでしょうか?
解答・解説を見る
誤りです。攻撃者の公開鍵を本人の鍵として受け入れると、相手の確認を誤る可能性があります。電子証明書などで鍵と持ち主の対応を確認します。

コメント