基本情報でわかる 公開鍵暗号方式とディジタル署名 「絵に書いてみればわかる」
error
この記事は基本情報技術者試験の旧制度( 2022 年以前)の記事ですが、試験対策ではなく、技術用語を理解する上では問題ないと考えています。
試験対策としてお読みになる場合は、現在の試験制度では出題されない午後問題を一部題材にしているので、ご注意ください。
この連載では、基本情報技術者試験によく出題されるテクノロジー関連の用語を、午前問題と午後問題のセットを使って解説します。
午前問題で用語の意味や概念を知り、午後問題で技術の活用方法を知ってください。それによって、単なる丸暗記では得られない明確さで、用語を理解できるようになります。
今回のテーマは、「公開鍵と秘密鍵を作る人と使う人」です。
公開鍵暗号方式とは? 午前問題で確認
公開鍵暗号方式では、暗号化と復号に異なる鍵を使います。これらの鍵は、あらかじめ決められたルールに従ってペアで作られ、どちらか一方で暗号化すれば、もう一方で復号できるようになっています。
公開鍵暗号方式やディジタル署名に関する問題では、受信者と送信者の「どちらが鍵のペアを作るのか?」「どちらが何の鍵を使うのか?」に混乱してしまう受験者が多いようです。わかっているつもりでも、うっかり間違いをしてしまう受験者もいます。
混乱や、うっかり間違いを防ぐコツは、 「頭の中で考えるだけではなく絵に書いてみること」です。実際にやってみましょう。以下は、公開鍵暗号方式に関する午前問題です。
X さんは, Y さんにインターネットを使って電子メールを送ろうとしている。電子メールの内容を秘密にする必要があるので,公開鍵暗号方式を使って暗号化して送信したい。そのときに使用する鍵はどれか。
ア X さんの公開鍵
ウ Y さんの公開鍵 エ Y さんの秘密鍵
まず、送信者と受信者を絵に書いてみましょう。
「 X さんは、 Y さんにインターネットを使って電子メールを送ろうとしている」のですから、 X さんが送信者で、 Y さんが受信者です。 X さんが Y さんに、公開鍵暗号方式を使って暗号化した電子メールを送ります。
次に、 X さん、 Y さんが、行うことを、絵に書き加えてみましょう。
X さんは、公開鍵で電子メールを暗号化します。 Y さんは、自分しか知らない秘密鍵で電子メールを復号します。誰の公開鍵と秘密鍵なのかは、後で書き加えます。
さて、ここからがポイントです。
公開鍵暗号方式では、公開鍵と秘密鍵をペアで作ります。秘密鍵は、自分しか知らないものなので、公開鍵と秘密鍵のペアを作るのは、受信者の Y さんであり、それらは「 Y さんの公開鍵」と「 Y さんの秘密鍵」です。
これまでの絵の「公開鍵」と「秘密鍵」に、「 Y さんの」という言葉を書き加えてみましょう。
ここまで絵を書けば、混乱も、うっかり間違いもなく、問題を解けるでしょう。暗号化で使う鍵を答える問題なので、答えは選択肢ウの「 Y さんの公開鍵」です。
解答 ウ
ディジタル署名とは? 午前問題で確認
今度は、ディジタル署名に関する午前問題です。「ディジタル署名の作成」と「ディジタル署名の検証」に用いる鍵を答える、という内容です。
ディジタル署名に用いる鍵の種別に関する組合せのうち,適切なものはどれか。
ディジタル署名の作成に用いる鍵 | ディジタル署名の検証に用いる鍵 | |
---|---|---|
ア | 共通鍵 | 秘密鍵 |
イ | 公開鍵 | 秘密鍵 |
ウ | 秘密鍵 | 共通鍵 |
エ | 秘密鍵 | 公開鍵 |
この問題には、 X さんと Y さんが登場しませんが、署名の作成者を X さん、署名の検証者を Y さんとして、それぞれが行うことを絵にしてみましょう。
X さんは、自分しか知らない秘密鍵でデータのハッシュ値(データの内容から作られた固有の値)を暗号化します。これが、ディジタル署名の作成です。
Y さんは、公開鍵でディジタル署名を検証します。
この絵を書いた時点で、ディジタル署名の作成に用いる鍵が「秘密鍵」であり、検証に用いる鍵が「公開鍵」であることがわかるので、問題を解くことができます。問題の答えは、選択肢エです。
せっかくですから、誰の公開鍵と秘密鍵なのかも、はっきりさせておきましょう。
公開鍵暗号方式では、公開鍵と秘密鍵をペアで作ります。秘密鍵は、自分しか知らないものなので、公開鍵と秘密鍵のペアを作るのは、ディジタル署名の作成者の X さんであり、それらは「 X さんの公開鍵」と「 X さんの秘密鍵」です。
これまでの絵の「公開鍵」と「秘密鍵」に、「 X さんの」という言葉を書き加えてみましょう。
この絵から、ディジタル署名の作成に用いる鍵は「 X さんの秘密鍵」であり、検証に用いる鍵は「 X さんの公開鍵」であることが、混乱も、うっかり間違いもなく、わかります。
解答エ
公開鍵暗号方式とディジタル署名に関する午後問題
公開鍵暗号方式とディジタル署名は、 SSH( Secure Shell )で活用されています。
SSH は、クライアントからサーバにログインするプロトコルであり、公開鍵暗号方式で盗聴を防ぎ、ディジタル署名でなりすましを防いでいます。
以下は、 SSH に関する午後問題です。あれこれと SSH に関する難しそうな説明が示されていますが、設問のテーマになっているのは、
です。それさえわかれば、設問に答えられます。
SSH による通信に関する次の記述を読んで,設問 1 ~ 4 に答えよ。
SSH は遠隔ログインのための通信プロトコル及びソフトウェアであり、通信データの盗聴対策や,通信相手のなりすましを防ぐ仕組みを備えている。SSH では,サーバにログインしてデータをやり取りする通信(以下,ログインセッションという)に先立って,安全な通信経路の確立と利用者認証を行う必要がある。安全な通信経路の確立,利用者認証及びログインセッションを合わせて SSH セッションと呼ぶ。その流れを,図 1 に示す。
〔安全な通信経路の確立の概要〕
安全な通信経路の確立は,次のようにして行う。
- クライアントがサーバにアクセスする。
- サーバとクライアントが, SSH セッションで使用する暗号アルゴリズムについて合意する。
- サーバとクライアントが,通信データの暗号化に使用するセッション鍵と,他の SSH セッションと区別するためのセッション識別子について合意する。
- (1)クライアントがサーバ認証を行う。サーバ認証では,クライアントがあらかじめ入手して正当性を確認しておいた。 aを用い,サーバによるセッション識別子へのディジタル署名が正しいかどうかを検証する。
- 合意した暗号アルゴリズムとセッション鍵を用いて,(2)共通鍵暗号方式による通信データの暗号化を開始する。これ以降の通信は,全て暗号化される。
〔利用者認証の概要〕
クライアントからサーバへのログインでは,サーバは利用者認証を行う。SSH の利用者認証の方式には,ディジタル署名を用いる “公開鍵認証” とパスワードを用いる “パスワード認証” がある。
”公開鍵認証” では,クライアントの公開鍵を事前にサーバに登録しておき,この登録されている公開鍵に対応する秘密鍵をクライアントがもっていることをサーバが確認する。この確認では,クライアントがセッション識別子などに対するディジタル署名をサーバに送信し,サーバがbを用いてディジタル署名を検証する。
”パスワード認証”では,クライアントが利用者 ID とパスワードを送信し,サーバは受け取ったパスワードが当該利用者のパスワードと一致していることを検証する。
なお,(3) “パスワード認証” は, “公開鍵認証” に比べて,安全性が低いと考えられている。
設問 1 本文中のに入れる適切な答えを,解答群の中から選べ。
a, b に関する解答群
- ア
- 安全な通信経路の確立時に合意したセッション鍵
- イ
- クライアントの公開鍵
- ウ
- クライアントの秘密鍵
- エ
- サーバの公開鍵
- オ
- サーバの秘密鍵
まず、空欄 a です。
ここでは、クライアントがサーバを認証するのですから、ディジタル署名の作成者はサーバであり、認証者はクライアントです。これを、絵に書くと、以下のようになります。
ディジタル署名の作成者であるサーバが鍵のペアを作るので、それらは、サーバの公開鍵とサーバの秘密鍵です。空欄 a は、クライアントが検証に用いる鍵を答えるものなので、答えは「サーバの公開鍵(選択肢エ)」です。
次に、空欄 b です。
今度は、空欄 a とは逆に、サーバがクライアントを認証するのですから、ディジタル署名の作成者はクライアントであり、認証者はサーバです。これを、絵に書くと、以下のようになります。
ディジタル署名の作成者であるクライアントが鍵のペアを作るので、それらは、クライアントの公開鍵とクライアントの秘密鍵です。空欄bは、サーバが検証に用いる鍵を答えるものなので、答えは「クライアントの公開鍵(選択肢イ)」です。
解答設問 1 a ― エ, b ― イ
いかがでしたか?
「頭の中で考えるだけではなく絵に書いてみること」で、公開鍵暗号方式とディジタル署名で、公開鍵と秘密鍵を作る人と使う人を、すんなり区別できるようになったでしょう。
この連載では、今後も、多くの受験者が苦手としている用語を取り上げて行きます。それでは、またお会いしましょう!
label 関連タグ免除試験を受けた 74.9% の方が、 科目A免除資格を得ています。
基本情報でわかる IPアドレス と サブネットマスク
update基本情報でわかる ホワイトボックステスト
update基本情報でわかる トランザクション
update基本情報でわかる コンパイラ 最適化
update基本情報でわかる CRC 「具体例を見て体験すれば仕組みがわかる」
update基本情報でわかる 浮動小数点 「3つの情報で1つの数を表す仕組みを知れば、浮動小数点数がわかる」
update基本情報でわかる MIME タイプ 「電子メールの仕組みを知れば役割がわかる」
update基本情報でわかる 7セグメントLED 「 1 と 0 を書き込めば点灯するパターンがわかる」
update基本情報でわかる 論理演算 「真理値表を書けば、半加算器と全加算器の仕組みがわかる」
update基本情報でわかる SMTP / POP3 「ITエンジニア視点で見れば役割がわかる」
update『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数