# How to keep a reasonable level of entropy in an encrypted file?

Encrypted (or random) data, by nature exhibit a high entropy value and non unencrypted data will exhibit a low entropy value. From an attacker point of view the precense of this high entropy value in a file can means that something is hidden.

My question is : how i can avoid this high entropy value by encrypting files ? (is there actually exist an encryption algorithm who keep a reasonable level of entropy in the encrypted file ?)

You may be asking for steganography, where data is hidden in seemingly normal data/files. The hidden data can be encrypted or plaintext. There are many different applications of steganography, such as lists, text, images and file metadata.

Keeping entropy in encrypted data means insecure encryption. Think of rot13 or similar substitution ciphers where one character is always replaced by the same character. You have the same entropy in the ciphertext as in the plaintext but the plaintext is easily deduced from the ciphertext.

Good cryptographic algorithms depend on reliable pseudo-random number generators where every possible number has the same chance of appearing, but still leaving no clue as to which number is the next number. This results in high entropy so the plaintext is completely mumbled (very simplified explanation).

Note that hiding data (steganography) requires plenty of disk space since the wrapping data still needs to look "normal". Using image steganography also often results in noise or other effects that change the way the image looks.

• This is the only way to decrease entropy of an file with a high entropy value ? Do you know any good library for stenography that I could use in C++ (windows) ?
– user47446
Commented Mar 8, 2015 at 23:45
• Not sure about C++ libraries, but a Google or SE search should yield a few options. See my updated answer for the connection between encryption and entropy. Commented Mar 9, 2015 at 10:52
• Without being steganography strictly speaking, you could just perform some sort of encoding to inflate data size. Commented Mar 10, 2015 at 8:32
• @Dillinur Yeah, that sounds reasonable. Commented Mar 10, 2015 at 12:02