Forse una vista non molto tecnica aiuta a capire il problema ...
Basti pensare a una busta che contiene il messaggio e l'hashsum. È possibile perforare la busta e capovolgere determinati bit del messaggio. Puoi anche dare un pugno dov'è l'hashsum e cambiarne i bit. Tuttavia, dato che non puoi guardare all'interno della busta, non hai (quasi) nessuna possibilità di capovolgere l'hashsum in un modo che fornisca il valore corretto per il messaggio modificato.
Quando il ricevitore apre la busta vedono un messaggio e un hashsum che non corrispondono - una chiara indicazione che qualcosa è stato modificato, il messaggio, il checksum o entrambi.
Modifica:
Ok, più tecnico ...: -)
Considera il seguente messaggio M, che trasferisco in testo semplice.
Please transfer 100$ to my account.
il suo hashsum (SHA1) è 5f7e22d270ca9da68543e3f97f30f1859e20a88a.
Il MAC risultante è
f56c10e4264a5173aa97660f7438fc0e12618d1e
Questo MAC è l'hashsum che ho crittografato con una password segreta. È possibile modificare liberamente il messaggio e il MAC, ma non è possibile capire come modificare il MAC in modo che, quando decrittalo, fornisca l'hashsum corretto, corrispondente al messaggio modificato. Di conseguenza, quando decrypt, noterò che l'hashsum non corrisponde al messaggio e qualcosa è stato modificato.
Questo è tutto ciò che riguarda un MAC, che rileva le modifiche.