---
title: "メッセージ認証とは？MAC・電子署名との違い【SG試験】"
description: "メッセージ認証は、データの改ざん有無や送信者の正しさを確認する考え方です。SG試験でMAC、電子署名、否認防止を混同しないように、共有鍵を使うのか公開鍵で第三者に証明できるのか、何を確認したい場面なのかを比較して整理します。"
last_modified_at: "2026-06-24"
canonical_url: "https://stemtazoo.github.io/sg/message-authentication/"
section: "sg"
---

## まず結論
メッセージ認証とは、**データが改ざんされていないこと**と**送信者が正しいこと**を確認する考え方です。SG試験では、MACや電子署名などの具体的な仕組みを選ばせる問題として問われます。

---

## 直感的な説明
たとえば、契約書を紙でやり取りするとき、

- 内容が途中で書き換えられていないか（改ざん防止）
- 本人が書いたものか（なりすまし防止）

を確認したいですよね。

これをデジタルで実現したのがメッセージ認証です。

**「封筒の中身が変わっていない＋送り主が本物」**  
この2つを同時にチェックするイメージです。

---

## 定義・仕組み
メッセージ認証は、主に次の2つの技術を組み合わせて実現します。

- ハッシュ関数  
- 公開鍵暗号（電子署名）

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

### 送信側
1. メッセージからハッシュ値を作る  
2. そのハッシュ値を**秘密鍵で暗号化（署名）**する  
3. メッセージと署名を送る  

### 受信側
1. メッセージからハッシュ値を再計算する  
2. 署名を**公開鍵で復号**してハッシュ値を取り出す  
3. 2つのハッシュ値を比較する  

→ 一致すればOK

- 改ざんされていない（完全性）
- 送信者が正しい（認証）

SG試験ではこの流れを丸暗記するのではなく、

👉 **「送信者は秘密鍵」「受信者は公開鍵」**

この対応関係を押さえることが重要です。

---

## どんな場面で使う？
### よく使われる場面
- 電子メールの送信（なりすまし防止）
- ソフトウェア配布（改ざん検知）
- 電子契約（本人確認）

### SG試験での出題ポイント
SG試験では、

- 「改ざん検知なのか？」
- 「送信者確認なのか？」
- 「両方なのか？」

を判断させる問題が多いです。

👉 メッセージ認証は **両方を満たす仕組み**

---

## よくある誤解・混同

### ❌ ハッシュで元のメッセージに戻せる
→ できない（不可逆）

SG試験では  
「ハッシュ値を復号して元のメッセージを得る」  
と書かれていたら即NGです。

---

### ❌ 送信者は公開鍵で署名する
→ 逆です

- 正：秘密鍵で署名
- 誤：公開鍵で署名

👉 ここは超頻出のひっかけです

---

### ❌ 暗号化＝メッセージ認証
→ 役割が違う

- 暗号化：盗み見防止（機密性）
- メッセージ認証：改ざん検知＋送信者確認

👉 SG試験では「機密性」と「完全性」を混同させてくる

---

### ❌ 秘密鍵のハッシュ値を送る
→ 意味がない

送るのは  
👉 **メッセージのハッシュ値に対する署名**

---

## まとめ（試験直前用）
- メッセージ認証＝改ざん検知＋送信者確認  
- 送信者：ハッシュ作成 → 秘密鍵で署名  
- 受信者：ハッシュ再計算＋公開鍵で検証  
- 「秘密鍵で署名・公開鍵で確認」が判断基準  
- ハッシュは元に戻せない（ここを狙った誤りに注意）
