Hiding Images in Plain Sight: Deep Steganography
Abstract
Steganography is the practice of concealing a secret message within another,
ordinary, message. Commonly, steganography is used to unobtrusively hide a small
message within the noisy regions of a larger image. In this study, we attempt
to place a full size color image within another image of the same size. Deep
neural networks are simultaneously trained to create the hiding and revealing
processes and are designed to specifically work as a pair. The system is trained on
images drawn randomly from the ImageNet database, and works well on natural
images from a wide variety of sources. Beyond demonstrating the successful
application of deep learning to hiding images, we carefully examine how the result
is achieved and explore extensions. Unlike many popular steganographic methods
that encode the secret message within the least significant bits of the carrier image,
our approach compresses and distributes the secret image’s representation across
all of the available bits.
ordinary, message. Commonly, steganography is used to unobtrusively hide a small
message within the noisy regions of a larger image. In this study, we attempt
to place a full size color image within another image of the same size. Deep
neural networks are simultaneously trained to create the hiding and revealing
processes and are designed to specifically work as a pair. The system is trained on
images drawn randomly from the ImageNet database, and works well on natural
images from a wide variety of sources. Beyond demonstrating the successful
application of deep learning to hiding images, we carefully examine how the result
is achieved and explore extensions. Unlike many popular steganographic methods
that encode the secret message within the least significant bits of the carrier image,
our approach compresses and distributes the secret image’s representation across
all of the available bits.