情報処理技術者試験のいくつかの試験区分の午前試験では、暗号鍵の数に関する出題がよくありますので、ちょっと復習してみたいと思います。なお、試験問題の全文については、情報処理技術者試験センターのWebサイト http://www.jitec.jp/ にて公開されています。
まずは、平成19年度情報処理技術者試験テクニカルエンジニア(情報セキュリティ)午前試験問題の問37です。
問37 公開鍵暗号方式によって、n人が相互に暗号を使って通信する場合、異なる鍵は全体で幾つ必要になるか。
ア n + 1
イ 2n
ウ n(n - 1) 2
エ log2n
答えは、イ。
公開鍵暗号方式では、送信者と受信者とでは異なる鍵を使用します。暗号化鍵と復号鍵からなります。そして、送信者は受信者の公開鍵(暗号化鍵)で暗号化し、受信者は秘密鍵(復号鍵)で復号します。
公開鍵(暗号化鍵)は、送信者が異なる場合でも同一のものになりますので、鍵は常に、それぞれの受信者ごとにペア分しか存在しないことになります。
つぎに、平成18年度情報処理技術者試験AN・PM・AE午前共通試験問題の問31です。
問31 100人の送受信者が共通鍵暗号方式で、それぞれ秘密に通信を行うときに必要な共通鍵の総数は幾つか。
ア 200
イ 4,950
ウ 9,900
エ 10,000
答えは、イ。
共通鍵暗号方式では、送信者と受信者とで同じ鍵を使用します。そして、相手が複数になると、相手ごとに異なる鍵を使用することになります。これらのことから、n人が共通鍵暗号方式で通信する場合の鍵の総数を求める式は、次のようになります。
n(n - 1) |
2 |
ちなみに、公開鍵暗号方式と共通鍵暗号方式を読み違えてしまうケアレスミスもありえますので、ご注意を。