公開鍵を用いた暗号化通信と通信相手の認証。(平成16年春ソフトウェア開発技術者午後1問1)

解答です。

設問1
a:復号 b:元の乱数電文 c:K3 d:K4

設問2
e:K4 f:K3

設問3
g:全てのクライアントやサーバ h:秘密かぎ i:公開かぎ j:N+1 k:2

解説してみた。

設問1
 認証側は、ランダムな乱数電文を生成して、相手(認証される側)に送り、乱数電文を受け取った認証される側は、持っている鍵(パスワード)で乱数電文を暗号化して認証側に送り返します。

 送り返された暗号化済の乱数電文を受け取った認証側は、認証される側と同じ鍵(保管してあるパスワード)で復号してから相手に送った元の乱数電文と照合します。ここで、復号した乱数電文と元の乱数電文が一致していれば、認証される側ががなりすましでないことを確認できます。

 よって、aには「復号」、bには「元の乱数電文」が入ります。

 次はクライアントによるサーバ認証の手順です。クライアント側は、サーバから送られた暗号化された乱数電文の正当性を確認することで、サーバを認証します。

 クライアントが生成した乱数電文をサーバに送り、サーバが持っている秘密鍵で乱数電文を暗号化して送り返し、クライアントがサーバの秘密鍵とペアになる公開鍵で復号してから、元の乱数電文と一致していれば、サーバがなりすましでないことを確認できます。

 よって、cには「K3」(サーバがもつ秘密かぎ)、dには「K4」(K3とペアの公開かぎ)が入ります。

設問2
 クライアントとサーバー間で、公開かぎを使って共通かぎを安全に受け渡す手順です。今回はクライアント認証でないため、クライアントがサーバーの公開かぎを使って共通かぎを暗号化してから送信し、暗号化データを受け取ったサーバが、サーバの秘密鍵で復号して共通かぎを取り出します。その後は共通かぎを使ってクライアントとサーバ間で通信が行われることになります。

 よって、eには「K4」(K3とペアの公開かぎ)、fには「K3」(サーバがもつ秘密かぎ)が入ります。

設問3
 認証局が発行した公開鍵証明書(認証局の秘密かぎで暗号化された署名が付いている)を検証するためには、認証局の公開かぎを通信に参加する全てのクライアントとサーバに設定する必要があります。よって、gには「全てのクライアントとサーバ」が入ります。IPA公式解答では「全クライアント及びサーバ」となってます。

 クライアントがM台、サーバがN台として、クライアントを1台追加した場合、追加したクライアントには自身の秘密かぎと通信相手サーバ全部の公開かぎを設定、M台のサーバにはそれぞれ追加したクライアントの公開かぎを設定する必要があります。よって、設定が必要な台数はN+1台となり、gには「N+1」が入ります。

 認証局を使用する場合は、追加するクライアントに自身の秘密かぎと認証局の公開かぎを設定、認証局に追加するクライアント用の公開鍵証明書を発行できるように設定します。よって、設定が必要な台数は2台となり、hには「2」が入ります。

IPAの公式解答
平成16年春ソフトウェア開発技術者午後1問1 IPA公式解答(PDFファイル)

 今回は、空欄に適切な字句を記述して穴埋めしていく形式の割合が多く、あやふやに覚えている状態では解答できない。設問3のクライアントを追加した場合に鍵の設定が必要になる台数を求めることが、なかなか難しかった。

 公開かぎによる暗号化方式は、暗号化して相手に電文を送るだけでなく、鍵ペアの関係を利用して相手を認証(なりすましでないことを証明)することもできます。十分に理解できるようになるまでは、通常の暗号化通信と、相手を認証する場合とで、公開鍵と秘密鍵の関係がごっちゃになりがち。

にほんブログ村 ゲームブログへ

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする