Approaching Monome-Dinome

ND 2018 and JF 2019 both had Monome-Dinome CONs, and I misremembered having a VBScript solver for M-D. I was going to solve this one last cipher for both issues of the Cm, and then, really, take a break to do my chores. Turned out, though, that the earlier script was for Amsco, which also used the “monome” “dinome” terminology. By then, it was too late. I looked up the description for the cipher-type on the ACA website, and I found an article in the ACA Cm archives on how to solve M-D. The next day, I was at the school I teach at, and during one of the breaks I sat down and tried working on the ND 2018 M-D CON, because I didn’t have anything else to read. A little later, I had a longer break, and I solved ND2018 all the way up to almost getting the key. By the end of the day, I’d extracted the key, too. The following day was a rainy Sunday, so I went to a coffee shop and focused specifically on the JA2019 M-D CON. I had the key for that one 2 hours later, ignoring the fact that I was doing all my work in ink on paper because I couldn’t be bothered to pull my pencil out of my backpack.

Monome-Dinome is a simple monoalphabetic substitution cipher that uses a 3×8 grid to create the substitution table, either to the digits 0-9, or 10 random letters of your choice. Since the grid only holds 24 letters, 2 letters need to be doubled up (generally J with I, and either V with W, or Z with Y, but it could be anything, depending on the author’s discretion). I’ll use numbers, and double up I and J, and Y and Z. First, pick the order of 8 of the 10 digits and write them over the top of the grid. Use the remaining two digits as row selectors for the grid. Also, pick a keyword for the alphabet, write that into the grid and fill in the rest of the grid with the other letters.

. 71029645

----------

.|TEACHRBD

3|FGIKLMNO

8|PQSUVWXY

Write out your plaintext message:

T H I S I S A T E S T I T I S O N L Y A T E S T

Next, use just the single digits for the top row of letters from the grid (the monome), and the row selector plus column number for the letters in the other two rows (the dinome).

7 9 30 80 30 80 0 7 1 80 7 30 7 30 80 35 34 39 85 0 7 1 80 7

Finally, pull out all the spaces, and order the numbers in groups of five (out of tradition, and also because it makes the message harder to crack).

79308 03080 07180 73073 08035 34398 50718 07

Deciphering is the reverse process. First, make the grid, and fill in the key alphabet. Write out the ciphertext, and separate the numbers into 1 and 2-digit pairs. Finally, substitute the numbers for the corresponding letters in the grid.

Cracking M-D first requires that you identify the two digits used for the row selectors. If you look at the grid carefully, you’ll see that a selector can not be combined with itself (i.e. – 33, and 88 are illegal pairs), and it can not combine with the other selector (i.e. – 38 and 83 are illegal pairs).

Now, in my test cipher, the only doubled-up digit is 00, so we need to see what the pairings are. We do have a “93” and “39” combination, “03” and “30”, “08” and “80”, “07”, etc. But, the message is too short to draw other conclusions. So we need to do a frequency count.

0 - 11 (Invalid because of 00 pairing)

1 - 2

2 - 0

3 - 7

4 - 1

5 - 2

6 - 0

7 - 6

8 - 6

9 - 2

Because the two selectors pair generally with the other 8 digits, they should appear more frequently than anything else. Unfortunately, we still have three strong candidates – 3, 7, 8. Of the three, 3 is the most common, so let’s flip a coin and use 3 and 7. Break up the message into 1- and 2-digit units.

79 30 8 0 30 8 0 0 71 8 0 73 0 73 0 8 0 35 34 39 8 5 0 71 8 0 7

Yes! A clear reason to invalidate 7. Actually two clear reasons. First, it’s pairing with 3 (73), and second it appears at the end of the message unpaired. That leaves me with 3 and 8 as the selectors. Let’s try this again.

7 9 30 80 30 80 0 7 1 80 7 30 7 30 80 35 34 39 85 0 7 1 80 7

This is now a Patristocrat (the ACA’s name for newspaper-like Crypto Quips minus the word spacing and punctuation). Let’s supply a crib – “it is”. This gives us a filter of “1_1_”. Or, the same letter has to appear somewhere in the text separated by something that itself isn’t duplicated within the 4-character segment.

Possible candidates are: 30 7 30 80 and 80 30 80 0.

We need to do another frequency count.

7 9 30 80 30 80 0 7 1 80 7 30 7 30 80 35 34 39 85 0 7 1 80 7

0 - 2

1 - 2

7 - 6

9 - 1

30 - 4

34 - 1

35 - 1

39 - 1

80 - 5

85 - 1

Following the ETAOIN SHRDLU pattern, “E” would generally be the most common letter, but since we already know what the plaintext is, we also know that things are kind of out of skew. But, we should still expect “T” to be a little more frequent than “I”. With “30 7 30 80”, 7 outperforms 30 at 6 to 4. while with “80 30 80 0”, it’s 80 for 5 and 30 for 4. We’d also expect “S” to slightly outperform “I”, and we don’t get that with “80 30 80 0” (0 only shows twice). The better bet for our crib right now is “30 7 30 80.”

