見出し画像

【Iパス7問を図解で】公開鍵の問題で混乱する理由とシンプルな言葉

私のIT専門学校でも「公開鍵・ディジタル署名が分からない」って学生さんは多いです。

ITパスポートでは「捨て問」にしても、なんとかなりますが、基本情報技術者試験では間違いなく合格しません。ITパスポートよりも、計算問題がどーんと増え、デジタル署名/デジタル証明書の問題も増えるからです。

「暗記系学生さん」は科目A合格すらできてません。

このNoteでは、まず公開鍵の混乱を紐解いて、デジタル署名への準備をしていきます。

公開鍵は「公開して良い鍵」と覚えるだけで、かなりの問題が解けるようになりますよ。過去12回分の問題演習と併せて、少しでも理解して得点できるようなってくれたら、嬉しいです。

\全てのNoteへのリンク集/




鍵の種類で混乱しちゃう

「公開鍵」で混乱する理由は、鍵の名前と使い方が出題される度に変わるからです。毎度違う問題に右に左へと揺さぶれちゃいますよね。

鍵の名前がたくさんあって混乱しちゃってないですか?

  • 暗号鍵

  • 復号鍵

  • 共通鍵

  • 公開鍵

  • 秘密鍵

公開鍵方式の使い方も色々です。

  • 暗号化:送るデータを秘密にする

  • デジタル署名:なりすまし防止・改ざん検知

更にハイブリッド暗号では、公開鍵・秘密鍵・共通鍵が出てきて、もうパンクしちゃいます。

まずは、公開鍵と秘密鍵を分かりやすい言葉で理解しましょう。


公開鍵・秘密鍵が楽になる言葉

公開鍵・秘密鍵は、以下の言葉で解釈すると楽になれます。

  • 公開鍵:公開して良い鍵

  • 秘密鍵:絶対に秘密にする鍵

「たったこれだけ?」と思うかもですが、ほんとです。

なぜなら、あなたは理解の入口に来れたから。

  • 他人に渡せるのは公開鍵

  • 自分で持っておくのは秘密鍵

次は、上の言葉から「公開鍵の2つの使い方」を理解していきましょう。


公開鍵の「2つの使い方」

公開鍵の使い方は2つです。なぜなら、公開鍵と秘密鍵の「鍵ペア」の作り方が2通りだから。

  • 送信者が鍵ペアを作る場合(デジタル署名での使う時)

  • 受信者が鍵ペアを作る場合(通信内容を秘密にしたい時)

問題文でよく見る「受信者の公開鍵」とは「受信者が作った鍵ペアの公開鍵の方」って意味です。

ここで、あり得ない選択肢も分かるようになったんですよ。

  • 受信者が「送信者の秘密鍵」を使う→×

  • 送信者が「受信者の秘密鍵」を使う→×

「秘密鍵を送っとるやないかーい」と気づきましたか?

よって、あり得る選択肢は、

  • 受信者が「送信者の公開鍵」を使う

  • 送信者が「受信者の公開鍵」を使う

まずはこの図から覚えておきましょう。受信者が「送信者の公開鍵」を使うパターンで、通信内容を秘密にしたい時の使い方です。

では、送信者が「受信者の公開鍵」を使うパターンは?って話ですよね。それが「デジタル署名」や「電子証明書」なんです。

とはいえ、

まずは暗号化から。1つずつ解けるようになっていきましょう。


問題演習 | 内容を秘密にしたい時

AさんからBさんへ送るメールを、公開鍵暗号方式で暗号化して送りたい。送ったメールを復号するために必要な鍵はどれか。
ア:Aさんの公開鍵
イ:Aさんの秘密鍵
ウ:Bさんの公開鍵
エ:Bさんの秘密鍵

「ITパスポート試験 平成31年度問75」より改変

正答はエ。

「Bさんだけに伝えたい」ので、Bさんだけが復号できれば良いですね。よってBさんが、世界でただ一人だけ復号鍵を秘密鍵として持てば良いです。

