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

情報セキュリティマネジメント 2018年 春期 午前(科目A)24


問題文

メッセージが改ざんされていないかどうかを確認するために、そのメッセージから、ブロック暗号を用いて生成することができるものはどれか。

選択肢

PKI
パリティビット
メッセージ認証符号(正解)
ルート証明書

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

メッセージ認証符号(MAC)【情報セキュリティマネジメント解説】

正解の理由

設問は「メッセージの改ざん検知に使え、メッセージからブロック暗号を用いて生成できるもの」を問うています。メッセージ認証符号(MAC:Message Authentication Code=メッセージが改ざんされていないことと、正当な送信者であることを確認するための短い値)は、ブロック暗号を使って生成する方法が定義されています。したがって設問の正解は です。
ポイントを平たく言うと、MAC は「メッセージ+秘密鍵」を使って短い値を計算し、その値を受信側でも同じ方法で計算して一致すれば改ざんなしと判断します。ブロック暗号(データを一定長のブロック単位で暗号化する方式)を使った代表的な方式に CBC-MAC や CMAC があります。

解法ステップ

  1. 問題の目的を確認:何を実現したいか? → 「メッセージが改ざんされていないか確認」=整合性検査。
  2. 選択肢の役割を短く思い出す:
    • PKI:公開鍵基盤(公開鍵暗号の運用フレーム)
    • パリティビット:単純な誤り検出の1ビット
    • メッセージ認証符号:改ざん検出用の短い値(MAC)
    • ルート証明書:信頼の起点となる証明書
  3. 「ブロック暗号で生成できるか」を照合:ブロック暗号から直接作れるのは MAC(CBC-MAC/CMAC)。よって を選ぶ。

選択肢別の誤答解説

  • ア: PKI(公開鍵基盤)
    PKI は公開鍵暗号を使うための仕組みや運用(鍵管理、証明書発行など)であって、メッセージからブロック暗号で直接「生成するもの」ではありません。PKI は整合性や認証を支援しますが、設問の「メッセージから生成するもの」ではないため不適切です。
  • イ: パリティビット
    パリティビットはデータ転送でよく使う簡易な誤り検出(偶数個の1かどうかを見る)を行う1ビットです。暗号的な安全性はなく、ブロック暗号を使って生成する方式でもありません。改ざん(悪意ある変更)検出には弱いです。
  • ウ: メッセージ認証符号(MAC)
    正解です。MAC は秘密鍵とメッセージから短いタグ(符号)を生成し、受信側も同じ鍵で計算して照合します。ブロック暗号で実装する方式(CBC-MAC、CMAC)があります。受験時は「MAC=整合性+送信者認証(対称鍵方式)」と覚えておくと良いです。
  • エ: ルート証明書
    ルート証明書は信頼チェーンの最上位にある公開鍵証明書です。メッセージから生成するものではなく、発行・配布される静的な証明書です。よって該当しません。

よくある誤解

  • 「MAC とハッシュは同じ」と考える誤解:ハッシュ関数(例:SHA-256)はメッセージのダイジェスト(短い値)を作りますが、単独では秘密鍵を使わないため改ざん検知はできても認証(誰が作ったかの保証)や鍵に依存した安全性はありません。MAC は秘密鍵を含めて計算します。
  • 「デジタル署名と MAC は同じ」と思う誤解:デジタル署名は公開鍵暗号を使い、非否認性(送信者が否定できない)を提供します。MAC は対称鍵方式で、署名のような非否認性は基本的にありません(複数者で鍵を共有していれば誰が作ったか区別できない)。
  • 「パリティビットで十分」と考える誤解:パリティビットは偶発的エラーの検出には使えるが、悪意ある改ざん(攻撃者の書き換え)を防ぐ暗号的な保証はありません。

補足コラム

  • ブロック暗号から作る MAC の代表例:
    • CBC-MAC:ブロック暗号の CBC(Cipher Block Chaining)モードを利用し、最終ブロックをタグとする。シンプルだが使い方に注意が必要。
    • CMAC:CBC-MAC の問題点を解消した標準的な方式。AES(Advanced Encryption Standard:米国標準のブロック暗号)と組み合わせて使われることが多い。
    • GMAC:Galois/Counter Mode を使った高速な MAC(AES-GCM のタグ部分)。
  • 運用上の注意(職場でのイメージ):
    • MAC を使う場合は「共通の秘密鍵」を送信者・受信者で持ちます。鍵の配布・保存が重要です(鍵管理)。
    • API の認証やファイル転送の整合性確認に使われます。送信側がメッセージと一緒に MAC タグを添付し、受信側が再計算して一致確認します。
簡単なイメージ(擬似コード)
# 擬似コード:CBC-MAC の概念
key = shared_secret_key
blocks = split_into_blocks(message)
iv = 0
for block in blocks:
    iv = AES_encrypt(key, xor(iv, block))
mac = iv  # 最後のブロックが MAC

FAQ

Q. ハッシュ関数だけではなぜダメですか?
A. ハッシュはメッセージの要約を作りますが、秘密鍵を使わないため攻撃者がメッセージを書き換えて正しいハッシュも計算し直せば検知できません。MAC は秘密鍵を含めるため、鍵が分からない攻撃者は正しいタグを作れません。
Q. デジタル署名と MAC、どちらを使うべきですか?
A. 相手が限定され、鍵を安全に共有できるなら MAC(高速、対称鍵)。第三者も検証でき、否認防止が必要ならデジタル署名(公開鍵方式)を使います。
Q. ブロック暗号以外で MAC を作れますか?
A. はい。HMAC(Hash-based MAC)はハッシュ関数を用いた標準的な MAC です。用途や性能で使い分けます。

関連キーワード: メッセージ認証符号、MAC、CBC-MAC、CMAC、HMAC、ブロック暗号、整合性検査、改ざん検知、パリティビット、PKI、ルート証明書、デジタル署名、鍵管理
← 前の問題へこの年度をクイズで解く次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

情報セキュリティマネジメント
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

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

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