メインコンテンツへ
セキュリティ

メッセージ認証コード(MAC)とデジタル署名を比較したとき、デジタル署名だけが提供できる特性として、最も適切なものはどれか。

ア.送信したデータが通信経路上で改ざんされていないことを検知できる
イ.メッセージの送信者が正当な相手であることを確認できる
ウ.送信者があとから「送っていない」と主張することを防ぐ否認防止の機能を提供できる正解
エ.メッセージの内容を第三者に読まれないように秘匿できる

解説

MACは「合鍵を持つ二人だけの約束」、デジタル署名は「本人しか押せない印鑑」です。合鍵が二人にあると「俺が押した」「いや君が押した」の水掛け論が起きますが、秘密鍵は本人だけのものなので言い訳できません。

なぜ ウ が正解か

デジタル署名では、署名に使う秘密鍵は送信者だけが保持します。受信者(および第三者)は送信者の公開鍵で署名を検証できるため、「この署名は秘密鍵の持ち主にしか生成できない」と客観的に証明できます。一方MACは共通鍵を送受信者の双方が持つため、「受信者が自分でMACを作って改ざんしたかもしれない」という反論を否定できず、否認防止には使えません。

なぜ ア は間違いか

改ざん検知はMACも同様に実現できます。MACはメッセージと共通鍵をもとにハッシュ値を生成するため、通信経路で1ビットでも変わると受信側の計算値と一致しなくなります。改ざん検知はむしろMACが得意とする機能です。

なぜ イ は間違いか

送信者認証もMACで実現できます。「この共通鍵を知っているのは正規の送受信者だけ」という前提のもと、正しいMACを生成できた時点で正当な相手だと確認できます。ただし認証できる範囲は同じ鍵を共有している当事者間に限られます。

なぜ エ は間違いか

MACもデジタル署名も、メッセージを暗号化して秘匿する機能は持ちません。どちらも「誰が・どんな内容を送ったか」の真正性を保証する仕組みであり、秘匿が必要な場合はAESなどの暗号化と別途組み合わせて使います。

出典: AI生成問題(学習用)