秘密鍵は他人には送らないので、Bさんが鍵ペア(秘密鍵・公開鍵)を作ります。

「Bさんが作った鍵ペアのうち秘密鍵」とは、選択肢の「Bさんの秘密鍵」です。よって正答はエ。

A社とB社が、それぞれ公開鍵と秘密鍵を持っていて、お互いに暗号化した通信をしたい。A社からB社に送信する時に使う鍵ペアはどれか。
ア:A社の公開鍵・A社の公開鍵
イ:A社の公開鍵・B社の秘密鍵
ウ:B社の公開鍵・A社の公開鍵
エ:B社の公開鍵・B社の秘密鍵

「ITパスポート試験 令和4年度問60」より改変

正答はエ。今やった問題と同じです。

目的は「暗号化して秘密にしたい」なので、受信者が鍵ペアを作るパターンですね。

ここで受信者はB社。よって使われる鍵は「B社の秘密鍵」と「B社の公開鍵」。したがって、A社が使うのは「B社の公開鍵」です。


問題演習 | 鍵の個数

公開鍵暗号方式では、4人が相互に通信内容を暗号化したい場合は、全部で8個の鍵が必要である。このうち、非公開にする鍵は何個か。
ア:1 イ:2 ウ:4 エ:6

「ITパスポート試験 令和2年度問97」より改変

なぜ「8個の鍵」になるか、から始めますね。

暗号通信では「受信者が鍵ペア」を作ります。

例えば、Aさんが受信者の場合は以下の通り。1つの鍵ペア(1つの公開鍵・1つの秘密鍵)でできますね。

同様にBさんが受信者、Cさんが受信者、Dさんが~と考えていきます。

すると、Aさんが作った公開鍵と秘密鍵、Bさんが作った公開鍵と秘密鍵、、、と計8個になります。2鍵×4名ですね。

よって問われている「非公開にしたい鍵」、つまり秘密鍵の個数は4個。Aさんが作った秘密鍵、Bさんが作った秘密鍵、Cさんが~、Dさんが~です。

もし人数が「10人」になっても考え方は同じです。分からなくなったら、3人の時・4人の時を考えて法則を出せばOKですよ。

(計算問題の攻略法も準備してますので、もうちょっと待ってくださいね)


問題演習 | 公開鍵暗号方式の特徴

IoTデバイス群は同一の鍵を使って通信の暗号化を行い、IoTサーバーではIoTデバイス群が使っている鍵とは異なる鍵で復号する。この暗号技術はどれか。
ア:共通鍵暗号方式
イ:公開鍵暗号方式
ウ:ハッシュ関数
エ:ブロックチェーン

「ITパスポート試験 令和3年度問76」より改変

正答はイ。「異なる鍵」から公開鍵方式だと分かります。

多数のIoTデバイスと1つのIoTサーバーの通信の話でした。他の選択肢の用語も、知っておきたいですが、ひとまずはOKです。


公開鍵暗号方式にはなく、共通鍵暗号方式だけがもつ特徴はどれか。
ア:暗号化に使う鍵を第三者に知られても、安全に通信できる
イ:鍵が一つあれば、複数相手でも個別に安全な通信ができる
ウ:電子証明書によって、鍵の持ち主を確認できる
エ:復号には、暗号鍵と同じ鍵を使う

「ITパスポート試験 平成29年度秋 問66」より改変

正答はエ。共通鍵暗号方式では、暗号化と復号をする鍵は同じです。家の鍵と同じですね。

ア~ウは、公開鍵暗号方式の特徴です。

アについて、共通鍵方式だったら、暗号鍵と復号鍵が同じなので、第三者に知られたらダメです。家の鍵と同じ。

公開鍵方式なら、暗号鍵は公開鍵なので大丈夫です。秘密鍵がないと復号できませんからね。

イは、公開鍵暗号方式の特徴です。

ここで「鍵は一つ」に「ん?」と思うでしょうが、1つの鍵ペアと云う意味で問題では使われています。公開鍵の問題独特の言い回しです。

