情報処理試験今日の一言(秘密鍵暗号方式)


n人で秘密鍵暗号方式を使って相互に通信する場合
異なる鍵の数は全部でいくつか?

  
    n(n−1)
  ―――――――
      2


これ正解になりますね。
暗記している方も多いことと思います。
私みたいに暗記苦手な人は、
理屈を理解しないといけません。



秘密鍵暗号方式の場合、暗号化する鍵と、複号する鍵が、
同じ鍵になりますね、
ですから暗号用と、複号用で一組、
要するに同じ鍵が2本必要と言うことです。
問題に「異なる」とあるので、2本あっても1種類ですよ。


鍵を事前に交換していないとこの集合には入れません。
ですから閉ざされた集合になります。
公開鍵は開かれた集合ですね。
9月19日は、このことを書いていたわけです。


さてここから公式の理解です。
   

    (n−1)


まずはここからいきます。
何度も書きますが秘密鍵は事前に相手と鍵交換でしたね。
自分と、自分で鍵交換は意味がありませんね。
やり取りするといっても、元々自分でデータ持っていますから。


ですから、全部で2人のとき鍵交換の相手は1人
            3人のとき鍵交換の相手は2人
            4人のとき鍵交換の相手は3人
もうわかりましたね、
全部の人数から鍵を交換する必要の無い自分を引くので
     (n−1)  ということです。



次は、
    n(n−1)  です。



なんでn倍するのでしょうn−1じゃないの?
これもわかりますね。
n人で鍵のやり取りをするからです。
私も含めて全員が他人と交換するために、
それぞれ、n−1個の鍵を持っています。
ですから全員の人数と同じ、n倍にするわけです。


いよいよ最後です。
        ÷2    です。


何で2で割るのでしょう、
答えすでに上に書いてますね。
問題は異なる鍵の数を聞いています。
あなたと私でそれぞれ1本ずつ鍵を持っています。
質問に異なる入ってなければ、÷必要ありません。
異なる入ると秘密鍵暗号方式は、
必ず同じ鍵が2つあなたと私で持っています。
だから2で割るのです。


これで公式暗記しなくても大丈夫ですね。
問題に異なる入って無いときは2で÷したらだめですよ。


図も作ってみました。

私のホームページって、
今のところブログ用の図が2つ載ってるだけです。


要するに全体の人数と同じ多角形を書いて、
引ける対角線の数が異なる鍵の数と一致します。
質問に異なる鍵の数の記述ない場合、
図で書く時は対角線の数を2倍すれば良い訳ですね。
試験の時、考え方忘れても、
時間に余裕があれば、線を引いても答えだせます。