Cryptography is the study of concealing information. It is used when communicating over an untrusted medium like the internet. Such mediums require the information to be protected from third parties.
Modern cryptography focuses on the development of cryptographic algorithms which hackers can hardly break. Most of these algorithms cannot be broken by any practical means due to their computational hardness.
Public key cryptography, symmetric key cryptography, and hash functions are the three types of cryptographic algorithms used in modern-day cryptography. Public key cryptography involves the use of two different but mathematically related keys.
For symmetric key cryptography, the sender and the receiver share the same key which is used to encrypt data. In hash functions, no key is used. Instead, a fixed length hash value from the data is computed. This makes it impossible to recover the original length of the plain text.
Steganography deals with composing concealed messages. However, only the sender and the receiver are aware that the message even exists. Such messages do not attract attention since nobody except the sender and the receiver are aware of its existence. Physical Steganography is the ancient methods of steganography which was used in days of old.
Some examples of such methods include messages concealed on the inner ink pipes of pens, messages hidden inside another message or messages written using secret inks amongst others.
Digital steganography is the methods employed in modern steganography. Some of these current methods include concealing messages within noisy images, inserting pictures with the message within video files and embedding a message within random data amongst others.
Telecommunication networks use network steganography. This method includes techniques like VoIP steganography and WLAN steganography.
Types of encoding
Least Significant Bit encoding
This method is the most popular amongst the methods used to encode images. Programs that use the Least Significant Bit or LSB methods use the least significant bit of every byte on an image to encode the message. Such procedures slightly change the value of every pixel in the picture. However, these changes are not enough to make significant changes in the image.
For a 24-bit image, each pixel uses 3-bytes. This means that 3 bits of concealed message are encoded in each pixel. This process alters the image which still looks the same to the human eye when comparing to the original. However, this method is not popular as 24-bit images are quite large and they can arouse suspicion.
Using a 256 color image is a more convenient way. In this approach, 1 byte is used for each pixel. 300 kilobits of data can be hidden in 640 x 480 image of this quality. One can even conceal an image within another image in case they have a large image. White Noise Storm and S-Tools are popular commercial programs that use LSB encoding.
Frequency Domain encoding
This method uses 2-dimensional Fast Fourier Transform or 2-D FFT of the container image to encode messages within an image. The frequencies of the image are separated into rings centered on an axis by the 2-D FFT. The rings furthest from the axis represent high frequencies, and the ones closest to the axis represent low frequencies.
Message text is typically encoded in the middle frequencies of the image in the frequency domain encoding method. This process is very simple. Message text is converted into bits which are in turn overlaid in a ring shape. This helps in achieving the desired 2-D FFT frequency
When we compare cryptography and steganography, the following are the main differences that immediately stand out:
- Steganography deals with composing concealed messages which their existence is only known by the sender and the receiver while cryptography is the study of hiding information.
- In cryptography, the concealed message is visible to the world while in steganography only the sender and the receiver know the existence of the message. Due to this, unwanted attention towards the hidden message is removed.
- Cryptographic methods protect the content of a message, while steganography methods conceal both the message as well as its contents.
If both cryptography and steganography are combined, one can achieve better security.