CBC-MAC
In crittografia, un Cipher Block Chaining Message Authentication Code, abbreviato CBC-MAC, è una tecnica per costruire un codice di autenticazione di messaggio usando un cifrario a blocchi. Il messaggio è crittografato con qualche algoritmo di crittografia a blocchi in modalità CBC per creare una catena di blocchi in cui ognuno di essi dipende dalla cifratura del blocco precedente. Questa interdipendenza assicura che un cambiamento ad un qualsiasi bit del testo in chiaro causerà un cambiamento nel blocco finale crittografato che non può essere predetto o calcolato senza conoscere la chiave di codifica.
Per calcolare il CBC-MAC del messaggio m si cripta m in modalità CBC con il vettore di inizializzazione a zero. La figura seguente mostra il calcolo del CBC-Mac di un messaggio diviso in blocchi usando una chiave segreta k e un cifrario a blocchi E.
Lunghezza dei messaggi variabile
Dato un cifrario a blocchi sicuro, CBC-MAC è sicuro per messaggi a lunghezza fissa. Tuttavia, di per sè, non è sicuro per messaggi a lunghezza variabile. Un attaccante che conosce coppie messaggio-codice , può generare un terzo messaggio il cui CBC-MAC sia . Ciò è possibile semplicemente effettuando lo XOR tra il primo blocco di con e quindi concatenando con questa versione modificata di , es.facendo .
Questo problema non può essere risolto aggiungendo un blocco di lunghezza del messaggio (e.g., con Merkle-Damgård strengthening) ed è raccomandato l'uso di una differente modalità operativa, per esempio, CMAC per proteggere l'integrità dei messaggi a lunghezza variabile.
Il template:Tradotto da è stato erroneamente inserito nella voce. Spostarlo nella pagina di discussione.