基本情報技術者 2018年 春期 午前(科目A) 問38
問題文
AさんがBさんの公開鍵で暗号化した電子メールを、BさんとCさんに送信した結果のうち、適切なものはどれか。ここで、Aさん、Bさん、Cさんのそれぞれの公開鍵は3人全員がもち、それぞれの秘密鍵は本人だけがもっているものとする。
選択肢
ア:暗号化された電子メールを、Bさんだけが、Aさんの公開鍵で復号できる。
イ:暗号化された電子メールを、Bさんだけが、自身の秘密鍵で復号できる。(正解)
ウ:暗号化された電子メールを、Bさんも、Cさんも、Bさんの公開鍵で復号できる。
エ:暗号化された電子メールを、Bさんも、Cさんも、自身の秘密鍵で復号できる。
🔒 解説は解答すると表示されます
公開鍵暗号と復号権限【午前解説】
正解の理由
選択肢イが正しいのは、送信者Aが受信者Bの公開鍵で暗号化した場合、その暗号文を復号できるのは対応する秘密鍵(Bさんのみが所持)だからです。公開鍵は暗号化や署名の検証に使われ、対応する秘密鍵でのみ復号や署名の生成が行えます。したがって、Bさんだけが自身の秘密鍵で復号でき、Cさんや第三者は復号できません。
(補足)署名の扱いに関して誤解が多い点を明確にします。署名は送信者の秘密鍵で作成し、受信者は送信者の公開鍵でその署名を検証します。署名の作成を公開鍵で行うことはできません。
解法ステップ
- 問題文で「どの公開鍵で暗号化したか」を確認する(ここではBさんの公開鍵)。
- 公開鍵暗号の基本原則を適用する:公開鍵で暗号化したデータは、対応する秘密鍵で復号する。
- 誰がその秘密鍵を持っているかを確認する(設問では各自の秘密鍵は本人だけが持つと明記)。
- 上記より、Bさんだけが復号可能と判定する。該当する選択肢はイ。
選択肢別の誤答解説
-
ア: 「Bさんだけが、Aさんの公開鍵で復号できる。」
間違い。まず、復号は秘密鍵で行うため「公開鍵で復号する」は誤りです。さらに、暗号化に使われたのはBさんの公開鍵なので、Aさんの公開鍵は無関係です。 -
イ: 「Bさんだけが、自身の秘密鍵で復号できる。」
正しい。暗号化に使われた公開鍵に対応する秘密鍵をBさんが所持しているため、Bさんのみが復号可能です。 -
ウ: 「Bさんも、Cさんも、Bさんの公開鍵で復号できる。」
間違い。公開鍵で復号はできません。復号は秘密鍵で行います。Bさんの公開鍵は暗号化や検証に使われますが、復号には役立ちません。さらに、CさんはBさんの秘密鍵を持っていないため復号不可です。 -
エ: 「Bさんも、Cさんも、自身の秘密鍵で復号できる。」
間違い。暗号文はBさんの公開鍵で作られているため、対応する秘密鍵(Bさんの秘密鍵)でしか復号できません。Cさんの秘密鍵は別の鍵であり、対応関係がないため復号できません。
よくある誤解
-
公開鍵で復号できると誤解する
公開鍵は「暗号化」や「署名の検証」に使い、復号や署名生成は秘密鍵で行います。機能を逆に覚えないよう注意してください。 -
暗号化=認証と混同する
受信者の公開鍵で暗号化すると「機密性(誰が読めるか)」は担保されますが、送信者の真正性(送信者が本当にAか)は保証されません。真正性が必要なら送信者が秘密鍵で署名する必要があります(署名は秘密鍵で作成し公開鍵で検証)。 -
送信先が複数なら同じ暗号文を共有すればよいと考える
受信者ごとに復号に使う秘密鍵が異なるため、複数受信者に配布する場合は別の方式(共通の対称鍵を用意し、それを各受信者の公開鍵で個別に暗号化して配る等)を用います。
補足コラム
複数人に同じ暗号文を安全に届ける方法(実務的な手順例)
-
ハイブリッド暗号方式を使う(実用的かつ効率的)
- まずメッセージを対称鍵(例:ランダムなAES鍵)で暗号化する。
- その対称鍵を受信者ごとの公開鍵で暗号化(鍵を個別に暗号化)して添付する。
これにより、メッセージ本体は一つで済み、各受信者は自分の秘密鍵で対称鍵を復号してからメッセージを復号します。
-
署名と暗号化の順序
一般に「署名→暗号化」(先に送信者が署名を作成し、その署名付きメッセージを受信者の公開鍵で暗号化)を行うと、受信者は復号してから署名検証で送信者の真正性を確認できます。逆に「暗号化→署名」は設計上の問題(署名が公開された際に機密性が失われる可能性)を招くことがあります。
簡単な概念コード(イメージ)
# 概念的な流れ(ライブラリによりAPIは異なります)
ciphertext = recipient_public_key.encrypt(plaintext) # AがBの公開鍵で暗号化
plaintext = recipient_private_key.decrypt(ciphertext) # Bが自身の秘密鍵で復号
FAQ
Q: 公開鍵で暗号化したら誰でも公開鍵で復号できますか?
A: いいえ。公開鍵では復号できません。対応する秘密鍵のみが復号可能です。
A: いいえ。公開鍵では復号できません。対応する秘密鍵のみが復号可能です。
Q: AがBの公開鍵で暗号化したメールをA自身は復号できますか?
A: 直接はできません。Aが復号したければ、Bが復号して再送するか、Aが初めから自分用にも暗号化されたコピー(または共通の対称鍵の暗号化コピー)を保持している必要があります。
A: 直接はできません。Aが復号したければ、Bが復号して再送するか、Aが初めから自分用にも暗号化されたコピー(または共通の対称鍵の暗号化コピー)を保持している必要があります。
Q: 送信者の真正性も保証したい場合はどうすればよいですか?
A: 送信者は自分の秘密鍵でメッセージに署名し、受信者は送信者の公開鍵で署名を検証します。機密性と真正性を同時に達成するには「署名→暗号化」の順が一般的です。
A: 送信者は自分の秘密鍵でメッセージに署名し、受信者は送信者の公開鍵で署名を検証します。機密性と真正性を同時に達成するには「署名→暗号化」の順が一般的です。
関連キーワード: 公開鍵暗号、秘密鍵、復号、暗号化、署名、ハイブリッド暗号、対称鍵暗号、RSA、鍵配布、機密性

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

