Tuesday, 19 July, 2005

Well, on the 15th of July, I turned twenty-two. As with most birthdays, it was an eventful affair. I had a party over my place and everyone got drunk. Collectively, we steamed our way through ninety-two bottles of beer. Hurray!

So how does it feel to be verging on ancient? Okay, I guess! Turning twenty was quite depressing, turning twenty-one was quite a blast and judging by the birthday just gone I'm guessing that my birthdays from now till thirty will be pretty be fairly average by birthday standards. As the adage goes, it's all down hill from here.

In celebration of my birthday, I bought myself a book of Steganography; that is, the art of hiding messages in plain sight. The topic is every bit as cross discipline as cryptography, in fact, If anything it is more so. The knowledge required to do Steganography requires a working knowledge of a whole range of fields. Things like: non-contextual grammars, Huffman codes, cryptography, information theory, complexity theory, etc. It's quite an exciting topic to study because of all this diversity.

What's truly impressive is the number of ways you can hide information in other channels. Everybody knows about hiding information in text, pictures, video or sound but what about the less obvious methods? Take transmission of packets over an Ethernet network, for example. In TCP, every packet is encased with an error correction code. The idea behind this code is that if a bit is scrambled by line interference the error correction code will work out which bit was scrambled and correct it.

However, we can also use these error correction codes to hide data. What we do is introduce a forced error in each packet. That error encodes the data we want to transfer. We can then write an application that reads the packets at the lowest level and detects the bits at fault. It then reconstructs the message from these faulty bit. However, because every other application uses the standard TCP/IP stack, the error will get corrected by the code and therefore any other application on the network will be totally oblivious to the error and will just see the clean cover-text. How ingenious is that?

Simon.

22:16:16 GMT | #Life | Permalink