Character and Block Ciphers
Character and Block Ciphers
Character and Block Ciphers
A cipher takes a message (the plaintext) and encodes it puts it in a form (the ciphertext) where the information in the message is not obvious upon inspection. The recipient of the message takes the ciphertext and decodes it performs an operation which recovers the plaintext from the ciphertext.
Example. (A shift cipher) This is also known as a Caesar cipher, since it was supposedly used by Julius Caesar. The letters of the alphabet will be represented by the numbers 0, . . . , 25: A = 0, B = 1, C = 2, . . . , Z = 25. I wont make a distinction between upper and lower case. If x is a letter, Ill encode it using y = x + 11 (mod 26) . (I could use any nonzero number from 1 to 25 in place of 11.) The formula above replaces each letter with another letter; in eect, the alphabet gets shifted 11 places to the left. The translation table for this cipher is: A L B C M N D E F G O P Q R H I S T J U K L V W M N X Y O P Q R Z A B C S D T E U V F G W X H I Y Z J K
For example, consider the message I WAS ASLEEP AT THE TIME I is replaced by T, W by H, and so on. I get the ciphertext T HLD LWDPPA LE ESP ETXP Ill group the letters into 5-letter words to hide the original word groupings: THLDL DWPPA LEESP ETXPZ Ive thrown in an extra Z at the end to make the last group come out evenly. If you decode the message, youd get IWASA SLEEP ATTHE TIMEO You can see that the 5-letters grouping and the extra Z did no harm, since its evident what the plaintext was. 1
Note that the equation y = x + 11 (mod 26) can be solved for x: x = y + 15 (mod 26) . This equation is the decoding transformation; its equivalent to reading the translation table backward.
Example. If you use the shift y = x + 19 (mod 26) , the message I MUST HAVE FOOD becomes B FNLM ATOX YHHW. I wrote a computer program to do this. There are only 26 possible shifts, so if you wanted to decode this by brute force, you could feed the ciphertext through 26 shift programs and see which one produced a sensible message. Shift ciphers are not of much use when it comes to protecting secrets!
The next thing to try is an ane transformation: y = ax + b (mod 26) , where (a, 26) = 1. I need the last condition in order to ensure that I can decode messages. This is equivalent to being able to invert the transformation. Now if (a, 26) = 1, then a is invertible mod 26, so x = a1 (y b) (mod 26) . This equation can be used to decode messages.
Example. Consider the transformation y = 5x + 14 (mod 26). To nd the decoding transformation, solve for x in terms of y : y = 5x + 14 (mod 26) , y + 12 = 5x (mod 26) , 21(y + 12) = 21 5x (mod 26) , x = 21y + 18 (mod 26) .
The plaintext WHEN WILL I BECOME A FISH gives the ciphertext UXIB UCRR C TIYGWI O NCAX Group the letters: UXIBU CRRCT IYGWI ONCAX
Shift ciphers and ane transformation ciphers are called substitution or character ciphers because each letter is replaced by another letter. Theyre simple to use, but relatively easy to crack. For example, with any reasonably large message you can count the letters in the ciphertext and guess the substitution using frequency tables for letters in the English language. 2
As a partial remedy to frequency analysis, you might think of enciphering blocks of k letters at a time. To do this, encode letters as number from 0 to 25 in the usual way. Consider a block of k letters a1 a2 . . . ak . As the cipher key, choose a k k matrix M which is invertible mod 26. (M will be invertible mod 26 if det M is relatively prime to 26.) Then the cipher transformation is c = M a (mod 26), i.e. c1 a1 c2 a2 . = M . (mod 26) . . . . . ck ak You can decipher messages using a = M 1 c (mod 26).
1 (Note that = 91 = 3, because 3 9 = 1 (mod 26).) 9 Heres a message: SPICY MEATBALLS Break it up into two-letter groups and convert them to 2-dimensional vectors: SP IC YM (18, 15) (8, 2) (24, 12) EA TB AL LS (4, 0) (19, 1) (0, 11) (11, 18)
(5, 3) = FD, so the rst two letters of the ciphertext are FD. Continuing in this way, you obtain the ciphertext FD UW AG UI UP HH FY