sg cryptography authentication integrity security_measures
まず結論
MAC(Message Authentication Code:メッセージ認証コード)とは、共通鍵を使ってメッセージが改ざんされていないかを確認するための仕組みです。
SG試験では、次のように押さえると判断しやすくなります。
- MAC:共通鍵で、改ざん検知と送信者の確認を行う
- デジタル署名:公開鍵暗号で、改ざん検知となりすまし防止・否認防止を行う
- 暗号化:内容を読めないようにする
- ステガノグラフィ:情報の存在そのものを隠す
特に、MACは「暗号化して秘密にする技術」ではなく、改ざんされていないことを確認する技術として理解するのがポイントです。
直感的な説明
MACは、メッセージに付ける封印シールのようなものです。
送信者は、メッセージと秘密の鍵を使ってMAC値を作ります。
受信者も同じ秘密の鍵を使ってMAC値を計算し、送られてきたMAC値と一致するか確認します。
一致すれば、
- メッセージが途中で書き換えられていない
- 同じ鍵を持つ正当な相手が作成した可能性が高い
と判断できます。
逆に、途中でメッセージが1文字でも変わると、計算されるMAC値が変わるため、改ざんに気づけます。
定義・仕組み
MACは、メッセージと共通鍵から生成される短い認証用データです。
基本的な流れは次のとおりです。
- 送信者が、メッセージと共通鍵からMAC値を作る
- メッセージとMAC値を一緒に送る
- 受信者が、受け取ったメッセージと同じ共通鍵からMAC値を再計算する
- 送られてきたMAC値と一致するか確認する
- 一致すれば改ざんなし、不一致なら改ざんの可能性ありと判断する
ここで重要なのは、送信者と受信者が同じ共通鍵を持っているという点です。
そのためMACは、公開鍵暗号を使うデジタル署名とは仕組みが異なります。
どんな場面で使う?
MACは、通信やデータのやり取りで、内容が途中で変えられていないか確認したい場面で使われます。
たとえば、次のような場面です。
- API通信で、リクエストが改ざんされていないか確認する
- メッセージが正当な相手から送られたものか確認する
- 通信データの完全性を確認する
- 共有鍵を使うシステムで、送信元の正当性を確認する
SG試験では、MACを「データを隠す技術」としてではなく、認証と完全性確認のための技術として見ると選択肢を切りやすくなります。
よくある誤解・混同
MACと暗号化の違い
MACは、メッセージの内容を読めなくする仕組みではありません。
- MAC:改ざんされていないか確認する
- 暗号化:第三者に内容を読まれないようにする
問題文に「盗聴を防ぐ」「内容を秘匿する」とあれば、MACではなく暗号化の話です。
MACとハッシュの違い
ハッシュは、データから固定長の値を作る仕組みです。
ただし、通常のハッシュだけでは、誰でも同じハッシュ値を計算できます。
そのため、攻撃者がメッセージを書き換えて、新しいハッシュ値を付け直すこともできてしまいます。
一方、MACは共通鍵を使うため、鍵を知らない人は正しいMAC値を作れません。
- ハッシュ:データの要約値を作る
- MAC:鍵を使って、改ざん検知と送信者確認を行う
MACとデジタル署名の違い
MACとデジタル署名は、どちらも改ざん検知に使われます。
ただし、鍵の使い方と目的が違います。
| 項目 | MAC | デジタル署名 |
|---|---|---|
| 鍵 | 共通鍵 | 秘密鍵・公開鍵 |
| 主な目的 | 改ざん検知、送信者確認 | 改ざん検知、本人確認、否認防止 |
| 否認防止 | 弱い | 強い |
| ポイント | 同じ鍵を共有する | 秘密鍵で署名し、公開鍵で検証する |
MACでは、送信者と受信者が同じ鍵を持っています。
そのため、あとから「どちらがMAC値を作ったか」を第三者に証明しにくく、否認防止には向きません。
否認防止が問われたら、デジタル署名を選ぶのが基本です。
MACとステガノグラフィの違い
ステガノグラフィは、画像や音声などの中に別のデータを埋め込み、情報の存在そのものを隠す技術です。
一方、MACは、メッセージの存在を隠すのではなく、メッセージが改ざんされていないかを確認する技術です。
- MAC:改ざん検知、認証
- ステガノグラフィ:情報を隠して存在を気づかれにくくする
問題文に「画像データにメッセージを埋め込む」「存在を隠す」とあれば、MACではなくステガノグラフィです。
MACアドレスとの違い
同じ「MAC」でも、ネットワークで出てくるMACアドレスとは別物です。
- MAC(Message Authentication Code):メッセージ認証コード
- MACアドレス:ネットワーク機器の識別番号
SG試験では、文脈で判断します。
「改ざん」「認証」「メッセージ」「共通鍵」が出てきたら、メッセージ認証コードのMACです。
「LAN」「NIC」「物理アドレス」「機器識別」が出てきたら、MACアドレスです。
SG試験での判断ポイント
MACが選択肢に出たら、次の観点で判断します。
| キーワード | 選ぶべき技術 |
|---|---|
| 改ざん検知、共通鍵、メッセージ認証 | MAC |
| 否認防止、秘密鍵で署名、公開鍵で検証 | デジタル署名 |
| 内容を読めなくする、盗聴対策 | 暗号化 |
| 画像や音声に埋め込む、存在を隠す | ステガノグラフィ |
| 固定長の要約値、メッセージダイジェスト | ハッシュ |
特に、MACは完全性確認とメッセージ認証の文脈で出やすいです。
確認問題
確認問題:MACの説明として最も適切なものはどれか
次のうち、MAC(Message Authentication Code)の説明として最も適切なものはどれか。 - ア:画像データなどにメッセージを埋め込み、メッセージの存在そのものを隠す。 - イ:メッセージの改ざんを検出し、送信者が同じ共通鍵を持つ相手であることを確認する。 - ウ:メッセージを暗号化して、通信途中で第三者に読まれないようにする。 - エ:公開鍵を使って署名を検証し、否認防止を実現する。 **正解:イ** MACは、共通鍵を使ってメッセージ認証コードを生成し、受信側で再計算した値と比較することで、改ざんの有無を確認します。 アはステガノグラフィ、ウは暗号化、エはデジタル署名の説明です。まとめ(試験直前用)
- MACは、共通鍵を使ってメッセージの改ざんを検出する仕組み
- 「内容を隠す」なら暗号化、「存在を隠す」ならステガノグラフィ
- 否認防止まで問われたら、MACではなくデジタル署名を選ぶ
MACは、暗号技術の細かい計算方法よりも、何を守る技術なのかを押さえることが大切です。
SG試験では「改ざん検知」「共通鍵」「メッセージ認証」という言葉を手がかりに判断しましょう。