「鍵は一つ」で「公開鍵方式だ!」と飛びつく前に、他の選択肢を検討した上で選ぶと安全です。ややこしいですよね。

ウの「電子証明書」は、公開鍵暗号方式を利用します。なお、暗号化とは違う使い方で、送信者が鍵ペアを作るパターン。

次回のデジタル署名、さらに電子証明書まで進まねば、完全には理解できません。今のところ「デジタル署名」「電子証明書」と来たら「公開鍵」と連結する程度でOKです。


公開鍵暗号方式にはなく、共通鍵暗号方式だけがもつ特徴はどれか。
ア:暗号化と復号で異なる鍵を使う
イ:暗号化や復号を高速でできる
ウ:鍵をより安全に配布できる
エ:通信相手が多数でも鍵の管理が容易である

「ITパスポート試験 平成28年度秋問97」より改変

正答はイ。

家の玄関ドアを閉める鍵と開ける鍵が同じ場合(共通鍵)と違う場合(公開鍵)だったら、共通鍵の方がシンプルですよね。

プログラムでも同じく、共通鍵の方が処理がシンプルです。よって速いです。

アについて、「異なる鍵」を使うのは公開鍵方式でしたね。

ウについて、共通鍵では安全に配布できないのが問題です。

公開鍵ならもともと「公開して良い鍵」なので盗まれても問題ありませんし、公開鍵方式を応用した「ハイブリッド暗号」では共通鍵を安全に送ります。(最後に1問やりますね)

エについて、鍵ペアを1つ作って、公開鍵を多数の相手に使ってもらって大丈夫。秘密鍵は自分だけが使います。


問題演習 | ハイブリッド暗号方式

ハイブリッド暗号方式を用いる時、メッセージの暗号化に使う「鍵a」と、その鍵の暗号化に使う「鍵b」の組み合わせはどれか。

「ITパスポート試験 令和5年度問86」より改変
「ITパスポート試験 令和5年度問86」より改変

「鍵a」と「鍵b」の組み合わせはどれか。
ア:共通 公開
イ:共通 秘密
ウ:公開 共通
エ:公開 秘密

「ITパスポート試験 令和5年度問86」より改変

正答はア。

まずハイブリッド暗号方式では、共通鍵方式と公開鍵方式の弱点をお互いの利点で補います。

  • 共通鍵の弱点:鍵を安全に相手に渡すのが困難だけど、高速

  • 公開鍵の弱点:公開鍵は送って問題ないけど、低速

よって、公開鍵方式で共通鍵を安全に送り、暗号通信を高速な共通鍵で行うのがハイブリッド暗号方式。

文章でも書いておきますね。

  1. 受信者が鍵ペアを作り、共通鍵輸送に使っていきます

  2. 受信者が復号鍵を秘密鍵として持ち、暗号鍵を公開鍵として送信者に渡します。

  3. 送信者が、通信に使う共通鍵を作ります。

  4. 送信者は、共通鍵を、受け取った公開鍵で暗号化します。


まとめ | 秘密鍵は絶対送らない

ちょっとでも公開鍵・秘密鍵の問題解けそうでしょうか。

  • 公開鍵は「公開して良い鍵」、つまり送ってOK

  • 秘密鍵は「秘密にする鍵」、つまり送ったらダメ!

あとは、

  • 鍵ペアを受信者が作ったら、内容を秘密にする使い方

  • 鍵ペアを送信者が作ったら、デジタル署名などの使い方

と、鍵をどちらが作るかで、使い方・目的が違ってきます。


次は >>公開鍵デジタル署名<< をどーぞ!

\全てのNoteへのリンク集/

p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。

でわでわ(・ω・▼)ノシ


この記事が参加している募集

スキしてみて

学習方法・問題特集のNoteは全て無料提供を続けます▼ もしご覧になったNoteが有益だったり、私の志に共感されたりしましたら、サポート頂けますと励みになります▼ もちろんコメントでも結構です(・ω・▼)ノシ