【Iパス7問を図解で】公開鍵の問題で混乱する理由とシンプルな言葉
私のIT専門学校でも「公開鍵・ディジタル署名が分からない」って学生さんは多いです。
ITパスポートでは「捨て問」にしても、なんとかなりますが、基本情報技術者試験では間違いなく合格しません。ITパスポートよりも、計算問題がどーんと増え、デジタル署名/デジタル証明書の問題も増えるからです。
「暗記系学生さん」は科目A合格すらできてません。
このNoteでは、まず公開鍵の混乱を紐解いて、デジタル署名への準備をしていきます。
公開鍵は「公開して良い鍵」と覚えるだけで、かなりの問題が解けるようになりますよ。過去12回分の問題演習と併せて、少しでも理解して得点できるようなってくれたら、嬉しいです。
\全てのNoteへのリンク集/
鍵の種類で混乱しちゃう
「公開鍵」で混乱する理由は、鍵の名前と使い方が出題される度に変わるからです。毎度違う問題に右に左へと揺さぶれちゃいますよね。
鍵の名前がたくさんあって混乱しちゃってないですか?
暗号鍵
復号鍵
共通鍵
公開鍵
秘密鍵
公開鍵方式の使い方も色々です。
暗号化:送るデータを秘密にする
デジタル署名:なりすまし防止・改ざん検知
更にハイブリッド暗号では、公開鍵・秘密鍵・共通鍵が出てきて、もうパンクしちゃいます。
まずは、公開鍵と秘密鍵を分かりやすい言葉で理解しましょう。
公開鍵・秘密鍵が楽になる言葉
公開鍵・秘密鍵は、以下の言葉で解釈すると楽になれます。
公開鍵:公開して良い鍵
秘密鍵:絶対に秘密にする鍵
「たったこれだけ?」と思うかもですが、ほんとです。
なぜなら、あなたは理解の入口に来れたから。
他人に渡せるのは公開鍵
自分で持っておくのは秘密鍵
次は、上の言葉から「公開鍵の2つの使い方」を理解していきましょう。
公開鍵の「2つの使い方」
公開鍵の使い方は2つです。なぜなら、公開鍵と秘密鍵の「鍵ペア」の作り方が2通りだから。
送信者が鍵ペアを作る場合(デジタル署名での使う時)
受信者が鍵ペアを作る場合(通信内容を秘密にしたい時)
問題文でよく見る「受信者の公開鍵」とは「受信者が作った鍵ペアの公開鍵の方」って意味です。
ここで、あり得ない選択肢も分かるようになったんですよ。
受信者が「送信者の秘密鍵」を使う→×
送信者が「受信者の秘密鍵」を使う→×
「秘密鍵を送っとるやないかーい」と気づきましたか?
よって、あり得る選択肢は、
受信者が「送信者の公開鍵」を使う
送信者が「受信者の公開鍵」を使う
まずはこの図から覚えておきましょう。受信者が「送信者の公開鍵」を使うパターンで、通信内容を秘密にしたい時の使い方です。
では、送信者が「受信者の公開鍵」を使うパターンは?って話ですよね。それが「デジタル署名」や「電子証明書」なんです。
とはいえ、
まずは暗号化から。1つずつ解けるようになっていきましょう。
問題演習 | 内容を秘密にしたい時
正答はエ。
「Bさんだけに伝えたい」ので、Bさんだけが復号できれば良いですね。よってBさんが、世界でただ一人だけ復号鍵を秘密鍵として持てば良いです。
秘密鍵は他人には送らないので、Bさんが鍵ペア(秘密鍵・公開鍵)を作ります。
「Bさんが作った鍵ペアのうち秘密鍵」とは、選択肢の「Bさんの秘密鍵」です。よって正答はエ。
正答はエ。今やった問題と同じです。
目的は「暗号化して秘密にしたい」なので、受信者が鍵ペアを作るパターンですね。
ここで受信者はB社。よって使われる鍵は「B社の秘密鍵」と「B社の公開鍵」。したがって、A社が使うのは「B社の公開鍵」です。
問題演習 | 鍵の個数
なぜ「8個の鍵」になるか、から始めますね。
暗号通信では「受信者が鍵ペア」を作ります。
例えば、Aさんが受信者の場合は以下の通り。1つの鍵ペア(1つの公開鍵・1つの秘密鍵)でできますね。
同様にBさんが受信者、Cさんが受信者、Dさんが~と考えていきます。
すると、Aさんが作った公開鍵と秘密鍵、Bさんが作った公開鍵と秘密鍵、、、と計8個になります。2鍵×4名ですね。
よって問われている「非公開にしたい鍵」、つまり秘密鍵の個数は4個。Aさんが作った秘密鍵、Bさんが作った秘密鍵、Cさんが~、Dさんが~です。
もし人数が「10人」になっても考え方は同じです。分からなくなったら、3人の時・4人の時を考えて法則を出せばOKですよ。
(計算問題の攻略法も準備してますので、もうちょっと待ってくださいね)
問題演習 | 公開鍵暗号方式の特徴
正答はイ。「異なる鍵」から公開鍵方式だと分かります。
多数のIoTデバイスと1つのIoTサーバーの通信の話でした。他の選択肢の用語も、知っておきたいですが、ひとまずはOKです。
正答はエ。共通鍵暗号方式では、暗号化と復号をする鍵は同じです。家の鍵と同じですね。
ア~ウは、公開鍵暗号方式の特徴です。
アについて、共通鍵方式だったら、暗号鍵と復号鍵が同じなので、第三者に知られたらダメです。家の鍵と同じ。
公開鍵方式なら、暗号鍵は公開鍵なので大丈夫です。秘密鍵がないと復号できませんからね。
イは、公開鍵暗号方式の特徴です。
ここで「鍵は一つ」に「ん?」と思うでしょうが、1つの鍵ペアと云う意味で問題では使われています。公開鍵の問題独特の言い回しです。
「鍵は一つ」で「公開鍵方式だ!」と飛びつく前に、他の選択肢を検討した上で選ぶと安全です。ややこしいですよね。
ウの「電子証明書」は、公開鍵暗号方式を利用します。なお、暗号化とは違う使い方で、送信者が鍵ペアを作るパターン。
次回のデジタル署名、さらに電子証明書まで進まねば、完全には理解できません。今のところ「デジタル署名」「電子証明書」と来たら「公開鍵」と連結する程度でOKです。
正答はイ。
家の玄関ドアを閉める鍵と開ける鍵が同じ場合(共通鍵)と違う場合(公開鍵)だったら、共通鍵の方がシンプルですよね。
プログラムでも同じく、共通鍵の方が処理がシンプルです。よって速いです。
アについて、「異なる鍵」を使うのは公開鍵方式でしたね。
ウについて、共通鍵では安全に配布できないのが問題です。
公開鍵ならもともと「公開して良い鍵」なので盗まれても問題ありませんし、公開鍵方式を応用した「ハイブリッド暗号」では共通鍵を安全に送ります。(最後に1問やりますね)
エについて、鍵ペアを1つ作って、公開鍵を多数の相手に使ってもらって大丈夫。秘密鍵は自分だけが使います。
問題演習 | ハイブリッド暗号方式
正答はア。
まずハイブリッド暗号方式では、共通鍵方式と公開鍵方式の弱点をお互いの利点で補います。
共通鍵の弱点:鍵を安全に相手に渡すのが困難だけど、高速
公開鍵の弱点:公開鍵は送って問題ないけど、低速
よって、公開鍵方式で共通鍵を安全に送り、暗号通信を高速な共通鍵で行うのがハイブリッド暗号方式。
文章でも書いておきますね。
受信者が鍵ペアを作り、共通鍵輸送に使っていきます
受信者が復号鍵を秘密鍵として持ち、暗号鍵を公開鍵として送信者に渡します。
送信者が、通信に使う共通鍵を作ります。
送信者は、共通鍵を、受け取った公開鍵で暗号化します。
まとめ | 秘密鍵は絶対送らない
ちょっとでも公開鍵・秘密鍵の問題解けそうでしょうか。
公開鍵は「公開して良い鍵」、つまり送ってOK
秘密鍵は「秘密にする鍵」、つまり送ったらダメ!
あとは、
鍵ペアを受信者が作ったら、内容を秘密にする使い方
鍵ペアを送信者が作ったら、デジタル署名などの使い方
と、鍵をどちらが作るかで、使い方・目的が違ってきます。
次は >>公開鍵デジタル署名<< をどーぞ!
\全てのNoteへのリンク集/
p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。
でわでわ(・ω・▼)ノシ