Steganography is the art of hiding information to conceal its existence. It provides better security than cryptography by hiding the existence of the message, not just its contents. Original messages can be hidden within carriers, like digital images, such that the changes to the carrier are not observable. Combining the secret image with the carrier image produces a hidden image that is difficult to detect without retrieval. This paper will provide an in-depth look at steganography concepts and techniques by introducing the reader to its history and analyzing the performance of some steganography tools.