Riservatezza significa che i dati non possono essere decifrati senza una chiave nota. Autenticità significa che puoi verificare crittograficamente che i dati non sono stati manomessi. Un CMAC è un tipo di codice di autenticazione dei messaggi (MAC) che utilizza i codici a blocchi per garantire che un messaggio non sia stato manomesso . In genere viene utilizzato uno schema alternativo, denominato HMAC che utilizza gli hash. Entrambi hanno lo stesso risultato, assicurando che, a meno che tu non conosca la chiave, non puoi manomettere i dati senza che l'altra parte lo sappia.
Pensaci in questo modo. Se invio un messaggio crittografato alla mia armata, "8F0ajc8a Op", quindi con il tasto destro "sekrit", può decifrare su "attack at 4 PM". Con la chiave sbagliata, ovviamente, anche se la chiave che cercano è a un personaggio escluso, come "sikrit", decritterà fino al totale incomprensibile. Ora, se il nemico cattura il messaggio crittografato, non può leggerlo. Si chiama riservatezza. Senza conoscere "sekrit", non avranno idea di quando attaccheremo. Ma cosa succede se possono modificarlo? Potrebbero non sapere in che cosa lo stanno trasformando, ma se modificano solo un pochino, possono farlo decodificare in modi leggermente prevedibili. Non possono far dire quello che vogliono, ma forse possono far dire "attacco alle 21:00" invece. Una piccola differenza, ma abbastanza da poter vincere la battaglia. Cambiare solo una parte del testo crittografato può finire per cambiare solo una parte del testo decrittografato, in questo caso cambia il numero 4 al numero 9. Non sapevano quale numero sarebbe cambiato in, ma sapevano che sarebbe essere abbastanza per confondere le nostre truppe Se tale crittografia utilizzava un tipo di autenticazione, ad esempio un messaggio aggiunto ad esso che è in qualche modo derivato dal messaggio decrittografato, allora si potrebbe facilmente dire se è stata manomessa e nessuno potrebbe modificarlo senza che tu lo sappia, a meno che non lo sappiano la loro chiave è "sekrit". Ora, naturalmente, gli algoritmi MAC sono molto più complessi, così come lo sono i cipher, quindi questo è solo un semplice esempio, ma dovrebbe ottenere il punto.
Come per CBC e ECB ci sono due modalità di crittografia. Ti suggerisco di dare un'occhiata alla pagina di Wikipedia per capirne di più. Dirò comunque che, mentre CBC ha i suoi problemi, la BCE non dovrebbe mai essere usata a meno che tu non stia criptando un blocco di dati, che è 16 byte per AES, altrimenti questo accadrà .