So can a non-tag verified decryption be secure? Only send the ciphertext+iv to the attacker and assuming he/she knows the encryption method (in an open source github)?
Why would an attacker benefit from getting less information? Normal GCM depends on CTR mode to keep the message secure: the ciphertext without the authentication tag is CTR mode. The only difference may be the nonce handling.
Update: Eg: Let's say in my open source with OFFLINE CLIENT side encryption, even when tag is involved in the decryption it will still be CTR only equivalent in term of security?
Well no, integrity and authenticity bring important benefits, and they are definitely part of the security equation. They disallow an attacker to change ciphertext and therefore the decrypted plaintext.
This may even influence the confidentiality of the ciphertext, as plaintext oracles are certainly a thing.
Imagine that you want to communicate the value 0, 1 or 2 to another party. You are smart and encode these in two bits (otherwise you'd immediately show information to an attacker: 1 bit encoding would mean 0 or 1, and two bit encoding would mean 2). So you encrypt these values as 00
, 01
or 10
respectively.
Now the attacker flips the least significant bit, and notices that the receiving system generates an internal error: the system didn't expect 11
to be sent. From this information the attacker can directly assume that the most significant bit was a 1
, thus the value that was sent must have been 2. The only requirement is that the error is noticeable one way or another.
So we have seen that yes, authenticated ciphertext are more secure - when used correctly.
In the unlikely event that the attacker can break CTR then the confidentiality of the messages is lost, regardless if GCM is used or not.