Cryptography Reference
In-Depth Information
different shades of red.
The JPEG algorithm is a good example of how to tune an algo-
rithm to a particular type of data. In this case, the algorithm fits co-
sine functions to the data and then stores the amplitude and period.
The number of functions used and the size can be varied according
to the amount of compression desired. A small number of functions
produces a high amount of compression but a grainy image. More
functions add accuracy, but take up more space. This flexibility is
possible because people don't always particularly care if they get ex-
actly the same image back when it is decompressed. If it looks rea-
sonably close, it is good enough.
This flexibility is what is so useful about JPEG encoding. The
algorithm from Section 5.3.1 will be run in reverse to produce text
that mimics English text. The JPEG algorithm doesn't do that well.
However, it does have the ability to identify nooks and crannies in the
image that might have space to hold information. This is described
in detail in Chapter 9.
5.3.4 GZSteg
Many of the compression algorithms can be tweaked in clever ways
to hide information. A simple but quite effective technique was used
by Andrew Brown when he created the GZSteg algorithm to hide in-
formation normally stored with the popular GZIP compression al-
gorithm. This technique is used frequently throughout the Net so it
makes an ideal candidate for an innocuous location.
Ordinarily, the GZIP algorithm will compress data by inserting
tokens that point back to a previous location where the data was
found. Here's a sample section of text:
The famous Baltimore Oriole, Cal Ripken Jr., is the son of
Cal Ripken Sr. who coached for the Orioles in the past.
Here's a sample section that was compressed. The tokens are shown
in italics.
The famous Baltimore Oriole, Cal Ripken Jr., is the son of
(30,10) Sr. who coached for the (48,6) sinthepast.
In this example, there are two tokens. The first one, (30,10) , tells
the algorithm to back 30 characters and copy 10 characters to the
current location. The compression technique works quite well for
many text algorithms.
GZSteg hides information by changing the number of characters
to copy. Every time it inserts a token that requires copying more
Search WWH ::




Custom Search