Steganography Leo Lee CS 265, Section 2 Dr. Stamp April 5, 2004
Outline What is Steganography? Historical Examples LSB Embedding Concept Implementation Analysis
What is Steganography? Literally means “covered writing” Goals: Hide a secret message within some other object Do so in such a way that the presence of the message is not discernable
Historical Examples Invisible Ink used in WWII Microdot: A page of information, the size of a printed period. Waxed Tablets A person’s head! Null-ciphers (unencrypted messages)
Shaved head Steg mm… Beer…
Null cipher Message sent by German spy in WWII Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by-products, ejecting suets and vegetable oils. Apparently neutral’s protest is thoroughly discounted and ignored. Isman hard hit. Blockade issue affects pretext for embargo on by-products, ejecting suets and vegetable oils. Pershing sails from NY June 1 Pershing was an American general
LSB Embedding - Terminology Message = the secret information we want to hide Cover image = image used to hide the message in Stego-image = the cover image with the message embedded
LSB - Concept Which color is different? In (R,G,B) left and right are (0,255,0) Center one is (0,254,0) We can use the LSB to hold info, since it looks the same either way!
LSB 24-bit Bitmaps In 24-bit bmps, each pixel represented by 3 bytes (RGB) Use lsb of each byte to hold a bit of message
LSB 24-bit Bitmaps Example Message = ‘f’ = 0110 01102 Cover Image: FF FF FF 00 00 00 FF FF … Stego-image: FE FF FF 00 00 01 FF FE …
My Own Implementation Which is the stego-image and which the cover? Cover Image Stego-Image
The Message
8-bit Don’t hold direct color values Do hold offsets into a palette Can’t just change lsb, because adjacent colors in palette may not be similar
Approach 1 - EzStego Use cover image with similar colors Experts recommend gray-scale images Arrange palette so adjacent colors are similar
Approach 2 – S-Tools Use only x bits for unique color information. 8 – x bits are for secret message Example (x = 7): Can only have 128 unique colors For each unique color, there’re two similar colors xxxx xxx0 & xxxx xxx1
LSB – Analysis – The Good Simple to implement Allows for large payload Max. payload = b * p where; b = number of bytes per pixel p = number of pixels of cover image
LSB – Analysis – The Bad Easy for attacker to figure out message if he knows the message is there But the images look the same, so can’t tell it’s a stego-image… right? Human vision can’t tell but vulnerable to statistical analysis
LSB – Analysis – The Ugly It’s even easier if the attacker just wants to corrupt the message. Just randomize the lsbs himself Even vulnerable to unintentional corruption: image cropping, conversion to jpeg and back, etc. Integrity is extremely frail
LSB – Analysis - Conclusion Good for cases where only low security is desired, but not necessary. Added security when coupled with cryptography Foundation for many variations, which are more secure e.g. not vulnerable to statistical analysis attacks.