Computer Science 15-110, Fall 2009
Class Notes:  Steganography


In class today, we explored Steganography (embedding a secret image inside another, seemingly unmodified image).  We followed these steps:

  1. We start with:
    1. A black-and-white secret image:  (secretImage.bmp)
    2. An innocent public image (publicImage.bmp)
  2. We then ran SteganographyEncoder.java, producing:
    1. A verified black-and-white version of the secret image (bwSecretImage.bmp)
      (Just in case the incoming secret image wasn't in black-and-white, which is required because we are using only one bit to encode the image within the public image.)
    2. The seemingly-innocent coded version of the public image (codedImage.bmp) -- compare this to the original publicImage.bmp!

  3. At this point, we would transmit the codedImage.bmp file with our encoded message hidden inside it.
  4. We then ran SteganographyDecoder.java, which only uses the codedImage.bmp, yet it produces:
    1. Our decoded secret message (decodedImage.bmp) -- compare this to the original secretImage.bmp!

carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem   -   carpe diem