POSTLUDE

A Prelude opened this textbook with the puzzle Mastermind that introduced combinatorial reasoning in a recreational setting. This Postlude looks at a cryptanalysis problem that is again of a recreational nature but also illustrates the less structured side of combinatorial reasoning as it often occurs in real-world problems. In particular, we will look at a simple cryptographic scheme in which the analysis of underlying combinatorial problems is complicated by the somewhat random pattern of letters in English text.

P.1 Frequencies

There have been many tables produced of the relative frequencies of letters in English writing, starting with Samuel Morse (of Morse code fame). We use frequencies averaged over several tables.

Most Common Letters in English Text Vowels Consonants E 12% T 9% A, I, O 8 % N, R, S 6-8% D, L 4%

The least frequent letters, all consonants, are:

J, Q, X, Z below .05%

As we shall see, it is also useful to know which pairs of consecutive letters, called digraphs, are most frequent. The eight most common digraphs are

Most frequent: TH Second most frequent: HE Next six most frequent: ER, RE and AN, EN, IN, ON

N is unique among the very frequent letters in that close to 90% of its occurrences are preceded by a vowel; other frequent letters have a much wider range of other letters preceding them. Some other frequent digraphs that can be helpful are:

ES, SE ED, DE ST TE, TI, TO OF

Frequent consonants tend to appear beside vowels but vowels do not occur side-by-side often and similarly frequent consonants do not appear side-by-side often except for TH and ST. So there is a quasi-bipartite graph-like relationship with vowels as one set of vertices and frequent consonants as the other set of vertices in the bipartition), and the frequent digraphs are the edges. There is one triple of consecutive letters, called a trigraph, that stands out, namely, THE. THE is four times as common as any other trigraph in English text. It is frequent both as a three-letter word and as a part of other words. If we are given an encoded message, we could count the frequency of each letter in the message to determine single-letter frequencies. To get information of how often various letters occur before and after other letters, we build what is called a trigraphic frequency

1 table. For each occurrence of a letter, we record the letter just preceding and the letter following this letter. To illustrate, consider the following cryptogram. Here spaces have been removed between words, but for readability letters are written in groups of five.

Cryptogram FJYHP KKYRH YKYRF HYVYK PRQYI SFIFP RNAVP PUDQC CAYJY COQRF JYRYD TQYCO JPMIY FJQIN YSVTP VFJYT QVIFF QKYQR FJYES IFIFM OYRFI JSWYP TFYRK QIAYJ QWYOQ RSVPD ONRPQ INTSI JQPRP MFIQO YQFQI JPEYO FJSFF JYQRO PPVIY FFQRB DQCCA VQRBP MFFJY AYIFQ RFJQI NYSVI BVSOM SFQRB HCSII FJYVY DQCCA YRPOY CQWYV QYIPT OPKQR PIEQX XSSCC PDYOQ RIQOY

Table P.1: Trigraph table for cryptogram

6 4 12 6 3 27 0 4 22 16 7 0 5 5 13 21 31 20 13 6 1 12 3 2 37 0 A B C D E F I J K L M N O P Q R S T U V W X Y Z NV RD QC UQ YS .J YP YS FY PK PI RA CQ HK RY YH IF DQ PD YY SY QX JH CY RP CA YT PY RH RY FF YY KY FO IY CJ KR DC YF YV VP AP QY XS KR IY IV YO PO IQ SI FY MY FY YY PF OR MY FR OR PQ EI YQ ST QY HK CV RH YO BQ IP BC QN OP YP PF IT YQ VP TY PN JW PF PF KR YY HS QC YQ RJ VF FQ QY OS IY DN PU JI QF RV NS QI HV CY CA PY YJ SF FY RQ QY JM QN YY TI PO SP VK HS VJ FF FY PQ YF TV TV QF JF PI QI QC IF FJ IS RP YT FK YF YV AQ AJ CA FQ QA YQ SM VD YR YK VO SI JC YQ RJ QN IQ PY RQ KI QS MF BS JR SC II SJ IP TP QR JW NP CI YY RD CP IM FQ FS YQ RM OR PP XS YQ QC RI QJ FY QY JE PI QO SC IF TY VF FY OP JP QB NS MI YF FQ PV IO QB JT QQ QN FY BM YF QF KQ OJ VB RO FI QB JE SF SI IT YR YP OR FJ IF OK FR QP WP YF YP RI DC QI FR FQ PE CD VR AJ MF RQ FR WO FJ JI OQ IQ FR EO RJ DC JQ SQ CW IF IJ VY JA KR AI EX NS OR JV IQ VD AR OC WV QI DO O.

