応用情報

応用情報 令和6年度 秋期 問3情報セキュリティに関する問題

問題

応用情報 | 令和6年度 秋期 | 分野:テクノロジ系

公開鍵暗号方式を用いてAさんがBさんへ機密文書を送信するとき、暗号化と復号に使う鍵の組合せとして適切なものはどれか。

タップするとすぐ答え合わせ

答え合わせ

正解は C
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

正解は「暗号化: Bの公開鍵 / 復号: Bの秘密鍵」です。

公開鍵暗号は「鍵が2つで対になっている」のがポイントです:

  • 公開鍵:誰でも持っていい(南京錠のイメージ)
  • 秘密鍵:本人だけが持つ(南京錠を開ける鍵)

Bさんに秘密の手紙を送りたいAさんは「Bの公開鍵」(誰でも入手可)で施錠します。これを開けられるのは「Bの秘密鍵」を持つB本人だけです。

逆に「Aの秘密鍵で暗号化+Aの公開鍵で復号」は本人確認(デジタル署名)の用途で、目的が違います。

覚え方:「秘密にしたい=受信者の公開鍵で施錠」。

正解は c「暗号化: Bの公開鍵 / 復号: Bの秘密鍵」です。

公開鍵暗号方式(非対称暗号方式)では各人が「公開鍵」「秘密鍵」の鍵ペアを持ちます。鍵ペアは数学的に関連付けられており、片方で暗号化したものは対になるもう片方でしか復号できません。これにより以下2つの異なる目的を実現できます:

| 目的 | 暗号化に使う鍵 | 復号に使う鍵 |

|---|---|---|

| 機密性(盗聴防止) | 受信者の公開鍵 | 受信者の秘密鍵 |

| 真正性(送信者証明)= デジタル署名 | 送信者の秘密鍵 | 送信者の公開鍵 |

本問は「機密文書の送信」なので機密性の目的、よって「受信者B の公開鍵で暗号化 → B の秘密鍵で復号」が正解です。

仕組みの数学的根拠:

代表的なRSA暗号は「大きな整数の素因数分解の困難性」に依存します。受信者の公開鍵(n, e)で暗号文 c = m^e mod n、秘密鍵(n, d)で復号 m = c^d mod n。d は秘密鍵保持者だけが知っているため、公開鍵から復号鍵を逆算するのが計算量的に不可能です。

実際の利用例:

  • TLS/SSL:サーバ証明書の公開鍵でセッション鍵を暗号化送付(ハイブリッド方式)。
  • SSH公開鍵認証:クライアントが公開鍵を事前登録、認証時に秘密鍵で署名し公開鍵で検証。
  • PGP/S-MIME:メール暗号化と署名の両用。

性能上の理由でハイブリッド方式が標準:

公開鍵暗号は計算コストが大きいため、実運用では「公開鍵暗号で短い共通鍵を暗号化送付 → 以降は共通鍵で本文を暗号化」というハイブリッド方式が用いられます。

AP午前ではセキュリティ分野で頻出(シラバス「情報セキュリティ・暗号技術」)。デジタル署名と暗号化の鍵の組合せを区別できるよう確実に押さえましょう。

正解は c「暗号化: Bの公開鍵 / 復号: Bの秘密鍵」です。

公開鍵暗号方式は1976年のDiffie-Hellman論文「New Directions in Cryptography」に始まり、現代のインターネットセキュリティの基盤となっています。本問は基礎ですが、上級者として理解すべきは「アルゴリズムの選択肢と耐量子計算機暗号」「PKI と信頼モデル」「実装上の脆弱性」の3点です。

1. 主要アルゴリズムと選択肢

| アルゴリズム | 根拠困難性 | 主な用途 | 鍵長(2026年推奨) |

|---|---|---|---|

| RSA | 素因数分解 | 暗号化・署名 | 3072bit以上 |

| ECC(楕円曲線暗号) | 楕円曲線離散対数 | 暗号化・署名 | 256bit以上 |

| ElGamal | 離散対数 | 暗号化 | 3072bit以上 |

| DSA/ECDSA | 離散対数/楕円曲線 | 署名のみ | 256bit以上 |

| Ed25519 | エドワーズ曲線 | 署名 | 256bit |

| ML-KEM(旧Kyber) | 格子問題 | 鍵カプセル化 | 768/1024 |

| ML-DSA(旧Dilithium) | 格子問題 | 署名 | 2/3/5 |

