It can be argued that encryption and decryption are two sides of the same coin. First think, what is encryption? A message, made unintelligible by altering it according to a certain procedure can be made intelligible again by applying a reverse procedure. The scrambling of messages can be done at the level of whole words or at the level of individual letters and numbers. Encryption systems that work at the word level are technically known as codes; those that work at the letter level are known as ciphers. Typically there are 5 techniques, which are used in conjunction with one another, for scrambling a message. They include:
- Substitution - The first step in the substitution process is to create a substitution table, designating the replacement character for each character that may appear in a message. Each letter of the message is systematically encoded to match its corresponding substitution number or letter. To decode the message, the reverse process is utilized.
- Blocking - Encryption systems often divide a message into blocks of characters that can be independently manipulated. The resulting blocks are stacked vertically and then realigned so that each block contains the same number of characters. The ciphertext is then created by linking the blocks together in a horizontal stack and transmitting in sequence. The receiver groups the ciphertext into vertical columns and then reads the message.
- Permutation - Permutation is one of the most important encryption techniques utilized today. Also known as transposition, it involves moving characters around according to specific rules; the characters keep their identity but not their position. This technique is the opposite of substitution where letters keep their position and change their identity.
- Expansion - A simple way to obscure a message is to stretch it according to a fixed recipe. In actual cryptographic practice, the recipe is quite elaborate although the technique is easily ciphered.
- Compaction - Reducing the length of a message or reducing its number of blocks is another way of rendering a message unreadable. The components that are removed are done so at set intervals and are transmitted separately. The combination of removed letters and the rule for removing them makes up the key for deciphering the message.