T 9 I S I S 0 T 1 S T I T I S 35 34 39 85 0 T 1 S T

For the first word, “T9IS”, the first obvious choice would be 9 = “H”. But that only appears once. We do get “0T1ST” twice, and that could be “something-TEST”. “IS something TEST” might be “IS A TEST”, so let’s try that (A = 0, 1 = E).

T H I S I S A T E S T I T I S 35 34 39 85 A T E S T

From here, we don’t have enough information to pin down “35 34 39 85”. So, let’s look at the grid.

. 01245679

----------

.|AE....TH

3|I

8|S

And now we really are at a deadend because we don’t have that many letters in the alphabet to work with. But, we can make maybe one or two observations. First, the last row is going to include RSTUVWXY unless one or more of the letters are in the keyword. We can already see that “T” has to be in the key, while “S” isn’t. The other upper end letters aren’t either because they’re pretty low frequency. That means that the “S” column may be shifted two places to the right. Like so:

. 12045679

----------

.|E.A...TH

3|..I

8|..S

I’d fill in UVWXY, except I don’t know which letters pair with “T” and “H”. Notice, though, that “A” is in the middle of the key. Also, there are 8 + 2 letters until we get to “I”, and “I” is the 8th letter in the alphabet. Therefore, the key has to use 2 letters higher up in the alphabet than “I”. We already have “T”, and we think we’ve placed “S”. We’re not using “J”, and that just leaves K-R. We don’t think “I” is in the key, unless it’s a really long key. There are 7 letters in the grid between “I” and “S”, and normally there are 8 letters there. Anagramming “EATH” + “BCD” + one letter from “KLMNOPQR” will give us “EARTH” and “TEACHER” (drop the second “E” for “TEACHR”). We would like “A” to be the 3rd letter in the key, and we do get that with “TEACHER”. If we rearrange the grid again, we get:

. 71049562

----------

.|TEACHRBD

3|FGIKLMNO

8|PQSUVWXY

Yes, the numbers on the top row are speculative for “C”, “R”, “B” and “D”, but this is the best we can do with such a short plaintext message. Even so, I don’t think I cheated all that much by knowing the original key alphabet. I did make a few leaps, but they were probably justifiable.

BUT… The word we couldn’t place, “35 34 39 85”, uses three letters from “KLMNO” and one from “UVWXY”. Further, 35 and 85 are in the same column. Surprisingly, 39 aligns with “L” (we’ve placed the 9 column because it includes “H”). That means our word could be M?LW, N?LX or O?LY. If we assume that it is “ONLY”, it does fit in with our plaintext message, and maybe we can finish off the number key after all.

. 71049245

----------

.|TEACHRBD

3|FGIKLMNO

8|PQSUVWXY

In any event, Monome-Dinome is solvable with pencil and paper, and I’m not seeing a reason for writing up a solver for it just yet. I may consider a tool for doing the digit counting for me, and for testing for legal row selectors, but it’s not a priority. When the next M-D CON comes out, I’ll try Bion’s solver first, and then see where that takes me.

Now, I have no excuse. Chores. Sigh.

**Summary:**

1) Monome-Dinome is a simple single-alphabet substitution cipher.

2) Pick a keyword, remove duplicate letters, and then complete the alphabet with the other letters, minus J and maybe V or Z.

3) Pick an 8-digit number (0-9) with no repeating digits and write them above a 3×8 grid. Write the remaining 2 digits to the left of the bottom two rows of the grid, then fill in the grid with the 24-letter alphabet.

4) Write down the plaintext message and encrypt it with the single digits for the top row of the grid, or the row selector and column digit for the bottom two rows. Remove the spaces between numbers and order them in groups of 5.

5) For decrypting, just reverse the process.

6) To solve M-D, do a frequency count on the digits, with the expectation that the 2 highest values will be the row selectors. Of the two selectors, the one with the lower frequency will probably represent the bottom row of the grid (because of the presence of so many low-frequency letters, like Q, V and X.

7) The list of row selectors can be narrowed down by eliminating any digits that appear in pairs in the plaintext (i.e. – 11 or 55). Also, no selector will be paired with the other selector (if you have “83”, and “8” is a selector, “3” can’t be the other selector.)

8) Once you have the selectors identified, solve the CON as a Patristocrat.

9) You can extract the keyword and grid numbering by putting the letters in the lower two rows into ascending order.

10) M-D is not particularly secure, and if you have a crib with repeated letters (i.e. – “letter” or “river,”) it’s pretty easy to solve. It can be hardened by completely randomizing the alphabet, and by applying something like Rail Fence to the finished cipher.