Textual Steganography

Steganography is a technique of hiding messages, older than Cryptography. They may sound similar but conceptually they are completely different techniques - as Cryptography is a technique of scrambling message; Steganography is a technique of hiding the very existence of actual message or scrambled message.

In Textual Steganography we hide text message underneath other media content (can be audio. video, image or event text). In this implementation of Textual Steganography I am hiding text mesages underneath the image (can be png, jpg, jpeg, bmp).

User first browses an image file then application uses JPEG compression and provides available payload length(original size - compressed size) on screen. User can type message in provided text field or can browse a text file(.txt), application will display the remaining payload length. User can choose to enter stego key, application will use default key if not provided. If length of message do not exceed available payload length then user can save generated stego-object(encoded image) locally. The stego-object is the merged binary of cover-object(compressed image) + encrypted payload(message) + hashed key(if provided). 

Download application here.

Feature List :

  • User can only browse file of certain extensions such as jpg, jpeg, png, bmp and txt.
  • Accepts message from text file or typed into provided text field.
  • Calculates remaining payload length on the fly and halts typing once remaining payload is zero.
  • Compresses the cover-object, with JPEG compression, in order to keep the size of output file same as input.
  • Employs triple DES encryption to encrypt message.
  • Uses MD5 to hash encryption/stego key.
  • Verifies the input image whether it is a valid stego-object before preforming actual decoding.
  • User can see resultant encoded stego-object or decoded message and cover-object on the application screen before actually saving it.

Technologies used :

  • C# .Net
  • Visual Studio 2010
  • Winforms
  • JPEG Compression
  • Triple DES encryption
  • MD5 Hashing