スポンサーリンク

【応用情報技術者試験】共通鍵暗号方式と公開鍵暗号方式の違いをわかりやすく解説

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

鍵の持ち主まで含めて比べる

共通鍵暗号・公開鍵暗号・署名で使う鍵の持ち主の違い
共通鍵暗号・公開鍵暗号・署名で使う鍵の持ち主の違い
方式使う鍵主な用途
共通鍵暗号同じ共通鍵で暗号化・復号大量のデータを効率よく保護
公開鍵暗号による暗号化受信者の公開鍵で暗号化、受信者の秘密鍵で復号秘密情報の保護・鍵の配送など
デジタル署名送信者の秘密鍵で署名、送信者の公開鍵で検証改ざん検知・署名者の確認

共通鍵暗号の長所と課題

AESなどの共通鍵暗号は、大量のデータを効率よく保護する用途に適しています。ただし、通信相手と鍵を安全に共有する必要があります。鍵の漏えい、保管方法、更新も運用上の課題です。

公開鍵暗号の長所と課題

機密性を目的とする暗号化では、受信者の公開鍵を使い、受信者が自分の秘密鍵で復号します。秘密鍵を相手に配送する必要はありませんが、公開鍵の配布と真正性の確認は必要です。「鍵配送が不要だから何もしなくてよい」とは考えません。RSAなどが代表例です。

HTTPSで組み合わせる理由

実際の暗号通信では、鍵を確立する仕組みとデータを暗号化する仕組みを組み合わせます。TLS 1.3では、(EC)DHEや事前共有鍵などで共有秘密を確立し、通信データを共通鍵暗号で保護します。「HTTPSでは必ずRSAで共通鍵を送る」とは限りません。

鍵を確立する仕組み、相手を認証する仕組み、通信データを保護する仕組みは役割が異なります。速度だけで優劣を決めず、何を実現するための処理かで判断しましょう。

署名では鍵の向きを混同しない

機密性のための暗号化は受信者の鍵、署名は送信者の鍵を考えます。送信者の秘密鍵で署名し、送信者の公開鍵で検証します。署名は内容を隠す暗号化とは目的が違います。

理解を確かめる確認問題

「公開鍵暗号なら、入手した公開鍵が誰のものか確認する必要はない」は正しいでしょうか?

解答・解説を見る

誤りです。攻撃者の公開鍵を本人の鍵として受け入れると、相手の確認を誤る可能性があります。電子証明書などで鍵と持ち主の対応を確認します。

参考:RFC 8446:TLS 1.3

コメント