Skip to main content
IBM 
ShopSupportDownloads
IBM HomeProductsConsultingIndustriesNewsAbout IBM
IBM : developerWorks : Security : Education - online courses
Introduction to cryptology: Pt. 3
Download tutorial zip fileView letter-sized PDF fileView A4-sized PDF fileE-mail this tutorial to a friend
Main menuSection menuGive feedback on this tutorialPreviousNext
3. Steganography and watermarking
  


Digital steganography using other formats, part 1 page 7 of 12


Digital steganography is often used with images and sounds simply because these file formats make it easy to identify the areas of variability in a purely structural way. This might be as simple as knowing that every 24th bit in the file (after some initial offset) is a lowest order red bit. Other file formats can be used, but often require more semantic consideration of the file contents. Let us look at a few examples.

Source code. Programming languages have fairly strict structural constraints. That is the point of grammar, after all. Even within grammatical constraints, most changes to a source code file will result in programs that do not compile or run (for example, you might be able to change a character in a variable name in a subtextual way, but doing so will most likely break the program logic in some manner). Even so, there are a number of areas of non-predictable variation even in source code files; the trick is that encoding them involves "understanding" the code in a richer way than changing recurrent bit positions. Many programming languages offer several equivalent constructs for the same operation: for example, both "!=" and "<>" to express inequality. Or at a higher level, you might even automate transformations between different (equivalent) loop structures (for example, for(;;){...} and while(1){...}). The pattern of choices between constructs could contain one bit of subchannel for each loop occurrence. Still, the best place to hide a subchannel in source code is likely to be in the comment fields -- but with some subtlety to make it look like actual source code comments (you do comment source code, right?).


Main menuSection menuGive feedback on this tutorialPreviousNext
PrivacyLegalContact