13 of 15 people found the following review helpful
- Published on Amazon.com
This is a very easy read that does not really assume much about the reader other than mathematical maturity at the precalculus level, knowledge of programming in a higher level language, and a curiosity about hiding information in such things as images. In fact, I bought this book to get a grasp on how to hide a watermark in an image. The early chapters are devoted to material that forms the basic toolkit for steganography - private key encryption, secret sharing, and error correcting codes. The later chapters describe how to apply these techniques in various ways to hide information.
Chapter 5 discusses common data compression algorithms, not to the point that you could write an encoder/decoder system, but so that you know which allow perfect reconstruction and which do not. Compression leads to the topic of mimicry, which is the subject of chapter 6. Basic mimicry produces text that looks statistically similar to the original text but is far from perfect. Chapter 7 shows methods of improving mimicry techniques so that the mimicked text not only passes statistical tests for similarity to the original, but passes rules for grammar. This leads to the concept of context free grammars and their role in mimicry. Thus, you can hide data in realistic sounding text.
Chapter 8 concentrates on a robust and complete model known as the Turing machine. Such a machine hides data as it "runs forward", while running the machine in reverse allows the hidden data to be recovered. Certain proofs show that this is a stronger data hiding model than those previously discussed.
Chapter nine discusses a more image-processing related data hiding topic - hiding in the noise. What appears as noise to the untrained eye can actually be a message. Of course, the flip side of this is "real" noise has the power to obscure the hidden message.
Chapter 10 discusses anonymous remailers, which is the deletion of the name of the originator of a message by an intermediate node. Such systems can range from very secure to very insecure depending on strategies involved. Chapter 11,"Secret Broadcasts", is a companion chapter on how to broadcast a message so that everyone can read it but nobody knows the source. The solution lies in the "Dining Cryptographers" algorithm, and this solution is discussed at length.
Chapter 12, "Keys", discusses message keys as extensions to the concept of keys in basic cryptography, which was discussed earlier in the book. Adding keys to any algorithm discussed up to this point makes that algorithm stronger. Chapter 13, "Ordering and Reordering", discusses how steganography strategies might be disrupted by reordering parts of a message, and discusses methods that might prevent this from being a problem.
Chapter 14, "Spreading", is a more mathematical chapter than the preceding ones and takes a different approach to the problem of information hiding. It takes ideas from spread spectrum radio and applies them to steganography. This is the one chapter where a knowledge of calculus, Fourier transforms, and even wavelets will be helpful.
The last three chapters, "Synthetic Worlds", "Watermarks", and "Steganalysis" are short and more subjective than previous ones, mainly giving the reader a broad overview of these topics.
The book has a wealth of algorithms, equations, and simple examples. There is even a very basic Java mimicry program in the appendix. However, this is not a programming book full of ready to implement solutions - you will have to do that yourself. There are numerous references to web addresses where you can find both executable and source code for implementing some of the algorithms mentioned in this book. I would say if you are interested in hiding information in data of any kind - text, sound, imagery, etc. - then this book is essential reading. I highly recommend it.