2 The trigraphic frequency table for the cryptogram is given in Table P.1. Letter frequencies appear at the top of each column in Table P.1. When a trigraph is repeated in some letter’s column, the trigraph is underlined. To illustrate how the table is constructed, consider the beginning of the cryptogram: FJYHP KKY . . . For each occurrence of a letter, we enter the letter just before it and the letter just after it. For the first letter is F, we enter .J in F’s column (the ‘.’ indicates that since F is the first letter of the message, no letter precedes it). For the second letter J in the message, we enter FY in J’s column. For the third letter Y, we enter JH in Y’s column. For the fourth letter H, we enter YP in H’s column; for the fifth letter P, we enter HK in P’s column. For the sixth letter K, we enter PK in K’s column. Since the seventh letter is also K, next in K’s column, we enter KY. For the frequent letters, their columns of trigraph data can be overwhelming, and so it is helpful to make a table for each frequent letter, such as F, listing the frequency of letters that occur 2 or more times Before F and After F. See Table P.2.

Table P.2: Digraph repetitions for frequent letters in table P.1

12 27 21 16 13 22 31 20 14 12 36 C F I J O P Q R S V Y___ Bef Bef Bef Bef Bef Bef Bef Bef Bef Bef Bef Aft C4 F4 F4 F10 C2 J2 D3 P3 J2 A2 A4 3C Q3 I6 Q5 I3 Q2 G2 F4 Q10 S2 P2 I2 2D Y3 M2 S3 Y2 Y3 P2 I3 Y6 Y2 S3 J8 2F R5 V3 R4 J4 Y3 K3 3I Aft S3 Y3 Aft Aft V2 K2 Aft Aft N2 2J 3A Y2 2P 2P O2 3B 3F Aft O4 2K 4C Aft 4Q 2Q Aft T2 4F 3I 3I Q3 30 2O Aft 6F 3S 4Y 2D V2 4P 3V 2P V2 3Q 4F 3J 8Y 2M Y3 2Q W3 6R 4I 3N 2P 2Y 2S 10J 2Q 2R Aft 3V 5Q 2Y 2T 3C 2V 4I 2O 10R 3Y 2W

We shall be referring to the data in Tables P.1 and P.2 repeatedly through this Postlude. Finally, we list the sequences of 3 or more letters that are repeated several times in the message.

7 times: FJY 3 times: DQCCA, RFJ, QRB (also DQCCAY 2 times)

Note that longer repeats, such as DQCCA and DQCCAY, can be found by looking at trigraph (3-letter) repeats and concatenating these repeats together. That is, DQCCA is built from the repeated trigraphs of DQC, QCC, and CCA. Observe that this 5-letter sequence is probably a word, since the chances are extremely low that a repeated 5-letter sequence would be formed by a common ending of three different words followed by a common start of three other different words. Now we start the decoding process. We typically begin with the letters in the English word THE. The very frequent trigraph FJY is a perfect fit to be the encoding of THE, since:

3 i) THE is the most frequent trigraph in English text and FJY is the most frequent trigraph in the cryptogram (occurring 7 times); ii) E is the most frequent letter in English text and Y is the most frequent letter in our cryptogram; iii) TH is the most frequent digraph in English text and FJ is the most frequent digraph in the cryptogram (occurring 10 times); and iv) T is one of the most frequent letters in English text and F is one of the most frequent letters in our cryptogram. We write the information about the encoding of THE as

