OMAC/CMAC
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.
OMAC1
modificaLe 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.
Pre-processing
modificaA questo punto il processo di generazione si articola nei seguenti passi:
- Per prima cosa si 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. Chiameremo il risultato . Quindi , che equivale a quanto detto prima. In caso contrario , dove is the n-bit constant.
- Si controlla il bit più significativo di . Se è pari a 0 allora , diversamente .
- A questo punto si memorizzano sia che .
Generazione del codice MAC
modificaSia M il messaggio. Si suddivide il messaggio M in blocchi di n bit.
- , che significa riempire Y[0] con un numero n di 0.
- Per ogni i da 1 a m-1: .
- Se la lunghezza dell'ultimo blocco del messaggio è di n bit allora , altrimenti effettua il padding sull'ultimo blocco aggiungendo 1 seguito da tanti 0 quanti sono necessari a ricondurre il blocco ad una lunghezza di n bit e poi calcola .
- .
- Il codice MAC sarà il troncamento di T a t bit.
Bibliografia
modifica- (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).
Voci correlate
modificaCollegamenti esterni
modifica- (EN) Tetsu Iwata (2006) OMAC: One-Key CBC MAC
- (EN) (PDF)T. Iwata and K. Kurosawa. OMAC: One-Key CBC MAC. NIST submission (December 20, 2002).
- (EN) (PDF)T. Iwata and K. Kurosawa. OMAC test vectors. NIST submission (December 20, 2002).
- (EN) (PDF)T. Iwata and K. Kurosawa. OMAC: One-Key CBC MAC --- addendum. NIST submission (March 10, 2003).
- (EN) (PDF)T. Iwata and K. Kurosawa. Stronger security bounds for OMAC, TMAC and XCBC. Comment to NIST (April 30, 2003).
- (EN) (PDF)T. Iwata. Comparison of CBC MAC variants and comments on NIST's consultation paper. Comment to NIST (May 5, 2003).