戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

ITパスポート 2016年 秋期 55


問題文

PKIにおいて、ディジタル署名をした電子メールに関する記述として、適切なものだけを全て挙げたものはどれか。
a 送信者が本人であるかを受信者が確認できる。 b 電子メールが途中で盗み見られることを防止できる。 c 電子メールの内容が改ざんされていないことを受信者が確認できる。

選択肢

a, b
a, c(正解)
b, c
a, b, c

🔒 解説は解答すると表示されます

ディジタル署名と電子メールに関する記述【ITパスポート 解説】

正解の理由

本問では、選択肢 a(送信者確認)と c(改ざん検知)が正しいため、選択肢 が正解です。
理由の要点をやさしく説明します。
  • PKI(Public Key Infrastructure:公開鍵基盤)は、公的なしくみで「公開鍵(public key)」と「秘密鍵(private key)」という一対の鍵を使います。公開鍵暗号(public‑key/asymmetric cryptography:対になる鍵で暗号処理を行う方式)を基にしています。
  • ディジタル署名(digital signature:電子的に署名を行う仕組み)は、まずメール本文の要約(ハッシュ:hash function)を作り、そのハッシュ値を送信者の秘密鍵で暗号化して署名を作ります。受信者は送信者の公開鍵でその署名を復号(=検証)し、受信した本文から自分でハッシュを作って比べます。
  • したがって、受信者が「その署名は送信者の秘密鍵で作られたものだ」と確かめられるため、送信者が本人である(a)は確認できます。ただし「本人である」ことが完全に保証されるには、その公開鍵が本当にその人のものであると証明する仕組み(認証局:CA)が必要です。
  • 同様に、ハッシュ値が一致すれば内容が改ざんされていない(c)ことが確認できます。
  • 一方、ディジタル署名は本文を暗号化して隠す処理ではないため、途中で盗み見られること(機密性)は防げません。これが b が誤りである理由です。

解法ステップ

受験時に素早く正解にたどり着く手順:
  1. 各文を「認証(誰が送ったか)」「機密性(内容が見られない)」「完全性(改ざんされてない)」のどれに当たるか分類する。
  2. ディジタル署名の役割を思い出す:認証・完全性・否認防止(non‑repudiation)が主。機密性は含まれない。
  3. 「機密性があるか(b)」を問う文があればそれは誤りと判断。
  4. a と c が正しい組み合わせを選ぶ →
覚え方:署名 = 誰が(authenticity)・変わってないか(integrity)を証明。見えないようにする(confidentiality)は別の仕組み(暗号化)を使う。

選択肢別の誤答解説

  • ア: a, b
    b(電子メールの盗み見を防ぐ)が誤りです。署名は内容を隠しません。したがってアは不正解。
  • イ: a, c
    a(送信者の確認)と c(改ざん検知)はディジタル署名の役割に合致します。よって が正解です。
  • ウ: b, c
    b が誤りなのでウは不正解。c のみ正しいが組合せは誤りです。
  • エ: a, b, c
    b が含まれているため誤りです。署名だけで機密性は保証されません。
(補足)a の「送信者が本人であるかを受信者が確認できる」について:実務的には公開鍵が本当に本人のものかを証明する認証局(CA: Certificate Authority)が重要です。また、秘密鍵が盗まれていれば偽装される可能性があります。

よくある誤解

  1. ディジタル署名=メッセージの暗号化だと思い込む
    • 実際は署名は「署名データ(通常はハッシュを秘密鍵で変換したもの)」を付ける処理。本文自体は暗号化されない限り第三者に見えます。機密性が必要なら暗号化(encryption)を併用します。
  2. 署名があれば送信者の身元が絶対に保証される
    • 署名は「秘密鍵を持つ者が作った」ことを示すだけです。公開鍵と人の結びつきを保証する仕組み(認証局や証明書)が重要で、鍵管理(秘密鍵の流出防止)も必須です。
  3. 署名だけで通信の安全が全部解決する
    • 署名は認証と完全性に強いが、機密性・転送路の安全(盗聴、中間者攻撃対策)などは別の技術(暗号化、TLSなど)で補う必要があります。

補足コラム

・S/MIME(Secure/Multipurpose Internet Mail Extensions)は電子メールでディジタル署名と暗号化を提供する規格です。署名で「改ざん・送信者確認」を行い、暗号化で「盗み見防止(機密性)」を実現します。
・PGP(Pretty Good Privacy)やOpenPGPも同様に署名+暗号化を扱います。
・ディジタル署名の技術的流れ(簡略)
  1. メール本文 → ハッシュ関数(hash function:任意長を短い固定長に変える関数)でハッシュ値を作る。
  2. ハッシュ値を送信者の秘密鍵(private key)で暗号化して署名を作る。
  3. 受信者は送信者の公開鍵(public key)で署名を復号し、本文から計算したハッシュと比べる。
    この手順で改ざん検知と署名者の確認が可能になります。
簡単な擬似コード(イメージ):
# イメージ:実際はライブラリを使う
hash = hash_function(message)
signature = private_key.sign(hash)   # 秘密鍵で署名作成
# 受信側
verified_hash = public_key.verify(signature)
if verified_hash == hash:
    print("改ざんなし・送信者確認")
else:
    print("改ざんまたは不正な署名")

FAQ

Q1. ディジタル署名でメールの内容は暗号化されますか?
A1. いいえ。署名は内容を隠しません。内容を隠したければ暗号化(encryption)を行います。署名と暗号化は別の役割です。
Q2. 署名があれば送信者の身元は絶対にわかりますか?
A2. 基本的には「その秘密鍵を持つ者が署名した」と確認できますが、公開鍵が本当にその人のものであることを保証する認証(証明書)や秘密鍵の安全管理が前提です。
Q3. 署名と暗号化はどちらを先に行えばよいですか?
A3. 実務では「署名してから暗号化(sign‑then‑encrypt)」することが多いです。これにより受信者は復号してから署名確認できます。ただしプロトコル設計によって扱いが異なる場合があります。
Q4. 電子メールの盗み見(盗聴)を防ぎたい場合は何を使うべきですか?
A4. メッセージの暗号化(S/MIME、PGP、あるいは送受信経路でTLS)を使います。署名はそれに追加して使います。

関連キーワード: PKI、ディジタル署名、公開鍵暗号、非対称鍵、ハッシュ関数、認証局、機密性、完全性、認証、S/MIME、PGP、否認防止
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

ITパスポート
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について