TP = FC, HP = JC, EP = YC, where the P subscript stands for Plain text and the C subscript stands for Code text. Once we know that EP = YC, we can look for frequent letters that rarely beside Y, keeping in mind that vowels do not occur side-by-side often. Looking through the digraph information in Figure P.2, we see that YC has no repeated occurrences before or after PC (YC appears before PC once and not at all after PC). So PC is extremely likely to be a vowel. To find another vowel, we can look at frequent code letters that have few occurrences of YC and PC before and after them. An excellent candidate vowel is SC which has no PC’s before or after it, no YC’s after it but there are 2 YC’s before it. No other frequent letter has only two YC’s beside it (before or after). Finally, recall that in English text the letter N is distinctive because it occurs almost exclusively with the frequent vowels (A, E, I, O) before it. One code letter has exactly this characteristic, namely RC. Nineteen of the 20 occurrences of RC are preceded by PC (3 times), QC (10 times), and YC (6 times). We already identified PC and YC as vowels. So NP = RC, and QC is another vowel. While QC has YC (=EP) occurring 3 times before and 3 times after it, QC has no PC before or after it and has no SC before or after it; recall that SC was identified as a likely vowel in the preceding paragraph. Thus, YC (=EP), PC, QC and SC are extremely likely to be the four frequent vowels AP, EP, IP, and OP, although we do not know which vowel corresponds to each of these code letters other than that YC = EP. Among the four most frequent English consonants NP, RP, SP and TP, we have identified that TP = FC and NP = RC. In sum, we have made a very good start at breaking this cryptogram by only considering aggregated data about the frequency of single letters, digraphs and one trigraph.

P.2 Keyword Transpose Encoding

In this Postlude we shall consider the following scheme for encoding text called keyword transpose encoding. Interested readers can learn more about the basics of cryptography and some of the associated mathematics from the references at the end of this Postlude or from web sources. We use a given keyword, suppose it is MORNING, to create a one-to- one mapping of plain-text letter to code letters. The first step is to build an array of letters in which the first row consists of the letters in MORNING, with repeated letters omitted (that is, we drop the second N), and the remaining rows are constructed by listing the rest of the 26 letters (those not in the keyword) in alphabetical order row-by-row, as follows:

4 M O R N I G A B C D E F H J K L P Q S T U V W X Y Z

The number of columns in the array, which we denote by ncol, is the number of distinct letters in the keyword. MORNING has six distinct letters in it, and so ncol, = 6 for this array. The number of rows in the array, denoted nrow, equals ⎡26/ncol⎤, where ⎡ ⎤ is used to indicate that we round the quotient up to the next whole number. With the keyword MORNING, nrow = ⎡26/ncol⎤ = ⎡26/6⎤ = 5.

Now we create the encoding sequence by listing code letters in the array taken column-by- column. We place this sequence of code letters underneath the plain-text :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M A H S Y O B J T Z R C K U N D L V I E P W G F Q X

That is, the plain-text letters AP, BP, CP, DP, EP are encoded with the code letters that appear going down the first column of the array: MC, AC, HC, SC, YC. This encoding is called a transpose scheme because we build the array by listing the code letters in a row-by-row scheme and we then transpose the array by taking the code letters column-by-column to get the encoding sequence. This process gives a fairly good scrambling of plain-text letters into code letters, and can be generated from the memory of a simple keyword. Now we consider how we can use the structure of a keyword transpose scheme to help us decipher the message. The first step is to determine ncol, the number of columns in the array or equivalently the length of the keyword (not counting repeated letters). Let us consider how the plain-text letters are assigned to locations in the keyword transpose array for keywords of length 6, length 7 and length 8. We do not know the code letters in the array and so we leave the code positions blank. However, we do know where the plain- text letters go. In each of these arrays, we insert the encoding of the letters in the English word THE that we determined in the previous section; namely, TP = FC, HP = JC, EP = YC,

5 Table P.3: Possible Keyword Transpose Arrays

Table P.3a: Array for ncol = 6

Plain text: A F K O S W Code text: ______

Plain text: B G L P T X Code text: ______F __

Plain text: C H M Q U Y Code text: __ J ______

Plain text: D I N R V Z Code text: ______

Plain text: E J Code text: Y __

Table P.3b: Array for ncol = 7

