Il testo è tratto dalla famosa risposta: Lezioni apprese e idee sbagliate riguardo la crittografia e la crittologia: non usare crittografia senza autenticazione dei messaggi
Alternatively, you can apply your own message authentication, as follows. First, encrypt the message using an appropriate symmetric-key encryption scheme (e.g., AES-CBC). Then, take the entire ciphertext (including any IVs, nonces, or other values needed for decryption), apply a message authentication code (e.g., AES-CMAC, SHA1-HMAC, SHA256-HMAC), and append the resulting MAC digest to the ciphertext before transmission. On the receiving side, check that the MAC digest is valid before decrypting. This is known as the encrypt-then-authenticate construction. (See also: 1, 2.) This also works fine, but requires a little more care from you.
È davvero corretto? Se un utente malintenzionato cambia un testo cifrato, può semplicemente generare un nuovo MAC per quel testo cifrato e aggiungerlo al posto di un MAC precedente. No? Non dovresti usare MAC su un testo semplice?