OMAC/CMAC: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m smistamento lavoro sporco e fix vari using AWB
 
(18 versioni intermedie di 11 utenti non mostrate)
Riga 1:
'''OMAC''' è un codice di autenticazione per messaggi basato su cifratura a blocchiablocchi, 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'''.
<noinclude>{{WIP|Gasparef}}</noinclude>
{{S|crittografia}}
 
OMAC èÈ sicuro per messaggi di qualsiasi lunghezza, a differenza di CBC-MAC, che lo è soltatosoltanto per messaggi di lunghezza fissa.
'''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 [[National Institute of Standards and Technology|NIST]], OMAC1 è equivalente a CMAC.
 
 
__TOC__
 
==OMAC1==
Le operazioni preliminari sono la scelta di un algoritmo di crittografia a blocchi <math>E</math> (indicheremo con n la lunghezza in bit del blocco) e della lunghezza del codice CMAC <math>t</math>.
Non ci sono restrizioni sull'algoritmo crittografico da utilizzare.
 
Occorre, inoltre, che i due interlocutori condividano una chiave segreta di <math>k</math> bit che servirà come chiave per l'algoritmo <math>E</math> precedentemente selezionato.
 
===Pre-processing===
A questo punto il processo di generazione si articola nei seguenti passi:
# Per prima cosa disi cripta un blocco di n bit tutti pari a 0 (chiamiamolo 0n) ottenendo un certo valore <math>L=E\ (K,\ 0n)</math>.
# 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 <math>L.u</math>. Quindi <math>L.u\ =L<<1</math>, che equivale a quanto detto prima. In caso contrario <math>L.u=L<<1\oplus Costante</math>, dove <math>Costante</math> is the n-bit constant.[[File:Shift omac.png|none]]
# Si controlla il bit più significativo di <math>L.u</math>. Se è pari a 0 allora <math>L.u^2=\ (L.u)<<1</math>, diversamente <math>L.u^2=\ ((L.u)<<1)\oplus Costante</math>.
 
# A questo punto si memorizzano sia <math>L.u</math> che <math>L.u^2</math>.
==OMAC2==
 
 
===Generazione del codice MAC===
Sia M il messaggio. Si suddivide il messaggio M in blocchi di n bit.
#<math>Y[0]=0^n</math>, che significa riempire Y[0] con un numero n di 0.
#Per ogni i da 1 a m-1: <math>Y[i] = E(K, M[i] \oplus Y[i-1])</math>.
#Se la lunghezza dell'ultimo blocco del messaggio è di n bit allora <math>X[m] = M[m] \oplus Y[m-1] \oplus L.u</math>, 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 <math>X[m] = M[m] \oplus Y[m-1] \oplus L.u^2</math>.
#<math>T\ = E(K, X[m])</math>.
#Il codice MAC sarà il troncamento di T a t bit.
 
==Bibliografia==
* {{en}}{{pdf}}T. Iwata and K. Kurosawa. [http://www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/docs/omac.pdf OMAC: One-Key CBC MAC]. Fast Software Encryption, FSE 2003, LNCS 2887, pp. 129--153&nbsp;129–153. Springer-Verlag (February 24, 2003, Lund, Sweden).
 
==Voci correlate==
*[[CBC-MAC]]
 
==Collegamenti esterni==
* {{en}}Tetsu Iwata (2006) [http://www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/omac.html OMAC: One-Key CBC MAC]
* {{en}}{{pdf}}T. Iwata and K. Kurosawa. [http://www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/docs/omac-sp.pdf OMAC: One-Key CBC MAC]. NIST submission (December 20, 2002).
* {{en}}{{pdf}}T. Iwata and K. Kurosawa. [http://www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/docs/omac-tv.pdf OMAC test vectors]. NIST submission (December 20, 2002).
* {{en}}{{pdf}}T. Iwata and K. Kurosawa. [http://www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/docs/omac-ad.pdf OMAC: One-Key CBC MAC --- addendum]. NIST submission (March 10, 2003).
* {{en}}{{pdf}}T. Iwata and K. Kurosawa. [http://www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/docs/omac-cm1.pdf Stronger security bounds for OMAC, TMAC and XCBC]. Comment to NIST (April 30, 2003).
* {{en}}{{pdf}}T. Iwata. [http://www.nuee.nagoya-u.ac.jp/labs/tiwata/omac/docs/omac-cm2.pdf Comparison of CBC MAC variants and comments on NIST's consultation paper]. Comment to NIST (May 5, 2003).
 
{{Hash e MAC}}
{{Portale|crittografia}}
 
[[Categoria:Hash crittografici]]