OMAC/CMAC
OMAC è un codice di autenticazione per messaggi basato su cifratura a blocchia progettato da Tetsu Iwata e Kaoru Kurosawa della Nagoya University. OMAC è una semplice variante del CBC-MAC (Cipher Block Chaining Message Authentication Code). L'acronimo OMAC sta per One-Key CBC-MAC. OMAC è sicuro per messaggi di qualsiasi lunghezza a differenza di CBC-MAC che lo è soltato per messaggi di lunghezza fissa.
OMAC è il nome generico per OMAC1 e OMAC2. Secondo le specifiche del NIST, OMAC1 è equivalente a CMAC.
OMAC1
Le operazioni preliminari sono la scelta di un algoritmo di crittografia a blocchi 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:
- Per prima cosa di cripta un blocco di n bit tutti pari a 0 (chiamiamolo 0n) ottenendo un certo valore .
- Si controlla se il bit più significativo di L è 0: se ciò accade si effettua uno shift di un bit nella direzione del bit più significativo. Il bit più significativo viene, quindi, scartato ed uno 0 viene posto nel bit meno significativo.
OMAC2
Bibliografia
- (EN) (PDF)T. Iwata and K. Kurosawa. OMAC: One-Key CBC MAC. Fast Software Encryption, FSE 2003, LNCS 2887, pp. 129--153. Springer-Verlag (February 24, 2003, Lund, Sweden).