Plain text: A E I M Q U X

Code text: __ Y ______

Plain text: B F J N R V Y Code text: ______

Plain text: C G K O S W Z Code text: ______

Plain text: D H L P T

Code text: __ J __ __ F

Table P.3c: Array for ncol = 8

Plain text: A E I L O R U X

Code text: __ Y ______

Plain text: B F J M P S V Y

Code text: ______

Plain text: D G K N Q T W Z

Code text: ______F __ __

Plain text: A H Code text: __ J

6 Remember that the code letters in the first row of the array spell the keyword (with repeated letters omitted) and then the succeeding rows list the non-keyword code letters in alphabetical order. Consider the encoding TP = FC. Since F is about a quarter of the way through the alphabet, if code letter FC is not in the keyword (appearing in the first row of the array), then FC will appear about a quarter of the way through the alphabetical listing of the other code letters in the remaining rows of the array. We look at where FC is placed in the three different encoding arrays given above when we make the assignment TP = FC. For ncol = 6, TP is located towards the end of the second row, i.e., corresponding to a code letter not in the keyword that is about a quarter of the way through the alphabet. This is exactly where FC should appear if FC is not in the keyword. In the second scheme where ncol = 7, TP is located at the very end of the array and would be encoded as the last letter not in the keyword. Thus TP = FC is impossible for this array. The situation is no better when ncol = 8, for again TP is located near the end of the listing of the letters not in the keyword. We conclude, based on the encoding TP = FC, that only the keyword transpose encoding array with ncol = 6 is possible among these three arrays. Next we perform the same analysis for the encoding of HP and of EP. JC (=HP) is about 40% of the way through the alphabet, and, since J is a very infrequent letter, JC is unlikely to appear in a keyword. Then the encoding HP = JC requires that HP appear in a position that corresponds to a code letter that is 40% of way through the listing of non-keyword code letters. For ncol = 6, HP is well placed (see the 6-column array). For ncol = 7 and ncol = 8, HP has a location that corresponds to a letter near the end of the alphabet -- impossible. So again, only for ncol = 6, does HP = JC fit the encoding array. Finally we look at the encoding EP = YC. Y is a relatively infrequent letter that is the next- to-last letter in the alphabet. The code letters YC and ZC are both unlikely to be in the keyword and so the code letter YC will normally appear as the next to the last letter in the non-keyword code letters. For ncol = 6, EP is positioned at the next-to-letter non-keyword code letter. Exactly the right place for EP = YC. For ncol = 7 and ncol = 8, EP is assigned to the second letter in the keyword. While there are words in which Y is the second letter, such as CYPHER, the odds of Y not being in the keyword are vastly greater than Y being the second letter in the keyword. When we look at how the encodings of each of TP = FC, HP = JC, and EP = YC fit the three different arrays, we see that the array with ncol = 6 is the only one that makes sense. We note that if we had looked at other arrays with greater or fewer columns than the above three arrays, we would have found that TP or HP would have to correspond to a code letter not in the keyword that was near the end of the alphabet— impossible given TP = FC and HP = JC. So we can be very confident that ncol = 6. As an aside, note that if YC is the most frequent code letter in a cryptogram, we can be quite certain that EP = YC and ncol = 6. Also if a 7-letter keyword is used, then TP = ZC (see Table P.3b); furthermore this is the only array where ZC can be the encoding of a very

7 frequent English letter. Thus, if ZC is a very frequent code letter in a cryptogram, then TP = ZC and ncol = 7. The underlying logical argument here was used many times in the graph theory part of this text, where it was called the AC Principle: Assumptions have useful Consequences. An example of the AC Principle is that if a graph is planar, then there are a number of properties that such a graph must have, such as e ≤ 3v – 6. If one of these properties does not hold, then the graph cannot be planar. Here, we tried assuming different lengths of the keyword, and then checked for each length whether the known encodings for the plain-text letters T, H and E were consistent with the required position of their code letters in the different arrays. When the encodings did not fit an array, we could eliminate the associated keyword lengths. Let us continue with our efforts to determine the encoding. In the previous section, we used trigraphic analysis to show that NP = RC and that PC, QC and SC were very likely to be the three other frequent vowels AP, IP, and OP. We can now conclude that JP = ZC since JP must be encoded as the last of the non-keyword letters (since we know EP = YC). We add this information to the 6-letter keyword transpose array, obtaining Table P.3a(i).

