OMAC è un codice di autenticazione per messaggi basato su cifratura a blocchi, progettato da Tetsu Iwata e Kaoru Kurosawa della Nagoya University; si tratta di una semplice variante del CBC-MAC (Cipher Block Chaining Message Authentication Code). L'acronimo OMAC sta per One-Key CBC-MAC.
È sicuro per messaggi di qualsiasi lunghezza, a differenza di CBC-MAC, che lo è soltanto per messaggi di lunghezza fissa.
OMAC è il nome generico per OMAC1 e OMAC2. Secondo le specifiche del NIST, OMAC1 è equivalente a CMAC.
Le operazioni preliminari sono la scelta di un algoritmo di crittografia a blocchi (indicheremo con n la lunghezza in bit del blocco) e della lunghezza del codice CMAC . Non ci sono restrizioni sull'algoritmo crittografico da utilizzare.
Occorre, inoltre, che i due interlocutori condividano una chiave segreta di bit che servirà come chiave per l'algoritmo precedentemente selezionato.
A questo punto il processo di generazione si articola nei seguenti passi:

Sia M il messaggio. Si suddivide il messaggio M in blocchi di n bit.