暗号化通信で使用される共通鍵暗号方式に関する記述のうち, 適切なものはどれか。
平成23年度 特別試験 ITパスポート試験 問88
この問題の解説と、これまでの解答の記録です。
問 88
不正解ア
これは共通鍵暗号方式ではなく公開鍵暗号方式の説明である。公開鍵暗号方式では暗号化鍵 (公開鍵) と復号鍵 (秘密鍵) が別物で、公開鍵から秘密鍵を現実的な時間で求められないため、暗号化用の鍵は誰にでも公開してよい。これに対し共通鍵暗号方式は暗号化鍵と復号鍵が同一なので、暗号化に用いる鍵を第三者に公開すれば、その第三者は同じ鍵をそのまま使って暗号文を復号できてしまう。共通鍵は通信の当事者だけが持つ秘密でなければならず、記述は誤りである。
- イ
正解 正解はイ。共通鍵暗号方式 (共有鍵暗号方式、秘密鍵暗号方式ともいう) は、送信側の暗号化と受信側の復号に同じ一つの鍵を使う方式で、AES や DES などが代表例である。その内部処理は、平文をブロックに区切って排他的論理和 (XOR)、換字 (置換)、転置 (並べ替え) といった軽い演算を何段も繰り返すという構成になっており、計算機にとって非常に高速に実行できる。一方の公開鍵暗号方式 (RSA など) は、素因数分解や離散対数問題の困難性を安全性の根拠にしているため、数百ビットから数千ビットという巨大な整数のべき乗剰余演算を必要とし、同じデータ量を処理するのに共通鍵暗号方式より桁違いに大きな計算量と時間が掛かる。したがって「公開鍵暗号方式よりも暗号化処理と復号処理に掛かる計算量は少ない」という記述は共通鍵暗号方式の性質として適切である。この性質の差は実務にも直結しており、SSL/TLS などの暗号化通信では、通信の開始時に公開鍵暗号方式を使って共通鍵 (セッション鍵) を安全に相手へ渡し、その後の大量の本文データのやり取りは高速な共通鍵暗号方式で行うという、両者の長所を組み合わせたハイブリッド方式が採用されている。共通鍵暗号方式の弱点は速度ではなく、鍵をどうやって相手に安全に届けるかという鍵配送の問題と、通信相手の数だけ鍵が増える鍵管理の問題にある点を併せて押さえておきたい。
不正解ウ
暗号化が守るのは機密性 (第三者に内容を読まれないこと) であって、通信路上の誤りや改ざんを直して元データを復元する機能はもたない。誤りの検出はパリティチェック、訂正はハミング符号などの誤り訂正符号の役割であり、また改ざんについては訂正ではなく検知が基本で、ハッシュ値の照合、メッセージ認証コード (MAC)、ディジタル署名によって完全性を確認する。共通鍵暗号方式で改ざんされた暗号文を復号すると、意味をなさないデータになるだけで元には戻らないため、記述は誤りである。
不正解エ
共通鍵暗号方式では、鍵を共有している者どうしは互いの暗号文を復号できてしまう。全員に同じ鍵を配ってしまうと、相手 A に送った内容を相手 B も復号できることになり、相手ごとに内容を秘密にするという目的が達成できない。したがって通信相手ごとに別々の共通鍵を用意する必要があり、n 人が相互に秘密通信を行う場合に必要な鍵は n(n-1)/2 個へと相手の増加以上に膨らむ。この鍵管理・鍵配送の負担の大きさこそ共通鍵暗号方式の代表的な弱点であり、鍵は一つで済むという記述は誤りである。
- 共通鍵暗号方式と公開鍵暗号方式の性能差 — 共通鍵暗号方式 (AES、DES など) は暗号化鍵と復号鍵が同一で、XOR・換字・転置の繰返しによる軽い処理のため高速。公開鍵暗号方式 (RSA など) は巨大整数のべき乗剰余演算を伴い低速。この差から、TLS などでは鍵の受渡しに公開鍵暗号方式、本文の暗号化に共通鍵暗号方式を使うハイブリッド方式が採られる。
- 共通鍵暗号方式の弱点は鍵配送と鍵管理 — 鍵は当事者だけの秘密でなければならず公開できない。また相手ごとに別の鍵が要るため、n 人が相互通信するときに必要な鍵は n(n-1)/2 個に増える。なお暗号化は機密性を守る技術で、完全性 (改ざん検知) はハッシュ・MAC・ディジタル署名、誤り訂正は誤り訂正符号が担う別の技術である。