情報処理安全確保支援士(SC)試験の受験を目指す皆様、日々の学習お疲れ様です。
年末が近づき、次回の試験に向けた学習計画を立てている方も多いのではないでしょうか。「まとまった時間が取れる年末年始に集中して学習したい」「苦手分野を克服して安心して年を越したい」。そんな方に向けて、当ブログから年末特別企画をお届けします。
今回のテーマは、科目A-2(旧午前Ⅱ)で出題比率が高く、合否を分ける重要分野である「暗号・認証」です。
IPA(情報処理推進機構)が公開している令和元年度秋期から令和7年度秋期までの午前Ⅱ過去問から、暗号・認証分野の実際の過去問30問を選び、「ノック形式」で用意しました。問題文と選択肢は原文のまま掲載し、各問に出典(年度・期・問番号。区分名は出題当時のもの)を付けています。選択肢をクリックすると、その場で正誤と全選択肢の解説が表示されます。
30問は、暗号の基礎、ハッシュ・MAC・署名、PKI、TLS・プロトコル、認証・認可の順に並べています。前から順に解くと、分野ごとの知識を一通り確認できます。
過去問ノック(全30問)
過去問ノック30問、お疲れ様でした。暗号と認証は、科目A-2の得点源であると同時に、科目B(旧午後)のシナリオを読み解くための共通言語でもあります。ここからは、30問で問われた論点を分野ごとに整理します。間違えた問題の番号を思い出しながら読み進めてください。
+おまけ:毎日1通の無料メール講座つき。登録した日が「1日目」、図解と論理で16週間かけて基礎も固まります。
1. 暗号の基礎:安全性の根拠と実装の弱点(Q1〜Q7)
計算量的安全性と情報理論的安全性
RSA暗号、楕円曲線暗号、DH鍵共有は、いずれも「解くのに現実的でない時間がかかる数学的問題」に安全性の根拠を置いています。これを計算量的安全性と呼びます。計算機が十分に速くなったり、効率的な解法が見つかったりすれば破られる可能性があります。
これに対して、ワンタイムパッドは「平文と同じ長さの真の乱数を鍵にし、一度しか使わない」という条件を守れば、どれだけ計算能力があっても解読できません。これが情報理論的安全性です(Q1)。ただし、平文と同じ長さの鍵を安全に配送するのが現実には難しいという弱点があります。
この弱点を量子の性質で解決しようとするのが量子暗号(量子鍵配送、QKD)です。量子通信路で乱数列を共有し、盗聴されると量子状態が乱れることを利用して盗聴を検知します。共有した乱数列をワンタイムパッドの鍵に使えば、原理的に解読されない通信が実現します(Q7)。
一方、PQC(Post-Quantum Cryptography、耐量子計算機暗号)は、量子コンピュータを使っても解読が難しい数学的問題(格子問題など)に基づく暗号方式で、通常のコンピュータ上で動きます(Q6)。量子コンピュータ上でショアのアルゴリズムを動かすと、RSAや楕円曲線暗号が効率的に破られてしまいます。その移行先として標準化が進んでいます。「量子暗号=量子の物理現象を使う鍵配送」「PQC=量子計算機でも解けない数学」と区別して覚えましょう。
ブロック暗号の利用モード
ブロック暗号をどうつなげて使うかを決めるのが暗号利用モードです。科目A-2ではモードごとの性質の違いが繰り返し問われます(Q2)。
- CBCモード:前の暗号文ブロックを次の平文ブロックに混ぜてから暗号化します。暗号化は直列にしかできませんが、復号は並列にできます。ビット誤りは、そのブロック全体と次ブロックの対応するビットに波及します。パディングが必要です。
- CTRモード:カウンタ値を暗号化して鍵ストリームを作り、平文と排他的論理和をとります。暗号化と復号が同じ処理で、どちらも並列化できます。パディングは不要で、ビット誤りは同じ位置のビットにしか影響しません。
CBCの性質をCTRの選択肢に混ぜる、というのが典型的なひっかけです。
暗号の選定基準と実装の弱点
どの暗号を使うべきかの目安として、日本ではCRYPTREC暗号リストが参照されます。リストは「電子政府推奨暗号リスト」「推奨候補暗号リスト」「運用監視暗号リスト」の3つです(Q3)。運用監視暗号リストは、推奨はしないものの互換性維持のために継続利用を容認するリストです。推奨リストと取り違えないようにしましょう。
暗号モジュールの安全性については、米国NISTのFIPS 140-3(暗号モジュールのセキュリティ要求事項)が基準になります(Q4)。
アルゴリズム自体が安全でも、実装から秘密情報が漏れることがあります。処理時間、消費電力、電磁波などの物理的な情報から秘密を推定するのがサイドチャネル攻撃です。対策は攻撃手法ごとに異なります(Q5)。
- タイミング攻撃:秘密情報によって処理時間が変わらないようにする(定数時間実装)
- 電力解析攻撃:消費電力を均一化する
- 故障利用攻撃:故障を検出したら秘密情報を消去する
2. ハッシュ関数・MAC・デジタル署名(Q8〜Q12)
ハッシュ関数の三つの安全性
ハッシュ関数に求められる性質は次の三つです(Q8)。
- 原像計算困難性(一方向性):ハッシュ値から元のメッセージを見つけるのが難しい
- 第2原像計算困難性:あるメッセージと同じハッシュ値になる別のメッセージを見つけるのが難しい
- 衝突発見困難性:ハッシュ値が一致する任意の二つのメッセージを見つけるのが難しい
衝突は誕生日攻撃により、nビットのハッシュ値なら約2のn/2乗回の計算で見つかると見積もられます。SHA-256なら約2の128乗で、原像探索の約2の256乗よりずっと少なくなります。
SHA-512/256は、SHA-512と同じ計算(初期値は専用のもの)を行い、出力の先頭256ビットだけを使う方式です(Q9)。64ビットCPUではSHA-256より高速に計算できる場合があります。
MACとデジタル署名の違い
MAC(メッセージ認証符号)は、送信者と受信者が共有する共通鍵で生成・検証します。受信者はメッセージの完全性と、共通鍵を持つ相手から届いたことを確認できます。ただし、共通鍵は受信者も持っているので、第三者に対して「送信者が作った」ことは証明できません(Q10)。これが、送信者の秘密鍵で作るデジタル署名との決定的な違いです。デジタル署名なら、公開鍵を知る誰もが検証でき、否認防止にも使えます。
| 項目 | MAC | デジタル署名 |
|---|---|---|
| 生成に使う鍵 | 共通鍵 | 送信者の秘密鍵 |
| 検証に使う鍵 | 同じ共通鍵 | 送信者の公開鍵 |
| 検証できる人 | 共通鍵を持つ人だけ | 公開鍵を知る誰でも |
| 否認防止 | できない | できる |
XMLデジタル署名は、XML文書の一部または全体に署名するための仕様です。署名対象との位置関係によって、エンベロープ署名(署名対象の中に署名を置く)、エンベローピング署名(署名の中に署名対象を包む)、デタッチ署名(両者が親子関係にない)の3形式があります(Q11)。
署名の考え方を送金取引に応用したのがトランザクション署名です(Q12)。PCとは別のデバイスに振込先口座番号などの取引内容を入力して値を算出し、その値を送信します。PC上でMITB攻撃によって取引内容が書き換えられても、サーバ側で照合すると値が一致しないため、不正送金を検知できます。ログイン時のワンタイムパスワードでは、ログイン後の改ざんは防げない点がポイントです。
3. PKIと証明書の信頼の仕組み(Q13〜Q18)
登場する機関の役割分担
PKIの問題は「どの機関が何をするか」を正確に区別できるかが勝負です(Q14、Q15)。
- RA(登録局):申請者の本人確認を行い、発行申請を承認または却下する
- CA(認証局):証明書にデジタル署名して発行する。失効した証明書はCRLで公開する
- VA(検証局):証明書の失効状態の問合せに応答する(OCSPレスポンダなど)
- AA(属性認証局):属性証明書を発行する
デジタル証明書は、申請者の公開鍵と識別情報に、CAが自身の秘密鍵で署名したものです(Q13)。ルートCAが下位CAの証明書を発行するときも、署名に使うのはルートCAの秘密鍵です。「公開鍵で署名する」と書かれた選択肢は、その時点で誤りと判断できます。証明書の形式はITU-T X.509で、X.400(メッセージ通信)と混同しないようにしましょう。
CAの運用ルールを定めた文書がCP(証明書ポリシー)とCPS(認証局運用規程)です。CPSは、CAがCPをどのように運用するかを詳細に定めた文書で、CA自身が策定します(Q16)。
失効確認と不正発行の防止
有効期限内に秘密鍵の漏えいなどで失効した証明書は、そのシリアル番号がCRLに載ります(Q17)。ブラウザにCAの公開鍵が組み込まれていても、それで確認できるのは署名が正しいことだけです。失効していないかはCRLやOCSPで別途確かめる必要があります。
CAAレコードは、自ドメインの証明書を発行してよいCAをDNSで宣言する仕組みです(Q18)。CAは発行前にCAAレコードを確認し、自身が許可されていなければ発行しないので、不正な証明書の発行を防げます。鍵マークは「通信が暗号化されている」ことを示すだけで、「サイトが安全」という意味ではない点もあわせて押さえておきましょう。
4. TLSと暗号化プロトコル(Q19〜Q21)
TLS 1.3では、暗号スイートの構成が大きく変わりました(Q19)。TLS 1.2までは鍵交換、署名、暗号、ハッシュをまとめて一つの暗号スイートで指定していました。TLS 1.3の暗号スイートは「AEAD」と「ハッシュアルゴリズム」の組(例:TLS_AES_128_GCM_SHA256)だけで構成され、鍵交換と署名の方式は別の拡張で交渉します。AES-CBCのようなAEADではない暗号や、静的RSA鍵交換は廃止されています。
前方秘匿性(Forward Secrecy)は、長期間使う秘密鍵が後で漏えいしても、過去の通信内容は解読されない性質です(Q20)。通信ごとに使い捨ての鍵ペアで鍵交換する(DHEやECDHE)ことで実現します。TLS 1.3では鍵交換が(EC)DHEベースになり、原則として前方秘匿性を持ちます(ただし、PSKだけでセッションを再開するモードでは前方秘匿性がありません)。
遠隔ログイン用の暗号化プロトコルであるSSHも、暗号化と利用者認証の両方の機能を持っています(Q21)。L2TPはそれ自体に暗号化機能がなくIPsecと組み合わせて使う、RADIUSは認証・認可・アカウンティングの仕組み、というように、選択肢に並ぶプロトコルの役割もあわせて確認しておきましょう。
5. 認証・認可とシングルサインオン(Q22〜Q30)
身元確認と当人認証
NIST SP 800-63-3は、デジタルアイデンティティを次の三つに分けて定義しています(Q22)。
- 身元確認(Identity Proofing、IAL):登録時に、申請者が名乗っている本人であることを確認する
- 当人認証(Authentication、AAL):ログインのたびに、登録済みの本人であることを確認する
- フェデレーション(FAL):認証結果を他のサービスに伝える
登録時の本人確認と毎回のログイン認証を区別することが、この問題の核心です。なお、SP 800-63-3は2025年8月に後継のSP 800-63-4に置き換えられましたが、IAL・AAL・FALの3つに分ける枠組みは引き継がれています。
FIDOと生体認証
FIDOの特徴は、生体情報やパスワードといった秘密をサーバに送らないことです(Q24)。端末内で生体認証などで本人を確認し、端末内の秘密鍵で署名してサーバに送ります。サーバは登録済みの公開鍵で署名を検証するだけです。「指紋情報をサーバに送る」という選択肢はFIDOの考え方に反するので誤りです。
認証デバイスの性質も問われます(Q23)。虹彩の模様は幼少期に形成された後ほとんど変わらないため、登録パターンの更新はほぼ不要です。ICカードは、接触型が端子から、非接触型がコイルの誘導起電力で電力を得ます。
認証情報を狙う攻撃
Pass the Hashは、窃取したパスワードのハッシュ値を平文に戻さず、そのまま認証に使う攻撃です(Q25)。Windowsの認証(NTLMなど)では、ハッシュ値を知っていれば認証を通過できる場面があります。そのため、ハッシュ値の漏えいは平文パスワードの漏えいと同じくらい危険です。ハッシュ値から平文を割り出すパスワードクラックとは区別しましょう。
ネットワーク接続時の認証:802.1XとAAA
有線・無線LANの接続時に認証するのがIEEE 802.1Xで、登場人物は次の三者です(Q27)。
- サプリカント:認証を要求するクライアント側の装置やソフトウェア
- オーセンティケータ:クライアントと認証サーバを仲介する機器(スイッチ、無線LANアクセスポイント)
- 認証サーバ:認証を行うサーバ(RADIUSサーバなど)
RADIUSやDiameterが提供するAAAは、Authentication(認証)、Authorization(認可)、Accounting(アカウンティング:利用記録)の三つです(Q26)。Audit(監査)と混同しやすいので注意しましょう。
シングルサインオンの方式
SSOの方式は、選択肢の説明をすり替えるひっかけの定番です(Q28、Q29)。
| 方式 | 仕組み | 注意点 |
|---|---|---|
| SAML | IdPが認証してアサーションを発行し、SPが検証する | ドメインをまたいだSSOに向く |
| エージェント方式 | 対象サーバにエージェントを組み込み、cookieで認証状態を共有する | 対象サーバへの組込みが必要 |
| リバースプロキシ方式 | 中継サーバで認証し、全通信を中継する | 通信が集中し、単一障害点になりやすい |
| 代理認証(代行入力)方式 | クライアント側で利用者に代わってID・パスワードを入力する | 対象システムの改修は不要 |
| Kerberos | 認証サーバが発行するチケットでアクセスする | 主に社内(Active Directoryなど)で使う |

