Data Hiding Overview
What is Data Hiding?
Data Hiding or Steganography is the art and science of hiding
messages in a way that prevents the casual observer or the determined attacker
that the hidden message exists. It is an ancient art, going back as far as
the need for secret communications goes. Throughout history various cultures
have relied on two separate means of keeping information hidden from the enemy:
Cryptography and Steganography. The point of Cryptography, in contrast with
Steganography, is to scramble a given message so badly that even if the enemy
recovers the message they will have very difficult time figuring out what
the content of the message was. Steganography takes the opposite approach
by hiding the message somewhere so that it is never detected by the enemy
in the first place.
Why is Data Hiding Important?
There are several reasons why would someone want to hide the existence of their communications. First, as previously mentioned, if the enemy (let's say a large government organization) wants to intercept sensitive information, they must first capture transmissions, then sort through it for target messages, and then break any forms of encryption that may have been applied to these messages. This process traditionally has been easy for large governments to do up to and possibly including the process of breaking the encryption on the message. But what if someone were to disguise his or her message so that it was not targeted for analysis in the first place? That is where Steganography comes in. It does not matter how fast a given organization's supercomputers are if they do not have cipher text to attack in the first place. Another scenario along the lines of powerful attacks by large organizations has to do with the ability of civilians to use encryption. In some countries in the world use of cryptography is actually forbidden for civilians, and therefore Steganography becomes the means by which they hide their encrypted data. Large governments are not the only threats to a citizen's privacy.
Data Hiding Requirements
Morimoto (1995) defined the requirements of successful data
hiding system are as follows:
(1). Perceivable degradation of the host signal should be minimized - the
embedded data needs to be "invisible" or "inaudible". (2). The information
has to be directly embedded into the data stream of the host signal, rather
than into header or attached file, so that the embedded data will remain encoded
across different file formats.
(3). The embedded data should be immune to common modifications ranging from
the incidental to intentional, i.e., transmission line noise, compression,
filtering, re-sampling, cropping, etc.
(4). Asymmetrical codingi is desirable since the decode key may be open to
the public.
(5). A data restoration schema, such as Error Correction Coding, should be
used to ensure the integrity of the embedded data after the modification of
the host signal.
(6). The embedded data should be self-clocking or arbitrary re-entrant. This
ensures that the embedded data can be recovered when the only fragments of
the host signals are available, for instance, if a sufficiently large piece
of an image is extracted from a larger picture, data embedded in original
picture can be recovered. This feature also facilitates automatic decoding
of the hidden data since there is no need to refer to the original host signal.
Data Hiding Techniques
There are many data hiding techniques have been developed. For
example, in (Hwang et al. 2000), the authors use neural networks to embed
the copyright owner's logo into the image for copyright protection. This type
application of information hiding is called digital watermarking. However,
different applications of information hiding have to meet their own requirements.
This project is aimed at image hiding, which refers to the embedding of a
secret image into another unimportant image. The negligible image is called
"cover image". When the embedding process is done, the cover image has been
slightly changed. We call the changed image "stego-image". The so-called stegangraphy
is the term used for the information hiding technique (Pfitzmann, 1996). Image
hiding is useful to deliver confidential images, which are well camouflaged.
The main requirements for image hiding techniques are embedding capacity and
security. Besides, of course the difference between the cover image and the
stego-image should be perceptually invisible. Moreover, Bender (1996) classifies
the techniques for Data hiding in still images into two. Those are:
(1). Low bit-rate encoding, expect a high level of robustness in return for
low bandwidth. The emphasis is on resistance to attempts of data removal by
a third party. The methods for low bit-rate data hiding in images such as:
- Patchwork: A statistical approach. Patchwork invisibly embeds in a host
image a specific statistic. There are several limitations inherent to the
Patchwork technique. The first is the extremely low embedded data rate it
yields, usually a one-bit signature per image. Second, it is necessary to
register where the pixels in the image lie. - Texture Block Coding: A visual
approach. This method hides data within the continuous random texture patterns
of a picture. It is implemented by copying a region from a random texture
pattern found in a picture to an area that has similar texture.
(2). High bit-rate coding, can be designed to have minimal impact upon the
perception of the host signal, but they do not tend to be immune to image
modifications. The method which is using high bit-rate coding techniques such
as Affine coding. Affine Coding is a method that can be used to facilitate
the recovery data after affine application.