Table P.3a(i) Plain text: A F K O S W Code text:{P,Q,S} __ __ {P,Q,S} __ __

Plain text: B G L P T X Code text: ______F __

Plain text: C H M Q U Y Code text: __ J ______

Plain text: D I N R V Z Code text: __ {P,Q,S} R ______

Plain text: E J Code text: Y Z

Determining the size of the keyword transpose array places tremendous constraints on encoding possibilities. While it can be hard to determine the encoding for plain-text letters that appear in the keyword row of the array (its first row), the encoding of several frequent plain-text letters in others rows of the array is usually possible. For example, consider the plain-text vowel IP, which is the other frequent vowel (besides EP) that does not appear in the first row. Ignore for a moment that IP is a vowel and concentrate solely on its position in the array. IP appears just before NP (= RC) in the fourth row of our encoding array, and so IP corresponds to a code letter that appears before, or almost before, RC in the list of non-keyword code letters The letter just before R in the alphabet is Q and since Q is an extremely infrequent letter and unlikely to be in the keyword, it is virtually certain that QC is the code letter just before RC, in the listing of non-keyword code letters, that is, IP = QC.

8 We confirm this by noting that QC is known to be a frequent vowel and hence is one of our three possibilities for the encoding of IP. Next look at RP, the other frequent consonant (besides TP, and NP) that does not appear in the first row. RP appears just after NP = RC in the fourth row. The letter following R in the alphabet is S, but SC cannot be the next code letter after RC in the fourth row. SC is known to be a frequent vowel and the remaining frequent vowels appear in the first row (see Table P.a(i) }. The next two code letters TC and UC that might follow RC in the fourth row have too low a frequency (see Table P.1) to be RP. Next is VC, the only remaining (in alphabetical order) high-frequency letter except for YC, which is known to encode EP. So based on frequency alone, VC is the only possible encoding of RP. Moreover, VC has repeated occurrences of YC (=EP) both before and after it, matching the fact that ER and RE are both frequent English digraphs. This solidifies the assignment RP = VC. Now note that there are two (undetermined) code-letter positions at the end of the fourth row following VC (= RP ); also we know that the fifth row starts with YC (= EP ). Since there are just two letters, W and X, in the alphabet between V and Y, we conclude that the two code letters at the end of the fourth row are W followed by Z; that is VP = WC and ZP = XC. So we now have determined five of the six code letters in the fourth row

Fourth row of array: Plain text: D I N R V Z Code text: __ Q R V W X

The other two frequent code letters that are known to be vowels, PC and SC, must correspond to AP and OP, which are in the keyword. Also the fact that TC and UC are missing in the fourth row means that these code letters are also in the keyword. Low frequency letters can also be useful in finding entries in this array. For example, QP is a very infrequent English letter and appears in the third row of our array. QP will be encoded by an infrequent code letter that occurs soon after JC, the encoding of HP, the second code letter in the third row. Looking in Table P.1 at the frequencies of letters after JC, LC stands out with zero frequency; all other code letters near LC are at least moderately frequent. Thus it is extremely likely that QP = LC. Since there is only one letter between JC and LC in the alphabet, the position in-between JC and LC in the third row must be occupied by KC. That is, MP = KC. We now rewrite the array in Table P.3a(ii) with the code words we have determined so far.

9 Table P.3a(ii)

Plain text: A F K O S W Code text: {P,S} __ __ {P,S} __ __ (T and U also known to be in keyword)

Plain text: B G L P T X Code text: ______F __

Plain text: C H M Q U Y

Code text: __ J K L __ __

Plain text: D I N R V Z Code text: __ Q R V W X

Plain text: E J

Code text: Y Z

