【学問のすすめ】中世ヨーロッパ写字生のように黙って静かに手を動かすブログ

これまで習ったことや学んだことを記事にまとめています。ITネタが多いです。

【SC試験対策】共通鍵方式/公開鍵方式の鍵数を計算する方法をまとめてみた

情報セキュリティスペシャリスト試験対策として、「共通鍵方式」「公開鍵方式」の鍵数の計算方法についてまとめてみました
午前試験の定番問題で、午前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
  • 特別な解法はありません。知っていれば答えられます
  • ノータイムで答えられるようになるまで練習しましょう。

 

解答

 

備考

ごく簡単な問題ではありますが、油断すると忘れます(実体験)
そして、理論から計算式を思い出そうとすると時間のロスになります。
まずは公式を暗記しましょう。