I am trying to understand the following sentence taken from Cramer and Damgård's "Multiparty Computation: an introduction":
'no cryptosystem can fully hide the size of the information being encrypted.'
The way it is stated makes me think it is either obvious or well-known and am having trouble finding a reference for the answer.
Edit: I have more information that may help. I will update if this gives the answer. A later quote states (slightly changed):
"A cryptosystem being semantic secure exactly means that an encryption leaks at most the length of a message".
I will now go look for such a theorem.
First, remember two important properties of (symmetric) ciphers.
Due to the first, we cannot compress all messages. So compression will only get you so far (never mind the fact that compression can negatively impact security).
So, the only way to fully hide the size of the information being encrypted is to increase the size of all messages with some sort of padding so that they are all the same. How can we do that in general given requirement number 2?
So, what we could do is have a maximum message size, (say 1GB) and pad all messages to be that same size before encryption. Thus, if you want to send a 1 byte message, you have to transfer at least 1GB. So, only by placing restrictions on what we encrypt/how we encrypt can we achieve size hiding encryption.