CMAC
CMAC ist ein auf einer Blockchiffre aufbauender Nachrichtenauthentifizierungscode und existiert, weil CBC-MAC mit Nachrichten variabler Länge nicht zurechtkommt.
CBC-MAC ist einfach und funktioniert nur bei Nachrichten fester Länge. Wer nach einem bekannten Tag Blöcke anhängen kann, kann neue Tags fälschen – die Grundlage mehrerer Angriffe. Iwata und Kurosawa schlugen 2003 OMAC vor, aus dem später CMAC wurde. Es löst das Problem durch eine schlüsselabhängige Maskierung des letzten Blocks.
NIST standardisierte es 2005 als SP 800-38B, RFC 4493 spezifizierte 2006 AES-CMAC. Heute ist es eine naheliegende Wahl, kam aber zu spät, um CBC-MAC in den bereits verbreiteten Protokollen zu retten.