読み方 : シーマック

CMAC【Cipher-based Message Authentication Code】

概要

CMACとは、共通鍵暗号方式を用いてメッセージ認証コードを生成する方式の一つ。データの改竄検知や、送信者が本人であることの確認に用いられる。
CMACのイメージ画像

ブロック暗号を利用して固定長認証タグを生成する仕組みである。送信者は受信者と共有した秘密鍵を用いてメッセージから認証タグを計算し、受信者は同じ鍵で再計算した結果と照合することで、データが途中で改竄されていないかを検証する。暗号化そのものが目的ではなく、メッセージの完全性と正当性を確認することが目的である。

CMACは従来方式のCBC-MACを改良したものである。CBC-MACは固定長データでは安全だがメッセージの長さが変化した場合に偽造が容易になるという弱点があった。CMACはメッセージの最終ブロックの処理方法を工夫し、可変長メッセージに対しても耐偽造性を確保して安全に適用することができる。

符号の算出に用いる暗号方式に指定や制限はないが、広く普及している標準規格のAESAdvanced Encryption Standard)と組み合わせて利用されることが多く、その場合は「AES-CMAC」とも呼ばれる。AESの安全性を前提としつつ、追加の複雑な構造を必要としないため、AESライブラリなどがすでに提供されている組み込み機器などへの実装に適している。

CMACのアルゴリズム米国立標準技術研究所NIST)によって「NIST SP 800-38B」として標準化されており、広く公開されている。各種セキュリティプロトコルICカード、車載機器、IoTデバイスなどで利用されている。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。