Saturday, September 30, 2006

A Steganography Scheme - Part 1

I've been thinking lately about steganography. Previous tools have hidden information in images, videos, sound files, and other large chunks of information. But I have not seen many examples of steganography with text (here is one). I decided to put together a simple and flexible text steganography tool just for fun.

The secrecy in a stegonography scheme rests in a shared algorithm between the sender and receiver which is not known by those trying to intercept the message and the fact that a hidden message is not apparent in the message being sent between the individuals. Anyone trying to find the hidden message faces two challenges:
  1. How do I know when a hidden message is present?

  2. How do I extract the hidden message?

Because I am explaining my stegenography idea to the world at large, item number two is no problem. I hope that the first question will not be so easily answered. In any case, you should not rely on this, or any other steganographic method to keep a secret. For that, you need encryption.

Now, on with the scheme!

I wanted users of my system to be able to send any kind of data by hiding it in a plaintext message. In order for the information to be hidden in text, it may have to be converted from one form to another. The same information can be expressed in multiple ways. For example, the number 14 can also be expressed as 1110 (binary), 16 (octal), and E (hexadecimal), depending on the encoding or base of the information. When information is converted into another form, someone who is decoding or reconstructing the information needs to know what form it is stored in. In many steganography schemes, the form of the data is constant and is a secret shared only by those who are supposed to be able to read the hidden message. I wanted to allow flexibility in the encoding, or alphabet, which is used to express the hidden message, so a message from my system will include a definition of the alphabet used to hide the secret message. Here are the steps for using my scheme:
  1. Write the secret message

  2. Choose an alphabet to encode with

  3. Convert the secret message to the desired alphabet

  4. Embed the converted secret message into an innocuous public message.

Now I've shared with you what it is that my steganography scheme will do. In my next post, I'll talk about how.

Tuesday, September 19, 2006

Back on the Internet

It's good to be back on the Internet. My wonderful wife and I relocated a couple of weeks ago to our new domicile and our connection was set up today. A lot had happened while I was out. The facebook newsfeed situation was addressed, new Strong Bad emails were released, and, best of all, my uncle Doug signed up on myspace and has written a mighty fine blog (rss feed). It seems that my return to cyberspace was none too soon:

So, I've been on myspace for a couple of days now. My profile echos when it loads, a soft lonely sound. Tom's still smiling away like a leprechaun (I should be having so much fun), lovin' you Tom, you haven't removed yourself from my page, yet. Off in the distance I hear crickets or is that my knees? Anyway, I'm waiting in breathless anticipation for at least my wack-job nephew and his lovely, vivacious bride to answer my request to be their friend. Maybe someone in an induced stupor of some sort will accidently stumble upon my page and be touched by my incessant whining and think to themselves "that poor bastidge, I'm gonna be that fargin' Snuncle_Fudge's friend!!"*

Good show Uncle!

* Quoted directly from Doug's blog, a Doug's blog production, copyright Doug 2006, all rights reserved, available for a limited time only, while supplies last, act now and get two for the price of one, a $50 value for only $19.99.

Sunday, September 03, 2006

Reviving my laptop

I have an old laptop which I would hate to see go to waste, an Intel 796 megahertz processor with 128 megabytes of ram and the weight of Windows XP has become too much for it to bear. I want a system that will run quickly and smoothly. I need a web browser and programming tools (gcc, make, python, perl, svn, etc.) and an mp3 player might be nice too. I had been running OpenSUSE, but the performance was still a bit sluggish. Then I tried Damn Small Linux (DSL) and it had almost everything I need. Fluxbox is a great windowing system and it ran extremely well. Things started to break down when I tried to install make, a series of dependencies and library downgrades prevented me from being able to get everything I needed. The problems continued the more I tried to modify the system. So I've tried others, five distributions so far, but none seem to work just right. This is turning into quite the weekend project.