"È necessario crittografare il digest del messaggio?" e
"È necessario crittografare l'hash del messaggio?"
Sì, poiché altrimenti:
Un intercettatore potrebbe determinare, con una precisione schiacciante, quali coppie di coppie [core ciphertext + hash] sono per lo stesso messaggio. (Le seguenti tre frasi non si applicano se hai usato un MAC invece di un hash.) Un intercettatore potrebbe testare qualsiasi ipotesi al messaggio per conto proprio. Se usi la modalità CTR , allora un avversario che conosce il testo in chiaro potrebbe modificare un [testo cifrato core + hash] coppia per fornire qualsiasi testo in chiaro di loro scelta. Se esiste uno schema di crittografia sicuro, ce n'è uno per il quale
approccio permetterebbe ad un avversario di generare coppie [core ciphertext + hash] che decodificheranno
su testi in chiaro arbitrari, anche senza aver visto coppie legittime [core ciphertext + hash].
"Non possiamo inviare il messaggio crittografato insieme al digest del messaggio non criptato?"
potresti "inviare il messaggio crittografato insieme al digest del messaggio non criptato";
tuttavia, ciò sarebbe ancora meno sicuro di quello che stai facendo.
Il tuo approccio non è sicuro.
Vedi Crittografia autenticata contro checksum / hash contenuti e crittografati ?
e Dovremmo MAC-then-encrypt o encrypt-then -MAC? .