Skip to content

Lesson 06: Steganography - CPS101 Mystery Cache

Hidden : 5/17/2011
Difficulty:
2 out of 5
Terrain:
2.5 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:


The cache is not at the posted coordinates


About This Series

This series is based on the original puzzle solving 101 by ePeterso2. The first twelve caches in this series will help you build your puzzle-solving skills. Each one contains a lesson focusing on a specific skill, examples of how to use that skill, an exercise to test that skill, and a cache to find as a reward. Study the lesson, complete the exercise, and you'll find the location of a geocache.

When you check your coordinates, each cache will reveal a piece of information you'll need to take the final exam (the thirteenth cache in the series).


Lesson 6: Steganography

Introduction

Steganography is the art and science of writing hidden messages in such a way that no one, apart from the sender and intended recipient, suspects the existence of the message, a form of security through obscurity. The word steganography is of Greek origin and means "concealed writing" from the Greek words steganos meaning "covered or protected", and graphein meaning "to write". [wikipedia].

A steganographic message appears to be something else, typically something common and innocuous. A message can be a letter, an article, a shopping list, a photograph, an audio recording, or some other form. This apparent message is called the covertext.

To create a steganographic message, the plaintext is typically encrypted in some manner using a cipher to create the ciphertext. This ciphertext is then embedded into the covertext to create the stegotext. The stegotext is often surrounded with nulls, which are extra pieces of information not part of the hidden message but which are included to increase confusion and distraction for those seeking the message.

Examples

Probably the best way to understand this process is with some examples:

  • One of the most well-known steganographic tools is invisible ink. A secret message may be written in invisible ink over top of the cover text; to read it, the recipient would hold the cover text up to a particular shade or intensity of light. (Remember the opening scenes of The DaVinci Code?)

  • In ancient Greece, wooden tablets covered with layers of wax were often used as the medium for writing messages. A secret message could be hidden by writing the message directly on the wood before covering it with wax. The recipient would then simply melt the wax to read the message.

  • Also in ancient Greece, Herodotus tells the story of a message tattooed on a slave's shaved head, hidden by the growth of his hair, and exposed by shaving his head again. The message allegedly carried a warning to Greece about Persian invasion plans.

  • During World War II, a spy for the Japanese in New York City, Velvalee Dickinson, sent information to accommodation addresses in neutral South America. She was a dealer in dolls, and her letters discussed how many of this or that doll to ship. The stegotext in this case was the doll orders; the 'plaintext' being concealed was itself a codetext giving information about ship movements, etc.

Hiding information in images

The saying goes that "a picture is worth 1000 words". With geocaching puzzles we might add "and a couple of numbers". There is a lot of information that can be hidden in an image. In the first part of this cache page we will look at some ways to hide information in images. So what makes an image suspicious?

Image formats

As you might know, geocaching.com only supports jpeg images. Jpeg images have a file name that ends with .jpg. To get the filename of an image, right click on the image and choose the option 'properties'.

A cache owner can try to upload a different type of image but Groundspeak will always convert the uploaded image to a jpeg format. Another thing to remember is that Groundspeak will automatically scale large images when they are uploaded. So if the cache owner would like to have control over the image, geocaching.com might not be the best place to put it.

Tip: if the image that is used on the cache page is not a .jpg file, it must have been important to the cache owner to do this. This warrants a closer look.

It goes without saying that even if the image is a .jpg file stored on geocaching.com, the cache owner can still hide information in it. That is done with all images on this page

colour values

Every image is made of pixels. A pixel (which stands for picture element) is the smallest part of an image. In a jpeg image, each colour is described by three bytes. These bytes represent the red, green and blue values that together define the colour of a pixel.

Colours can be described in various 'coordinate systems'. The most common is the RGB system where each value lists the amount of red, green or blue that makes up a particular colour. Other commonly used colour systems are CMYK (cyan, magenta, yellow, black which is used in printing), HSB (hue, saturation, brightness), Lab (lightness, a, b) and web colours (basically a hexadecimal value of the RGB system). Some examples of the colour values are:

Colour RGB CMYK HSB Web
  255,255,255 0,0,0,0 0,0,100 #FFFFFF
  255,0,0 0,1,1,0 0,100,100 #FF0000
  0,255,0 1,0,1,0 120,100,100 #00FF00
  0,0,255 1,1,0,0 240,100,100 #0000F
  255,222,173 0,0.129,0.322,0 36,32,100 #FFDEAD

The human eye can see many millions of colours. It has difficulty however to identify very small differences in colours. That's an ideal way to hide information "in plain sight". Look at the following picture:

This image contains a hidden message. You need to open the image in an image editing program like photoshop, paintshop pro or even paint to see the image. There are even some very good online image edit tools that let you make the hidden message visible. Click on the image to open it and start to make the message visible.
To make the message visible use the following steps:

  1. Select the wand tool
  2. Make sure the tolerance is set to 0
  3. Click in the upper left part of the image

This will show the message as a selection. You can fill in the selected pixels with another colour to make the message even clearer. Note that the colour that is used in this image is the default background colour of geocaching.com.

Noise

