問題 21★★☆

10人のメンバーが、共通鍵暗号方式を使って互いに1対1で秘密の通信を行う。 どの2人の組合せでも他のメンバーに内容を読まれないようにするとき、 必要な共通鍵の数は全部で幾つか。

正解:イ

各選択肢の解説

  1. ア20個

    誤り。これは公開鍵暗号方式を使った場合の鍵の数です。一人が公開鍵と秘密鍵を 1組持てばよいので、10人×2個=20個で済みます。共通鍵暗号方式は「人ごと」 ではなく「2人の組合せごと」に鍵が要る点が違います。

  2. イ45個

    正解。共通鍵は2人の組合せごとに1個必要です。10人から2人を選ぶ組合せは 10×9÷2=45通りなので、鍵も45個になります。

  3. ウ90個

    誤り。10×9=90は、AさんとBさんの組とBさんとAさんの組を別々に数えた値です。 共通鍵は2人で同じ1個を共有するので、同じ組を2回数えないよう2で割る必要が あります。

  4. エ100個

    誤り。10×10=100は、自分自身との組まで含めて数えた値です。自分と通信する ための鍵は不要で、さらに同じ組を2回数えています。人数の2乗ではなく、 2人の組合せの数を数えます。

理解を深めるために

鍵は「人数」ではなく「ペアの数」だけ要る

共通鍵暗号方式は、暗号化と復号に同じ鍵を使います。AさんとBさんが使う鍵を Cさんが持っていると、Cさんにも中身が読めてしまいます。だから秘密を守るには、 通信する2人の組ごとに別の鍵を用意しなければなりません。

10人なら、1人目は残り9人と、2人目は残り8人と……と数えていくと 9+8+…+1=45通り。式にすると次のとおりです。

  • 共通鍵暗号方式:n人で n(n−1)÷2 個(10人で45個、100人なら4,950個)
  • 公開鍵暗号方式:n人で 2n 個(1人が公開鍵と秘密鍵を1組ずつ。10人で20個)

人数が増えるほど共通鍵の数は急激に増え、その一つ一つを相手へ安全に渡す 手間(鍵配送)もかかります。これが共通鍵暗号方式の弱点で、公開鍵暗号方式が 使われる理由の一つです。一方で共通鍵暗号方式は処理が速いため、実際の通信では 共通鍵を届ける部分だけに公開鍵暗号方式を使う組合せがよく採られます。

数え方の違い

数え方 値(10人) 何を数えているか
n(n−1)÷2 45個 2人の組合せの数(共通鍵暗号方式)
2n 20個 一人1組の鍵の数(公開鍵暗号方式)
n(n−1) 90個 同じ組を向きを変えて2回数えた数
n×n 100個 自分自身との組まで含めた数

試験では人数を変えて出題されます。「同じ鍵を2人で共有する」ことを思い出せば、 2で割り忘れる誤りを防げます。

前の問題へ次の問題へ