I am currently working on a python script that does image steganography, altering the least significant bit on each channel of the image. Now imagine encrypting a file with a bunch of null bytes, or if you want a more realistic scenario, text that has a lot of repeating sequences in it (whole words / characters); Analysing the LSB of every channel of every pixel of this image, will reveal certain patterns and the hidden message can be decrypted easily.
The ultimate goal would be to turn the data given in bits into something that looks like random noise, but can be decoded easily with the given key.
What is a (fast) way to achieve this ?
One idea I came up with after googling for a while is the following: Generate a random bit sequence, the same length as the data you want to hide, that is based on a specific seed/key. It can be generated again as often as you want supplying the same seed. Now xor the generated bit sequence with the data provided and use this hopefully random looking binary data as the basis for the pixel modifications.
Is this (more or less) secure from a cryptographic standpoint provided the evil decoder doesn't know the algorithm ?