---
title: "メッセージ認証符号（MAC）とは？共有鍵で改ざんを検知する仕組み【SG試験】"
description: "メッセージ認証符号（MAC）は、共有鍵を使ってメッセージの改ざん有無と送信元の正しさを確認する仕組みです。ハッシュ、電子署名、否認防止との違いを、共有鍵か公開鍵か、第三者に証明できるかで整理します。完全性と真正性の範囲を見極めます。受信者だけが確認できる点も誤答回避に役立ちます。"
last_modified_at: "2026-06-24"
canonical_url: "https://stemtazoo.github.io/sg/message-authentication-code/"
section: "sg"
---

## まず結論
メッセージ認証符号（MAC）は、**共有鍵を使って、メッセージの改ざん有無と送信者の正しさを確認する仕組み**です。
SG試験では「共有鍵を使うが、電子署名のような否認防止までは弱い」と切り分けます。

---

## このページで切り分けること（先にここだけ）

このページは、**MAC（メッセージ認証符号）の役割**を中心に整理します。

- MAC：改ざん検知と送信者確認（共有鍵ベース）
- 電子署名：改ざん検知＋本人証明＋否認防止（公開鍵ベース）
- ハッシュ：改ざん検知の材料になるが、鍵を使わない

> 迷ったら、
> **「共有鍵で照合する話か」** を見ます。
> 共有鍵でメッセージの正しさを確かめるならMACです。

## SG試験で選択肢を切る判断軸（MAC編）

- 「送受信者が同じ秘密（共有鍵）を持つ」と書かれている
  → MACの話

- 「秘密鍵で署名し、公開鍵で検証する」と書かれている
  → 電子署名の話

- 「MACで内容を秘匿する（暗号化する）」と書かれている
  → 誤り。MACの主目的は改ざん検知と送信者確認

## 関連記事との役割分担（混同防止）

- MACと電子署名の違いを先に見たい → [MACとデジタル署名の違いとは？改ざん検知と否認防止で整理【SG試験】](https://stemtazoo.github.io/sg/mac-vs-digital-signature/)
- 電子署名の仕組みを確認したい → [電子署名とは？本人証明と改ざん検知を整理【SG試験】](https://stemtazoo.github.io/sg/digital-signature/)
- HMACを確認したい → [HMACとは？ハッシュと共通鍵でメッセージを認証する仕組み【SG試験】](https://stemtazoo.github.io/sg/hmac/)

---

## 直感的な説明
荷物に「封印シール」を貼るイメージです。

- 送るとき → メッセージから「チェック用の値（MAC）」を作る  
- 受け取るとき → 同じ方法で計算して一致するか確認する  

一致すれば「途中で開けられていない（改ざんされていない）」と判断できます。

👉 **中身を見るのではなく、“変わっていないか”を確認する仕組み**です。

---

## 定義・仕組み
メッセージ認証符号（MAC：Message Authentication Code）は、

- メッセージ  
- 共有鍵（秘密のキー）

を使って計算される値です。

基本の流れはシンプルです。

1. 送信側  
   - メッセージ + 共有鍵 → MACを生成  
   - メッセージとMACを送る

2. 受信側  
   - 同じ方法でMACを再計算  
   - 受信したMACと一致するか確認

一致すれば  
→ **改ざんされていないと判断**

SG試験では細かい計算方法ではなく、  
👉 **「生成して照合する」流れが理解できているか** が重要です。

---

## どんな場面で使う？
### 使う場面
- 通信データの改ざんチェック（API通信・ログ転送など）
- システム間連携でのデータの信頼性確認
- 業務システムで「データが途中で書き換えられていないか」の確認

👉 現場では  
**「正しい相手から来て、内容が変わっていないか」を確認する用途**で使います。

---

### 使うと誤解しやすい場面
- 内容を隠したい（機密性）  
→ MACは**暗号化ではない**

---

## よくある誤解・混同
SG試験ではここがよく狙われます。

### ❌ MACは暗号化の仕組み
→ ⭕ **改ざん検知の仕組み（内容は隠さない）**

---

### ❌ パリティビットと同じ
→ ⭕  
- パリティビット：単純な誤り検出  
- MAC：**鍵を使った改ざん検知（セキュリティ用途）**

---

### ❌ 電子署名と同じ
→ ⭕  
- 電子署名：公開鍵を使う（なりすまし防止・否認防止）  
- MAC：**共有鍵を使う（改ざん検知）**

---

### ❌ PKIや証明書と同じ
→ ⭕  
- PKI・証明書：鍵の信頼性を保証する仕組み  
- MAC：**データの改ざん確認**

---

👉 SG試験では  
**「改ざん確認 → MAC」  
「なりすまし＋否認防止 → 電子署名」**  
で切り分けるのが重要です。

---

## 確認問題（SG試験対策）

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

- ア. PKI
- イ. パリティビット
- ウ. メッセージ認証符号
- エ. ルート証明書

<details markdown="1">
<summary>▶ クリックして答えと解説を見る（ここを開く）</summary>

**正解：ウ**

### 解説
- ア：PKIは公開鍵証明書の信頼性を支える基盤であり、メッセージ本体から直接生成する値ではありません。
- イ：パリティビットは単純な誤り検出用で、暗号鍵を使った改ざん検知とは異なります。
- ウ：メッセージ認証符号（MAC）は、メッセージと共有鍵から生成し、受信側で照合して改ざん有無を確認します。
- エ：ルート証明書は証明書チェーンの信頼の起点であり、メッセージ改ざん確認の生成値ではありません。

👉 判断ポイント  
**「メッセージから生成して照合する改ざん検知」ならMACを選ぶ。**

</details>

## まとめ（試験直前用）
- MACは**メッセージから生成して照合する改ざん検知の仕組み**
- 共有鍵を使うのがポイント
- 暗号化ではない（内容は隠さない）
- 電子署名との違いを必ず区別する
- 「改ざん確認」と書かれていたらMACを疑う

👉 判断基準  
**改ざんチェック → MAC  
本人証明 → 電子署名**
