共通鍵暗号方式は、暗号化と復号に同じ秘密の鍵を使う方式です。通信では実データの暗号化に利用し、鍵の共有・合意や相手の認証と役割を分けて理解します。
暗号化と復号の流れ
| 処理 | 使う鍵 | 結果 |
|---|---|---|
| 送信側が平文を暗号化 | 共通鍵K | 暗号文 |
| 受信側が暗号文を復号 | 対応する同じ共通鍵K | 元の平文 |
代表的な方式にAESがあります。共通鍵は公開する鍵ではなく、第三者へ漏らさない管理が必要です。実際の安全性は暗号方式だけでなく、利用モード・鍵管理などにも依存します。
鍵配送と鍵合意を分ける
通信相手と同じ秘密を安全に用意することが課題です。鍵を事前に共有する方法、受信者の公開鍵で鍵素材を暗号化して渡す方法、Diffie–Hellman系の鍵合意で双方が秘密を導く方法などがあります。共通鍵が必ずそのまま送信されるわけではありません。
TLS 1.3では「RSAで共通鍵を送る」と覚えない
TLS 1.3は、従来のRSA鍵配送を採用していません。公開鍵を使う鍵合意として(EC)DHEなどを利用し、合意した秘密などから通信に使う鍵を導出します。事前共有鍵(PSK)を使う構成もあります。「実データは共通鍵で保護する」という基本と、鍵を用意する具体的方法を分けましょう。
実際には送信方向などに応じた別々の鍵が導出されます。単純な「全通信を1本の鍵で暗号化」という図は、共通鍵方式の基礎を示すイメージとして捉えてください。
暗号化・署名・証明書の鍵を比較
| 目的 | 基本的な鍵の使い方 |
|---|---|
| 共通鍵暗号 | 同じ秘密の鍵で暗号化・復号 |
| 公開鍵暗号による機密性保護 | 受信者の公開鍵で暗号化し、受信者の秘密鍵で復号 |
| ディジタル署名 | 送信者の秘密鍵で署名を生成し、送信者の公開鍵で検証 |
| 証明書の署名検証 | 発行者の公開鍵で証明書の署名を検証 |
証明書の検証は署名の確認だけで終わりません。信頼する認証局への連鎖、有効期間、対象名なども確認します。暗号化と署名で「誰の鍵か」を取り違えないことが大切です。
利点と管理上の課題
共通鍵方式は、一般に大量データの暗号化・復号に向いています。一方、鍵を共有する範囲や更新・漏洩時の対応を考える必要があります。暗号化だけで送信者の確認や改ざん検知が常に保証されるわけではなく、認証付き暗号など、必要な保護を備えた方式を使います。
確認問題
TLS 1.3では、通信の共通鍵を必ず受信者のRSA公開鍵で暗号化して送るでしょうか?
解答・解説を見る
いいえ。TLS 1.3はRSA鍵配送を採用していません。鍵合意や事前共有鍵などから必要な鍵を導出します。共通鍵で実データを保護することと、鍵の用意の仕方は別です。
暗号方式と署名をnoteで整理
無料noteには共通鍵・公開鍵・ハイブリッド暗号、ディジタル署名、証明書の説明があります。各方式の役割と、誰の鍵を使うかを比較して復習できます。
ほかの教材は資格・目的別のnote教材ナビから選べます。
参考資料
元記事の参考資料:応用情報技術者試験ドットコム:午後問題。比較は本文の表で整理し直しています。

コメント