0
$\begingroup$

Steganography can hide one image inside another.

If we have a compression algorithm that allows us to fit the bits for two images into the size of one, can we think of a way to modify a run-length encoding algorithm to take two images and produce one, in such a way that the first is retrieved in a lossy way, and the second is retrieved?

Please explain this with full description of your thinking.

If you know a good reference, please let me know.

$\endgroup$
1
$\begingroup$

Steganography can hide image inside another.But if you change the run length encoding algorithm it's not like you are hiding your data.Because the common decoder is not aware of your run length encoding and display some creepy image.

Instead you can do this.Consider you have two 8 bit images Image-1(Envelope image) and Image-2(The image you need to hide).Store them as a one 16 bit image say Image-3 with Image 1 occupying the MSB and Image-2 at LSB. When displayed using any photoviewer Image-3 and Image 1 will look similar. No one will be having idea of Image2. Afterwards you can get image-2 by extracting last 8 bits.

$\endgroup$
1
$\begingroup$

I wrote this program long ago and published, but removed it later, because could be an abuse. It is possible to write a plugin for the browser, that extracts hidden images and show them in the browser in place of originals, so some visitors will be seeing art gallery and others, who downloaded plug in, something else, may be illegal. I don't mean regular pornography, it is legal. It may be used by terrorists. The way I did it was follows: I compressed one image and redistributed it in two least significant bits of each byte of pixel data. I used my own compression algorithm. In steganography the compressed image is called payload and where it is embedded is called carrier. My payload was half of the area of carrier. And I hid even multiple images within each other like Russian dolls. The carrier can be compressed and hidden within new carrier. However each payload was half of carrier area. I tested those program that claimed to determine steganographic content. Neither of them detected payload. However, there is a way to find that out. The carrier must be lossless, I used PNG. And that raised suspicion. Why image is posted in PNG format. Steganography is not illegal, I decided to remove my program from internet myself, there was no pressure.

$\endgroup$
0
$\begingroup$

A run-length encoder is generally going to do worse on two images than one, and it's already bad on one.

As the other answers have elucidated, there's a spectrum of fidelity (or bandwidth) to transmit the clandestine data, but there's also a obscurity/security spectrum which depends on your intended/perceived adversary.

As two opposite ends of this multidimensional spectrum: you could hyper-compress then encrypt your payload and sprinkle its bits one by one on the LSB of every N pixels (or even a varying number of pixels based on a key or hash of the previous bits), or you could do what Navin's great suggestion for a very simple system.

Because the carrier effective bandwidth is so ridiculously high, you could even take the 2 lowest bits of the 3rd pixel and make them a type, so you could pass text, images, files, and more,

I'd also like to point out that steganography can also be a great tool for good when used to bypass oppressive governments and regimes.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.