People are always fascinated with keeping information away from others. As children, many of us had a way of exchanging coded messages with our friends, keeping secrets from our friends, teachers and even parents.
Also, ancient people had a way of concealing their information from their enemies. Basic cryptographic methods were used by kings and generals to communicate to their troops. This ensured that the enemy could not learn sensitive military information.
As technology continues to grow, the need for more sophisticated methods of securing data is constantly increasing. An introduction to cryptography principles and applications would be incomplete without discussing this growing need.
The need is more pronounced than ever since many people are trying to secure their sensitive information. Today’s world is becoming more and more connected, and this has increased the demand for information and electronic services. Rising demand has increased the dependency on electronic systems.
It will not surprise you to hear that the exchange of sensitive information like credit card numbers through the Internet is a common practice. Protecting these electronic systems and their data is very crucial.
The techniques and methods used to protect the data come from the field of cryptography. This area has three terms – cryptology, cryptanalysis, and cryptography, which are usually used interchangeably. However, cryptology is the general term for the study of communication over an insecure platform and its challenges.
Cryptography is the process used to design the systems used to this. Cryptanalysis is responsible for breaking such systems. It is hard to do either cryptanalysis or cryptography if you lack a good understanding of the methods used.
The term coding theory is commonly used to describe cryptography; however, it leads to confusion at times. Coding theory is used to represent input information symbols by output symbols, a process called code symbols. The coding theory covers three basic applications: secrecy, compression, and mid-error correction.
Over the last decade, the term coding theory has become associated commonly with error correcting codes. Therefore, the coding theory studies communication over noisy channels and ensures the right messages are received.
Cryptography, on the other hand, protects communication over insecure channels. Modern cryptography relies heavily on mathematics, computer science and most of all cleverness.
In a good cryptographic system, if one bit is changed in the ciphertext, enough bits are modified in the corresponding plaintext, and this makes it unreadable. Therefore, it is important to have ways of detecting and correcting errors that might happen in case a ciphertext is transmitted.
Many situations which don’t require cryptography also require error correction. For example, CD players, fax machines, computer hard drives and other devices which process digital data. Error correction codes are usually used to solve this problem.
Although coding theory – communication over noisy channels is technically not a part of cryptography – communication over insecure channels, error correcting codes can be used to construct a public key system.
All communication channels have some degree of noise, also known as interference. It is mostly caused by various things like adjacent channels, deterioration of equipment and electric impulses amongst others. The noise can interfere with data transmission at times.
Just like having a conversation in a noisy room is hard, so does data transmission if the channel becomes noisier. For one to have a conversation in a noisy room, they must shout or repeat themselves.
For the same to take place over a noisy channel, we are required to add some redundancy to the transmission, for the recipient to be able to reconstruct the message.
The following example shows how redundancy techniques can be used. Here, the original message is replaced by code words which have redundancy built on them.
Let’s consider alphabets A, B, C and D. We want to send a letter across a noisy channel that has a probability error of 0.1. If we want to send A, for example, then there is a 90% chance that the symbol A will be received.
This leaves too large a chance of error. Instead, we repeat the symbol three times, thus sending AAA. Suppose a mistake occurs and the received word is BAA.
We take the symbol that occurs most frequently, as the message, namely A. The probability of the correct message being found is the probability that all three letters are correct plus the probability that exactly one of the three letters is wrong which leaves a significantly smaller chance of error.