ITパスポート 令和7年度 問89:securityに関する問題
AさんはBさんから次の4種類のメッセージを受け取った。Aさんが,受け取ったメッセージを復号して読むことができるものだけを全て挙げたものはどれか。a: AさんとBさんとの共通鍵で暗号化したメッセージ b: Aさんの公開鍵で暗号化したメッセージ c: Bさんの公開鍵で暗号化したメッセージ d: Bさんの秘密鍵で暗号化したメッセージ
- aa, b, d正答
- ba, c, d
- cb, d
- dc, d
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは a「a, b, d」 です。
カギには2種類あります。「2人だけの共通のカギ(共通鍵)」と、「公開する錠前用のカギ+自分だけの開けるカギ(公開鍵と秘密鍵)」です。
- a 2人の共通鍵で暗号化 → Aさんも同じカギを持つ → 開けられる○
- b Aさんの公開鍵(錠前)でかけた → 開けるのはAさんの秘密鍵 → Aさんが持つ → 開けられる○
- c Bさんの公開鍵でかけた → 開けるのはBさんの秘密鍵 → Aさんは持ってない → ×
- d Bさんの秘密鍵でかけた → 開けるのはBさんの公開鍵(誰でも入手可)→ 開けられる○
👉 コツ:「○○の公開鍵でかけた箱は、○○の秘密鍵でしか開かない」。
なぜこれが正解か
正解は a(a, b, d)。Aさんが復号できるのは「Aさんが持っている鍵」で開けられるもの。
- a(共通鍵で暗号化):共通鍵はAB双方が持つ → Aさんは復号できる○
- b(Aの公開鍵で暗号化):対になるAの秘密鍵で復号 → Aさんが所持 → 復号できる○
- c(Bの公開鍵で暗号化):対になるBの秘密鍵が必要 → Aさんは持たない → 復号不可×
- d(Bの秘密鍵で暗号化):対になるBの公開鍵で復号 → 公開鍵は誰でも入手可 → Aさんも復号できる○
よって a, b, d。
各選択肢の解説
- b〜d:選択肢bは「b, d」、dは「c, d」でcを含む/bを欠くため誤り。cはBの秘密鍵が必要なので必ず除外。
覚え方・ひっかけ注意
公開鍵暗号の鉄則:「ある人の公開鍵で暗号化→その人の秘密鍵でしか復号できない」。逆に秘密鍵で暗号化(=署名)したものは対の公開鍵で誰でも復号できる。cだけがAさんの手に負えない、と判断する。
理論的背景
本問は暗号化方式(共通鍵・公開鍵)における「誰の鍵で暗号化されたメッセージを誰が復号できるか」という暗号理論の核心を問う問題であり、正解はaの「a・b・d」の3つである。
各メッセージの復号可能性を分析する。a「AとBの共通鍵で暗号化」:共通鍵暗号(対称鍵暗号)では同じ鍵で暗号化と復号を行う。AとBが同じ鍵を共有しているため、Aは自分が持つ共通鍵で復号できる。→復号可能。b「Aの公開鍵で暗号化」:公開鍵暗号では公開鍵で暗号化したデータは対応する秘密鍵でのみ復号できる。Aの公開鍵で暗号化→Aの秘密鍵で復号。Aは自分の秘密鍵を持っているため復号できる。→復号可能。c「Bの公開鍵で暗号化」:Bの公開鍵で暗号化→Bの秘密鍵でのみ復号できる。Aはbの秘密鍵を持っていないため復号できない。→復号不可能。d「Bの秘密鍵で暗号化」:Bの秘密鍵で暗号化→Bの公開鍵で復号できる。Bの公開鍵は公開されているため、Aも入手してdを復号できる。→復号可能(これがデジタル署名の原理)。
したがってAが復号できるのはa・b・dの3つであり、正解はaである。
実務での使われ方
この問題で問われる公開鍵暗号の使い方のパターンは、現代のセキュリティプロトコルの根幹をなしている。
公開鍵で暗号化(機密性の確保):HTTPS(TLS)ではサーバの公開鍵でセッション鍵(共通鍵)を暗号化して送信し、サーバの秘密鍵でのみ復号できる仕組みを使って鍵交換を安全に行う。秘密鍵で暗号化(認証・否認防止:デジタル署名):bの秘密鍵で「メッセージのハッシュ値」を暗号化したものがデジタル署名。誰でもBの公開鍵で検証できるため、「Bが署名した」という事実の証明(認証)と「Bは署名していないとは言えない」という否認防止が実現される。PGP(Pretty Good Privacy)・S/MIME(電子メール暗号化・署名)・電子契約サービス(DocuSign・クラウドサイン等)・電子証明書(マイナンバーカード)でこの仕組みが使われている。ハイブリッド暗号方式:公開鍵暗号は計算コストが高いため、実際のTLS通信では「公開鍵暗号で共通鍵を安全に交換」→「以降は高速な共通鍵暗号(AES等)で通信を暗号化」というハイブリッド方式が採用される。
試験での位置づけ
公開鍵暗号における「誰が誰のメッセージを読めるか」は暗号分野で最頻出の問題形式であり、ITパスポートで必ず得点すべき問題の一つである。整理のポイントは「公開鍵で暗号化→対応する秘密鍵でのみ復号」「秘密鍵で暗号化→対応する公開鍵で復号(=デジタル署名の原理)」という2つの対応関係を完全に記憶することである。選択肢cの「Bの公開鍵で暗号化」はBだけが読める(Bの秘密鍵が必要)というのが試験での典型的な引っかけパターンであり、「公開鍵=誰でも使える暗号化鍵、秘密鍵=本人だけが持つ復号鍵」という基本構造を確実に把握していれば正答できる。
基本情報技術者試験では、RSA・楕円曲線暗号(ECDSA)の数学的基礎・Diffie-Hellman鍵交換・TLS 1.3のハンドシェイクプロセス(Perfect Forward Secrecy:ECDHE等)・デジタル署名の作成と検証の完全な手順まで踏み込んだ知識が求められる。
選択肢の発展補足
選択肢bの「a・c・d」は「c(Bの公開鍵で暗号化)もAが復号できる」と誤解した場合に選ぶ。しかしBの公開鍵で暗号化されたメッセージはBの秘密鍵でしか復号できない。もしAがBの公開鍵で暗号化されたメッセージを読めるとすれば、それはAがBの秘密鍵を知っているという意味になり、公開鍵暗号の安全性が完全に破綻することになる。選択肢cの「b・d」はaの共通鍵メッセージも復号できることを見落とした場合。共通鍵暗号は「同じ鍵を持つ両者が復号できる」ため、AもBも共通鍵を保有しており、どちらも復号できる。選択肢dの「c・d」を選ぶ場合は公開鍵/秘密鍵の役割を完全に逆に理解している。dの「Bの秘密鍵で暗号化」をAが復号できる理由は「Bの公開鍵が公開されており誰でも入手できる」からであり、これがデジタル署名の「誰でも検証できる」という特性である。この特性を「機密性なし・署名の公開性」と覚えておくと上位試験でも有用である。
出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和7年度 問89/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。