Public key encryption and message integrity Let's say I want to send an encrypted email thus I encrypt it with the receiver's public key, so that the receiver uses its private key to decrypt it. 

If someone tampers with the message in between then


what kind of tampering can be performed?
wouldn't the decryption process fail since the message ought to be malformed due to the tampering?


Does asymmetric encryption like RSA ensure message integrity without hashing the message with an HMAC? Or is hashing necessary only when utilizing symmetric encryption? 

For example at initiation time of the TLS handshake when the client encrypts with the server's public key the symmetric key that's going to be used for the rest of the transaction, does it also uses hashing?
If someone tampers with the message in between a. what kind of tampering can be performed and b. wouldn't the decryption process fail since the message ought to be malformed due to the tampering?


That depends on the format. In general, yes, tampering is detected. That may even be the reason that the protocol is insecure, as it could lead to padding oracle attacks.

Note that an attacker can also simply encrypt a different message as encryption doesn't add integrity or authenticity, and the public key is commonly considered, well, public.


  c. Does asymmetric encryption like RSA ensure message integrity without hashing the message with an HMAC? or is hashing necessary only when utilizing symmetric encryption?


No. Generally the message is first signed and then encrypted. If a symmetric key is already shared the parties might as well encrypt with it - or with a key derived from it.

If a symmetric key is wrapped (encrypted) and sent, you need to verify that the secret key has been agreed upon successfully - as explained in the next section.


  For example at initiation time of the TLS handshake when the client encrypts with the server's public key the symmetric key that's going to be used for the rest of the transaction, does it also uses hashing?


No, but as the symmetric key is later used for a HMAC over the previously communicated messages, it doesn't matter if the symmetric key was changed. If it was, the authentication tag calculated using HMAC value will be incorrect and the handshake will fail.