Building on the fact that human eyes cannot see small colour differences, we can hide information in the picture by slightly modifying the colours. It is similar to the way the message has been hidden in the image above, but it is much harder to detect. Recall that the colour value of each pixel is stored in three bytes, one for red, one for green and one for blue. Each byte consists of eight bits. If in each byte we use one bit to store our message, the colour value of the pixel will change only slightly. As we've seen before this is invisible to the human eye! So in each pixel we have three bits to put information in. This might not seem much but if you understand that even the small image above has 120,000 pixels, you can see that sizeable amounts of information can be hidden this way. In 120,000 pixels we can put 360,000 bits or almost 45,000 characters, about the size of this page! It is even possible to hide other images in images with this technique. More information can be stored if we allow more distortion of the original image (i.e. use more bits of each colour to store our information). This is an advanced form of steganography but it shows just one of the many possibilities! A larger explanation of this technique can be found in the Steganography: Hiding Data Within Data article.

Other types of files

The technique to hide information in noise can be used on other file types as well. Audio or video files for instance can be modified in the same way.

Additional information / EXIF

Images can have more information than just the colour values of each pixel. They can contain thumbnail images, colour tables, special processing instructions, copyright information, information about camera settings, captions and comments for instance. To display this information you need to have an EXIF (Exchangeable Image File Format) viewer. Any good image editor has support for filling out or displaying that information.

More and more digital cameras and smart phones are equipped with a GPSr. This addition allows geotagging, in which the location at which a picture got taken is stored within the image. If the camera does not tag the image, there are application that will take your GPSr track log and tag your images after they have been taken. This information can be used to give you a clue on how to solve the puzzle.

Look at the picture below. It was taken while geocaching.

Click on the image to find out where it has been taken, who is in the image and what the GC number of the cache was.

Resources for images

  1. Very good online image editor: http://pixlr.com/editor/?loc=en
  2. Jeffrey's EXIF viewer: http://regex.info/exif.cgi
  3. Wikipedia has a list of free and open source Steganography tools
  4. A quick search on google also reveals a long list of tools.

Hiding information in text

One common, almost obvious, form of steganography is called a null cipher. In this type of stego, the hidden message is formed by taking the first (or other fixed) letter of each word in the cover message. Consider this cablegram that might have been sent by a journalist/spy from the U.S. to Europe during World War I:

PRESIDENT'S EMBARGO RULING SHOULD HAVE IMMEDIATE NOTICE. GRAVE
SITUATION AFFECTING INTERNATIONAL LAW. STATEMENT FORESHADOWS RUIN
OF MANY NEUTRALS. YELLOW JOURNALS UNIFYING NATIONAL EXCITEMENT
IMMENSELY.

The first letters of each word form the character string: PERSHINGSAILSFROMNYJUNEI. A little imagination and some spaces yields the real message: PERSHING SAILS FROM NY JUNE I.

Other variations:

  • Pinpricks in maps to use as an overlay for relevant letters in messages
  • Deliberate misspelling to mark words in the message
  • Use of small changes in spacing to indicate significant letters or words in a hidden message
  • Use of a slightly different font in a typeset message to indicate the hidden letters (e.g., the difference between Courier and Courier New is barely noticeable unless you are looking for it)

Baconian Cipher

The Baconian cipher is a special form of steganography and it can be used in text in many ways. The idea is that the two different codes (A and B) that make up each character are hidden in differences in for instance font family, weight, orientation, colour or size.

An example with the font size will make things a little clearer:
Let's say we want to encode 'ITS BACON'. We first need to encode the plaintext:

Pt: ITS BACON
Et: abaaa baaba baaab aaaab aaaaa aaaba abbab ababb

Our encoded text (Et) is now ready to be turned into cipher text. There are several ways to do this. One is to modify some plain text to hide the message in the style of the text. For instance, you might line the Et up with some generic text from a letter:

Et: ab aaa baa bab aaaba aaa baaaaaa aa baab baba babb
Lt: Hi, how are you doing. The weather is nice here today.
Ct1: Hi, HOW aRE yOu DOInG. THE wEATHER IS nICe hErE tOday.

Hiding data in lists

One of the very subtle and difficult ways of hiding a message in plain sight is in the ordering of a list. Any ordering of a list can be converted into a number. This number can be converted into a series of bytes which can be converted into a message. To see a demo where this has been used to order a list of cards open http://www.jerde.net/peter/cards/.

Further reading

  1. Steganography: Hiding Data Within Data
  2. Steganography: How to Send a Secret Message

Practice Puzzles


Puzzle 6: American Gothic

American Gothic is a painting by Grant Wood, in the collection of the Art Institute of Chicago. Wood's inspiration came from a cottage designed in the Gothic Revival style with a distinctive upper window and a decision to paint the house along with "the kind of people I fancied should live in that house." The painting shows a farmer standing beside his spinster daughter (not his wife, as so many parodies and references assume). The figures were modeled by the artist's dentist and sister. The woman is dressed in a colonial print apron mimicking 19th century Americana and the couple are in the traditional roles of men and women, the man's pitchfork symbolizing hard labor, and the flowers over the woman's right shoulder suggesting domesticity.

It is one of the most familiar images in 20th century American art, and one of the most parodied artworks within American popular culture.

Source: Wikipedia

Additional Hints (No hints available.)