基本情報 令和元年度 秋期 問38:テクノロジ系に関する問題
メッセージに RSA 方式のディジタル署名を付与して 2 者間で送受信する。そのと きのディジタル署名の検証鍵と使用方法はどれか。
- a受信者の公開鍵であり, 送信者がメッセージダイジェストからディジタル区名 を作成する際に使用する。
- b受信者の秘密鍵であり, 受信者がディジタル署名からメッセージダイジェスト を算出する際に使用する。
- c送信者の公開鍵であり, 受信者がディジタル署名からメッセージダイジェスト を算出する際に使用する。正答
- d送信者の秘密鍵であり, 送信者がメッセージダイジェストからディジタル著名 を作成する際に使用する。 問39 情報セキュリティにおいてバックドアに該当するものはどれか。 ア アクセスする際にパスワード認証などの正規の手続が必要な Web サイトに, 当 該手続を経ないでアクセス可能な URL イ インターネットに公開されているサーバの TCP ポートの中からアクティブにな っているポートを探して, 稼働中のサービスを特定するためのツール ウ ネットワーク上の通信パケットを取得して通信内容を見るために設けられたス イッチのLAN ポート エ プログラムが確保するメモリ領域に, 領域の大きさを超える長さの文字列を入 力してあふれさせ, ダウンさせる攻撃
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c「送信者の公開鍵」 です。
ディジタル署名の仕組み:
- 送る人:自分の秘密鍵で署名(自分しか作れない)
- 受け取る人:送り主の公開鍵で検証(みんな見れる)
「秘密鍵で書いた手紙は、対応する公開鍵でしか開けない」のが公開鍵暗号の魔法。だから「あ、これは本人が書いた」と確認できます。
👉 覚え方:署名=秘密鍵で作る、公開鍵で検証。
ほかの選択肢:a/b 受信者の鍵=暗号化/復号の話/d 秘密鍵で検証=逆向き。
なぜこれが正解か
正解は c。RSA方式のディジタル署名では:
1. 送信者がメッセージのハッシュ値(メッセージダイジェスト)を計算
2. 自分の秘密鍵でハッシュ値を暗号化=ディジタル署名
3. 受信者は受け取った署名を送信者の公開鍵で復号してメッセージダイジェストを算出
4. 受信したメッセージから自分でハッシュを計算し、復号結果と比較→一致すれば検証成功
各選択肢の解説
- a 受信者の公開鍵で署名作成:誤り。署名は送信者の秘密鍵で作成。
- b 受信者の秘密鍵で検証:誤り。検証は送信者の公開鍵で行う。
- d 送信者の秘密鍵で署名作成:これは署名生成の説明であり、検証鍵を問う問題に対しては誤り。
覚え方・ひっかけ注意
公開鍵暗号の役割表:
| 用途 | 暗号化/署名 | 復号/検証 |
|---|---|---|
| 秘匿(暗号化) | 受信者の公開鍵 | 受信者の秘密鍵 |
| 署名 | 送信者の秘密鍵 | 送信者の公開鍵 |
「自分の秘密鍵でしか作れない=本人証明」「公開鍵で誰でも検証可能」の対称関係を理解すれば暗記不要。
理論的背景
RSAディジタル署名はRSA暗号(Rivest-Shamir-Adleman、1977)の応用。公開鍵 (n, e)、秘密鍵 (n, d) のペアで:
- 署名生成:`s = h^d mod n`(hはメッセージのハッシュ値)
- 署名検証:`s^e mod n = h`が成立すれば正当
オイラーの定理 `m^φ(n) ≡ 1 (mod n)` と `e·d ≡ 1 (mod φ(n))` を選ぶことで `(m^d)^e ≡ m (mod n)` が成立する数学的基盤。
ディジタル署名の特性
ディジタル署名は3つのセキュリティ性質を提供:
- 真正性(Authentication):送信者が誰か検証可能
- 完全性(Integrity):メッセージが改ざんされていないか検証可能
- 否認防止(Non-Repudiation):送信者は後で「送っていない」と言えない
MAC(メッセージ認証符号)は共通鍵で①②を提供するが③否認防止は提供できない(受信者も鍵を持つため)。
主要署名アルゴリズム
- RSA署名:RSASSA-PSS(推奨)、RSASSA-PKCS1-v1_5(レガシー)
- DSA/DSS:FIPS 186、固定パラメータ
- ECDSA:楕円曲線、短い鍵長で同等強度。Bitcoin、TLS、SSH広く採用
- EdDSA(Ed25519/Ed448):高速・サイドチャネル耐性
- ポスト量子暗号(PQC):CRYSTALS-Dilithium、Falcon、SPHINCS+。NIST標準化進行中
実務での使われ方
- TLS/HTTPS:サーバ証明書のCA署名検証(X.509、PKIX)
- コード署名:Authenticode(Microsoft)、Apple Notarization、Android APK Signing
- 電子契約:DocuSign、Adobe Sign、クラウドサイン、GMOサイン
- JWT署名:HS256(HMAC)/RS256(RSA)/ES256(ECDSA)でAPI認証
- ブロックチェーン:Bitcoin(ECDSA)、Ethereum(ECDSA)、各種スマートコントラクト署名
- ソフトウェア配布:パッケージ署名(GPG、Sigstore)、SBOM、Supply Chain Security
PKI(公開鍵基盤)
- CA(Certificate Authority):証明書発行
- RA(Registration Authority):登録代行
- CRL(Certificate Revocation List)/OCSP:失効確認
- 証明書チェーン:ルートCA→中間CA→エンドエンティティ
- 証明書透明性(CT:Certificate Transparency):CTログで監視
試験での位置づけ
基本情報・応用情報・情報処理安全確保支援士のセキュリティ分野で毎期必出級。直近はTLS 1.3、HSTS、HPKP、ECH、PQC移行戦略まで踏み込む。
選択肢の発展補足
ハッシュ関数の選定も重要:MD5・SHA-1は衝突攻撃で非推奨(SHA-1は2017年Google/CWIによる衝突実証)、現在はSHA-2(SHA-256以上)/SHA-3が標準。署名アルゴリズムとハッシュ関数の組合せ(例:RSA-PSS-SHA256、ECDSA-P256-SHA256)でセキュリティ強度が決まる。ノンス(nonce)を用いる署名(ECDSA、EdDSA)では乱数の不適切実装でPlayStation 3秘密鍵漏えい事件(2010)のような重大事故が発生する点も実装上の注意点。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 令和元年度 秋期 問38/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。