We have determined the encodings of many plain-text letters. As shown in Table P.3a(ii), we know four of the six letters in the keyword, and so there are only two additional code letters that belong in the keyword row. Let us identify where in the code alphabet these two remaining code letters in the keyword could occur. There are three sequences of missing code letters: i) There are four unfilled code letter positions in the second row preceding FC, and there are five letters of the alphabet preceding F. Thus one of the code letters AC, BC, CC, DC, EC must be in the keyword. ii) There are two unfilled code letter positions between FC and JC , and there are three letters of the alphabet between F and J. Thus one of the code letters GC, HC, I must be in the keyword. iii) There are three unfilled code positions between LC and QC, and there are four letters of the alphabet between L and Q. However, we know that one of these letters, PC, must be in the keyword . Then the other three letters must occupy the three unfilled positions. That is, UP = MC, YP = NC, and DP = OC, Let us turn now to the two plain-text vowels in the first row of the array, AP and OP, that we know correspond collectively to the code letters, PC and SC. One of the ways to try to identify the encoding of AP is to look in the message for common short words that consist an A in combination with other letters that are already decoded. Such a word is THAT, since the TP and HP are known. Another consecutive pair of common words is HAVE BEEN (currently we know the encoding of all these letters except AP and BP). In the fourth row of th our message starting with the 11 letter we find a possible (THAT)P, namely the sequence (FJSF)C. Moreover, these four code letters are followed by (FJY)C which we know is the encoding of (THE)P. The odds of the phrase “THAT THE” in our plain-text message, i.e. AP = SC, are vastly greater than that of a word ending in “THIT” is followed by “THE”, i.e., IP =

10 SC and so AP = PC. So we conclude with high confidence that AP = SC. It then follows that the other plain-text vowel in the keyword row OP must be encoded as PC. As an aside, we note there is no pair of consecutive YC‘s (= EP) in this cryptogram, and hence no point in trying to find an encoding of HAVE BEEN. We have found the encodings of the four frequent plain-text vowels and all the most frequent plain-text consonants except SP. There is just one code letter occurring more than 12 times that we have not identified, namely IC, which occurs 21 times. It is natural to look for digraph information to confirm that SP = IC. The list of frequent English digraphs near the beginning of this Postlude, contained SE. ES and ST. And indeed in the digraph information for IC we find that YC (= EP) both precedes and follows IC several times and that FC (= TP) follows IC six times. Based on the high frequency of IC and these digraphs with IC, it is extremely likely that IC = SP. Observe also that for the two missing non- keyword code letters between FC and JC in the array, there are now only two choices of code letters: GC and HC, since IC (= SP) is in the keyword row. Thus XP = GC and CP = HC . The only moderately frequent plain-text letter we have not identified now is LP and the only unidentified code letter with moderate frequency is CC, which occurs 12 times. The location in the array is good for the match CC = LP , since this is the assignment that would result if AC, BC, or CC were all non-keyword letters, so that CC would be the third code letter in the second row of the array. Further, no other unidentified code letter occurs more than 6 times. However, there are no frequent English digraphs with L to look for. Based on the frequency of CC and its position in the array, the match CC = LP looks good. There is one additional piece of information to use. Recall that we found the repeated sequence (DQCCAY)C in our message. If CC = LP then we are forced by the missing letters in the beginning of the second row of the array to assign AC = BP and BC = CP. Then we decode (DQCCAY)C as (_ILLBE)P To help us, we note that (FJYVY)C = (THERE)P immediately precedes one of the occurrences of (DQCCAY)C yielding the decoded sequence of letters THERE_ILLBE. We recognize the phrase THERE WILL BE, confirming that CC = LP. We have additionally determined that DC = WP. Back in the second row of the array, the final missing code letter can be assigned (now that we know DC is in the keyword). Thus EC = PP.

We write the array with all the encodings we have identified:

11 Table P.3(iii)

Plain text: A F K O S W Code text: S __ __ P I D (T and U are also in keyword)

Plain text: B G L P T X Code text: A B C E F G

Plain text: C H M Q U Y

Code text: H J K L M N

Plain text: D I N R V Z

Code text: O Q R V W X

Plain text: E J

Code text: Y Z