NIST SP 800-57 では2030年までにRSA 2048bitの段階的廃止を勧告。ECC256bitはRSA3072bitと同等の安全性で計算コストが小さいため、TLSではECDHE/ECDSAが主流となっています。

2. 耐量子計算機暗号(PQC: Post-Quantum Cryptography)

Shorのアルゴリズムにより大規模量子計算機が実用化すると、RSA・ECC・DH等の素因数分解/離散対数依存アルゴリズムは多項式時間で破られます。NISTは2016年からPQC標準化プロセスを進め、2024年に以下を最終標準として制定:

  • ML-KEM (FIPS 203):鍵カプセル化メカニズム(旧Kyber)。RSA暗号化の代替。
  • ML-DSA (FIPS 204):デジタル署名(旧Dilithium)。
  • SLH-DSA (FIPS 205):ハッシュベース署名(旧SPHINCS+)。バックアップ用途。

2026年時点でTLS 1.3 への組み込みが進行中(X25519MLKEM768 等のハイブリッド方式)。商用CDNやAWS KMSが順次対応中。「暗号危殆化」を見据えたCrypto Agility(暗号アジリティ)の設計が業務システムでも求められます。

3. PKI と信頼モデル

公開鍵を「本当にBのものか」検証する仕組みが PKI(公開鍵基盤)です:

  • CA階層モデル(X.509):ルートCA→中間CA→エンドエンティティ証明書。Web/メールで主流。
  • Web of Trust(PGP):ユーザ間の相互署名で信頼を構築。分散型だがスケールしにくい。
  • DANE(DNSベース):DNSSEC上で証明書のフィンガープリントを公開。
  • 証明書透明性(CT):CAが発行した証明書を公開ログに記録し、誤発行を検知。

実装上は X.509 v3 拡張(Subject Alternative Name, EKU, CRL Distribution Point等)の処理ミスが脆弱性につながった例が多数あります(Apple `goto fail`、OpenSSL Heartbleed等)。

4. 実装上の脆弱性パターン

  • パディングオラクル攻撃:RSA PKCS#1 v1.5 のエラー応答時間差を観測(Bleichenbacher攻撃, 1998)。対策はRSA-OAEPまたはML-KEMへの移行。
  • サイドチャネル攻撃:消費電力・実行時間・キャッシュアクセスから秘密鍵を推測(Spectre/Meltdownとの組合せも研究)。
  • 乱数生成の不備:DSA/ECDSA で乱数 k を再利用すると秘密鍵が線形代数で復元される(Sony PS3 ECDSA鍵漏洩, 2010)。決定論的署名(RFC 6979)で対策。
  • 鍵生成の素数の偏り:RSAの2つの素数が近接すると Fermat法で因数分解可能。

5. ハイブリッド方式の必然性

公開鍵暗号は計算コストが大きく、大容量データには適しません。実用システムでは以下のハイブリッド方式が標準:

1. 受信者の公開鍵で「セッション鍵」(AES等の共通鍵)を暗号化

2. 暗号化されたセッション鍵を受信者に送付

3. 以降の本文はセッション鍵でAES等の共通鍵暗号方式で暗号化

TLS 1.3 では ECDHE で前方秘匿性(forward secrecy)を確保したセッション鍵を共有し、AES-GCM で本文を暗号化します。これにより秘密鍵が後に漏洩しても過去の通信は復号できません。

6. AP午後問題でのセキュリティ設計

AP午後のセキュリティ問題では「電子署名と暗号化の鍵の組合せ」「PKI の階層と検証手順」「TLS のハンドシェイク」が頻出です。表層的な「Bの公開鍵で暗号化」を覚えるだけでは午後で得点できず、ハイブリッド方式・前方秘匿性・証明書失効リスト(CRL/OCSP)まで理解しておく必要があります。

実務的示唆:

  • 自前で暗号プロトコルを設計しない(必ず TLS / libsodium / age 等の既存ライブラリを使う)
  • 鍵管理は AWS KMS / Google Cloud KMS / Azure Key Vault 等の HSM対応サービスに委譲
  • Crypto Agility を見据え、暗号アルゴリズムの抽象化レイヤを設計に組み込む

公開鍵暗号は「秘密にしたいなら受信者の公開鍵」が出発点ですが、その先のエコシステム全体を理解して初めて運用可能なセキュリティが構築できます。

この問題の根拠出典:IPA(情報処理推進機構)公式 応用情報技術者試験(AP) 令和6年度 秋期 問3
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 応用情報技術者試験(AP) 令和6年度 秋期 問3/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。