システムアーキテクト暗記無料で始める

メッセージ認証符号(MAC・HMAC)とは?めっせーじにんしょうふごう

メッセージ認証符号(MAC・HMAC)とは、共有した秘密鍵とメッセージから固定長の値を計算して添え、受信側が同じ計算をして一致を見ることで、改ざんの検知と送信元の確認を一度に済ませる仕組み。ハッシュ関数を鍵と二重に組み合わせて構成したものがHMACで、HMAC-SHA256の形で広く使われる。公開鍵暗号による署名より計算が軽く、高頻度のAPI呼出しや大量の通信の真正性確認に向く。

最終更新:2026-10-06

試験情報

システムアーキテクト試験の頻出用語/午前II

別名:メッセージ認証符号、MAC・HMAC、MAC、HMAC

システムアーキテクトを最短で暗記・合格する →

背景

ハッシュ値を付けるだけでは、途中で本文とハッシュ値を両方作り替えられれば検知できない。鍵を知らなければ正しい値を作れない形にすることで、改ざんと送信元の確認を一度に済ませられる。公開鍵による署名でも同じことはできるが、毎回の呼出しで署名検証を行うには重い。処理量と保証の強さのどちらを取るかという、方式設計そのものの選択になる。

具体例

GitHubやStripeのWebhookは、本文と事前共有した鍵から算出したHMAC-SHA256をヘッダに付けて送り、受信側が同じ計算をして一致を確かめる。JSON Web TokenのHS256も同じ考え方で、鍵配布する相手が自社内に限られるならこちらを、多数の外部に検証させたいなら公開鍵方式のRS256を選ぶ。

試験での引っ掛け

デジタル署名と違って否認防止の効果はない。鍵を両者が持つため受信者も同じ値を作れてしまい、第三者に対して「送信者が作った」ことを証明できないからである。多数の相手に検証させたい場合は公開鍵方式の署名を選ぶ。

関連用語

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

システムアーキテクトを最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • デジタル署名と違って否認防止の効果はない。