We note that we have been able to decode all but two of the code letters without determining the keyword. We accomplished this by using the structure of the encoding array, frequency data for code letters and digraphs, and the repeated sequence (DQCCAY)C. The only time we looked at the cryptogram to guess a particular word involved the encoding THAT when we knew the encoding of T and H. Finishing up the decoding, we now easier deduce that the keyword is STUPID. One does not always get a near-complete decoding of the code letters in a cryptogram by applying the above methods, as occurred here. However, it is virtually always possible to determine the encoding of THE and N. Then the number of columns in the keyword transpose array can be determined, and from the array structure, some other frequent code letters can be decoded. If further progress is difficult, one can substitute into the cryptogram the plain-text decodings of all the known code letters. From all the resulting word fragments, the plain-text equivalents for other code letters can be deduced and then confirmed by checking that these decodings fit properly into the keyword transpose array. Alternating between using the array structure and using word fragments formed by deciphered code letters, one can normally decode any message. In the very worst case, one might have to guess the plain-text equivalent for one or two frequent code letters and then apply these proposed decodings in the cryptogram to see if they produce words and word fragments that validate the guesses. Readers will hopefully recognize in the preceding reasoning the same sorts of step-by- step analysis, aided by insights unique to the particular problem at hand, that arose repeatedly in the graph theory and counting chapters of this text. The important difference here is that we face the additional challenge of randomness, a complication that characterizes many of the applications of combinatorial reasoning in real-world problems. Preparing readers to analyze the combinatorial situations they will face in future employment is the ultimate goal of this text.

12 POSTLUDE EXERCISES: The following cryptograms are all encoded using the keyword transpose method discussed above.

1. Decode this cryptogram TDHQP HKFHZ PIYHF KNOYI ZHFAH EDLAI EXZTZ OEZQE XXAHT AXHZN YHFBN FOTXX ZWHPJ PZHOP YFNLF TOOED LTDVT YYXEK TZEND PYFNL FTOOE DLBNF TXXNZ WHFKN OYIZH FPEZE PHPZE OTZHV ZWTZE DZQNJ HTFPZ WHFHQ EXXND XJAHN DHZWN IPTDV CNAPQ NFXVQ EVHBN FKNOY IZHFY FNLFT OHFD

2. Decode this cryptogram (note: the sequence JPENFYV occurs five times) FKYVY STDDB YQYLP UHFVG FTPUH GFFKY JPLEN FYVJY UFYVU YIFSY YAFPE VPFYH FFKYV YHFVT JFTPU HPUYU VPDDL YUFHT UJPLE NFYVH JTYUJ YJPNV HYHTU FKYRG DDFKY JPLEN FYVJY UFYVS TDDBY JDPHY QQNVT UCFKY EVPFY HFHGU QJNVV YUFJP LENFY VHJTY UJYHF NQYUF HFPDQ FPVNU FKYTV EVPCV GLHGF JPLEN FYVHG FPFKY VDPUC THDGU QHJKP PDH

3. Decode this cryptogram PCFIQ BZWOR ZEVOF ZRMFZ WMRKG CYWZW OQGIJ QEGRO SOGOF QZIOZ OTYOG MOFJO VMFRQ XHMFK JGIYZ QKGCP RSWOF YGQBO RRQGZ EJNOG CRRMK FOVZW MRWQP OSQGN YGQAX OPZWO GOSOG OLEMZ OCBOS RZEVO FZRSW QWCHO AOOFR ZEPYO VAIZW MRNOI SQGVZ GCFRY QROOF JQVMF KRJWO POKQQ VXEJN

4. Decode this cryptogram RPQPO LTPUG KYDVP PEPEG KYBVH DKGKY PVQVY FOCGG KHGGK YTOMA YVPEY RBYFS THDCH THVBV HDKSF CYFFG KHTPV YNOHC GPGKV YYGSM YFGKY TOMAY VPEWY VGSJY FSTGK YBVHD KMSTO FFSIS EGKYB VHDKS FASDH VGSGY GKYTO MAYVP EYRBY FSFAP OTRYR AQGUP GSMYF GKYTO MAYVP EWYVG SJYFM STOFE POV

