OMAC/CMAC: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 12:
==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.
Riga 19:
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 <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.[[Image: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==
|