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 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.
Pre-processing A 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 Sia M il messaggio. Si suddivide il messaggio M in blocchi di n bit. , che significa riempire Y 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 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 CBC-MAC
Collegamenti esterni Tetsu Iwata (2006) OMAC: One-Key CBC MAC T. Iwata and K. Kurosawa. OMAC: One-Key CBC MAC. NIST submission (December 20, 2002). T. Iwata and K. Kurosawa. OMAC test vectors. NIST submission (December 20, 2002). T. Iwata and K. Kurosawa. OMAC: One-Key CBC MAC --- addendum. NIST submission (March 10, 2003). T. Iwata and K. Kurosawa. Stronger security bounds for OMAC, TMAC and XCBC. Comment to NIST (April 30, 2003). T. Iwata. Comparison of CBC MAC variants and comments on NIST's consultation paper. Comment to NIST (May 5, 2003).
Categoria:Hash crittografici