情報セキュリティスペシャリスト試験対策として、「共通鍵方式」「公開鍵方式」の鍵数の計算方法についてまとめてみました。
午前試験の定番問題で、午前1試験・午前2試験いずれでも出題されます。
暗号化の方式
情報処理技術者試験では暗号化の方式として下記の3種類が問われます。
- 共通鍵暗号方式
- 公開鍵暗号方式
- 一方向ハッシュ関数
鍵数の計算問題では「共通鍵方式」「公開鍵方式」のみが出題されます。
「一方向ハッシュ関数」は出題されません。
そのため、「共通鍵方式」「公開鍵方式」の計算方法を理解すればこの設問は突破できます。
共通鍵暗号方式の鍵数計算方法
公式:n(n-1)/2
共通鍵方式とは、暗号化と復号化に同じ鍵データを使用する方式です。
通信を行うもの同士で同じ鍵データを共有するため、通信の相手方の数だけ鍵データを用意する必要があります。
イラストでは6人それぞれが1対1で通信を行っています。
そのため、必要な鍵データの数は 6(6-1)/2 = 15 となります。
注:送信側と受信側で鍵データを共有するため「人数-1」に「1/2」を掛けます
理解のポイントは以下の2点です。
- 鍵データは1種類のみ
- 同じ共通鍵を複数人使わせてはいけない
- 必要な鍵データの数が多い
共通鍵を複数人で共有した場合、他人宛の通信も復号できてしまいます。
そのため、共通鍵は必ず相手方の数だけ用意する必要があり、鍵データの数は通信に参加する人数とともに階乗で増大します。
公開鍵暗号方式の鍵数計算方法
公式:2n = 100*2
公開鍵方式とは、暗号化と復号化に異なる鍵データを使用する方式です。
暗号化に使用する鍵データを「公開鍵」、復号化に使用する鍵を「秘密鍵」と呼びます。
受信側が送信側に「公開鍵」を提供し、送信側はその「公開鍵」で暗号化したデータを送信します。受信側は自分だけが持つ「秘密鍵」を使用し暗号化されたデータを復号します。
イラストでは6人それぞれが1対1で通信を行っています。
そのため、必要な鍵データの数は 2*6 = 12 となります。
理解のポイントは以下の3点です。
- 鍵データが2種類存在する
- 公開鍵は複数人に同じデータを使用させても問題はない
- 必要な鍵データの数が少ない
公開鍵は暗号化することしかできません。そのため、複数の人間に同じ公開鍵を渡しても問題はありません。
必要な鍵データは、受信側の持つ「秘密鍵」、不特定多数の送信者が持つ「公開鍵」の2種類のみです。送信側が100人でも10000人でも鍵データ数は変わらず2種類のままです。
つまり、共通鍵方式と比べて必要な鍵データの数が少なくなります。
出題例
設問
共通鍵暗号方式で,100人の送受信者のそれぞれが,相互に暗号化通信を行うときに必要な共通鍵の総数はいくつか。
- ア:200
- イ:4,950
- ウ:9,900
- エ:10,000
解法
- 公式から鍵数を計算します。
- 共通鍵方式の場合:n(n-1)/2 = 100(100-1)/2 = 4,950
- 公開鍵方式の場合:2n = 100*2 = 200
- 特別な解法はありません。知っていれば答えられます。
- ノータイムで答えられるようになるまで練習しましょう。
解答
イ
備考
ごく簡単な問題ではありますが、油断すると忘れます(実体験)。
そして、理論から計算式を思い出そうとすると時間のロスになります。
まずは公式を暗記しましょう。