CBC-MAC: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 4:
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
==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 <math>(m,t)</math>, <math>(m',t')</math> può generare un terzo messaggio <math>m''</math> il cui CBC-MAC sia <math>t'</math>. Ciò è possibile semplicemente effettuando lo XOR tra il primo blocco di <math>m'</math> con <math>t</math> e quindi concatenando <math>m</math> con questa versione modificata di <math>m'</math>, es.facendo <math>m'' = m \| [(m_1' \oplus t) \| m_2' \| \dots \| m_x']</math>.
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.
{{Tradotto da|en|CBC-MAC}}
{{Portale|crittografia}}
| |||