OAuth 2.0は認可のプロトコル
OAuth 2.0は、利用者(リソースオーナー)の許可に基づいて、認可サーバがサービス(クライアント)にアクセストークンを発行し、権限を委譲するための認可のプロトコルです(Q30)。利用者が本人かどうかを確認する認証は、OAuth 2.0を拡張したOpenID Connectが担います。「認証」と「認可」の入替えはSC試験で最も頻出のひっかけの一つです。
まとめ:間違えた問題は論点ごと復習しましょう
今回の30問は、実際に午前Ⅱで出題された問題です。同じ論点が表現を変えて何度も出題されていることに気付いたのではないでしょうか。例えばSAML、Pass the Hash、PKIの機関の役割、OAuth 2.0は、複数の年度でほぼ同じ形で出題されています。
- 間違えた問題は、正解の選択肢だけでなく、不正解の選択肢が何の説明なのかまで確認する
- MACと署名、RAとVA、量子暗号とPQC、認証と認可のように、対になる概念をセットで覚える
- 2〜3日空けてもう一度解き直し、解説を見ずに4つの選択肢全ての正誤理由を言えるか確かめる
この30問を確実に解けるようになれば、暗号・認証分野の科目A-2はかなり安定した得点源になります。年末年始の学習に、ぜひ繰り返し活用してください。
参考資料
- IPA 情報処理推進機構:過去問題(問題冊子・配点割合・解答例・採点講評)
- CRYPTREC:電子政府推奨暗号リスト
- NIST SP 800-63-3 Digital Identity Guidelines
- NIST SP 800-63-4 Digital Identity Guidelines
本記事は情報処理安全確保支援士(SC)試験対策を目的として作成しています。掲載した過去問題は、IPA(独立行政法人情報処理推進機構)が公開している情報処理安全確保支援士試験の午前Ⅱ問題を出典を明記して引用したものです。
+おまけ:毎日1通の無料メール講座つき。登録した日が「1日目」、図解と論理で16週間かけて基礎も固まります。