Introducing Stepic: Python Steganography in Images
Steganography is the hiding of data within other data. Stepic is my new Python module and command line tool for hiding arbitrary data within images by slightly modifying the colors. These modifications are generally imperceptible to humans, but are machine detectable.
Update: Stepic now has a homepage with documentation and downloads.
Stepic can be retrieved using Bazaar, and installed the standard Python way. Depending on your setup, it might look something like this:
bzr get http://domnit.org/stepic/ cd stepic sudo ./setup.py install --prefix=/usr/local
Stepic’s only dependency, besides Python, is the Python Imaging Library (PIL).
Here’s an example: given this image:
stepic --encode --image-in=stepic-demo-before.png --data-in=pyramid-fractal.html --out=stepic-demo-after.png produces this image:
The images look the same, but the second contains a cool app I made in 2005 and never shared before. You can extract that file by downloading the second image and issuing the command:
stepic --decode --image-in=stepic-demo-after.png --out=pyramid-fractal.html.
Note that obscurity is not security—there are other ways to have actual security. While there is no explicit indication in an image that it contains hidden data, an image is unlikely to contain long, non-random data that stepic can extract. If you want something like plausible deniability, your data should look random and most blues should be even.
I’m not doing anything new, except maybe providing a Python implementation. That’s OK by me, and if it counts for anything, I figured out the principle before reading the Wikipedia description.
It’s steganography, it uses pictures, it’s epic, it sounds like septic, it’s stepic—try it now! (Easier installation coming eventually.)
Update: Check out the Stepic homepage.
3 comments on Introducing Stepic: Python Steganography in Images
[...] letade efter Pythonbibliotek för att generera och manipulera bilder och grafik, och prang då på en artikel om ett bibliotek kallat Stepic. (Ja, artikeln är från februari så den är inte [...]
[...] info, motion info, previous image names, etc. There is a nice class that does this simply. It is Stepic. It is a fairly basic implementation in that it does no encryption or compression of the data but is [...]
[...] Python when undertaking Steganography exercises, however due to it’s speed and the excellent Stepic module by Lenny Domnitser it’s really, really easy. You’ll need PIL and the Stepic [...]
Comments on this entry are now closed. Thanks to those who participated. You can still email me.