5. Decode this cryptogram GKXUX SLTIG FNINX TGGID ILXSA QIPYF TGGID XFUTK IYGKX RXJIR STCIA GKXJI PULXJ UQEGI CUFNL SLLPE EILXR GIBXR ITXQI PASUL GTXXR GIBPS DRGKX GUSCU FEKGF BDXFT RGKXT DIIMA IUGKX YIURG KXTXH GGUQG IASTR GKXVI YXDLB QDIIM STCAI UAUXO PXTGJ IRXDX GGXUL GKFGR ITIGF EEXFU AUXOP XTGDQ BXLSR XGKXJ IRXDX GGXUG KFGLG FTRLA IUGKX EDFST GXHGD XGGXU XTXHG GUQGI ASTRY KSJKJ IRXDX GGXUS LTCII RDPJM

6. Decode this cryptogram JDBXB CXBXY UWXIJ DCJTX WRBII WXYJQ EBXKS VVYIB FBKQX GTJWM XCUIS FJDBM XCTDJ DBWXG JCEBD WUBRS FCVJD CJKSV VABNB XGDCX OJWOB QWOBD WKBNB XIJYO BKJIK DWEFW KDSUK BVVAB VSBNB JDCJJ DBQXG TJWMX CUIJD SIGBC XKSVV ABJDB ICUBI SVVGU BIICM BIJDC JDBDC IYIBO SFTCI JGBCX I

13 7. Decode this cryptogram JUFYR QYPXI JNSIX XAMPE VNENV AHYEN QIVND ZFUEA REKNE ZPLNN YUXXU XJPWP XIJAN GNEUK NQPRZ PBZWN JPFFN DJNFN DZNMN EJIQN QZWIQ HNUEI DZWNY UQZQZ RVNDZ QWUGN ANNDG NEHAP IOZNE PRQUD VPBZN DIDZN EERYZ NUJPF FNDJN FNDZQ YNULN EQQYN JIUXN XNJZE PDIJV NGIJN QZPVN ZNJZW IVVND JUDQP BANNE SIXXA NRQNV

8. Decode this cryptogram FKXUX JITFS TOXFI BXUXE IUFLF KHFFK XOTSF XRLFH FXLHF FIUTX QCXTX UHDYS DDHTT IOTJX FKHFF KXMIL FYHTF XRJUS MSTHD LSTFK XOTSF XRLFH FXLHU XTIYH DDAIU MXUIA ASJXU LIAAS THTJS HDSTL FSFOF SITLF KXKOT FAIUF KXLXE XIEDX YSDDB XSTFX UTHFS ITHDL STJXM HTQIA FKXMK HVXXL JHEXR AUIMF KXJIO TFUQ

9. Decode this cryptogram ZWEUE BRFRZ RNFNB VLGVY WUEYE FUONB ZWEZE SZANN MJNCV GEGEV URFLZ WEGEV GEOEH EGVXU RBBEG EFZUE BRFRZ RNFOZ WEEFL RFEEG OCOEN FEOEZ NBZEG TOZWE TVZWE TVZRK RVFOC OEVFN ZWEGO EZVFU ZWEYW JORKR OZOCO EVFNZ WEGOE ZZWEU EBRFR ZRNFJ NCOWN CXUCO EROZW ENFEZ WVZRO EVORE OZBNG JNCGV YYXRK VZRNF

10. Decode this short cryptogram (warning: E is not the most frequent letter). MYTKI JIRUL AZOAH MIJAC UYGII JIUJA CHETR JMRUY MJFAG RMRPJ FTMEX ALAZU YMRQM OAZEX OAZRU ARTRI TGELG IJHAR JITJU AVYMO YVTLV IFMPY UXIOM XIUAP A

REFERENCES

H. Gaines, Cryptanalysis, Dover, New York, 1956.

R. Lewand, Cryptological Mathematics, Mathematical Association of America, Washington, D.C., 2000.

A. Sinkov and T. Feil, Elementary Cryptanalysis, 2nd ed., Mathematical Association of America, Washington, D.C., 2009.

14