Taking my own code challenge…

June 22, 2009 | Cryptography | By: Mark VandeWettering

Back in 2007, I made a blog post entitled “Code Challenge”, where I put forth a code challenge.

Code Challenge | brainwagon.

Nobody took the challenge. But what was slightly odder was that I had no recollection of making this challenge, or even what type of cipher it was. The only clue that I had was that it was apparently in response to an episode of the increasingly mediocre television show Numb3rs.

So, I considered it a challenge sent from past Mark to future Mark. The first thing I had to do was to try to identify the type of cipher. I had made this posting in June of 2007, and I guessed that I would have been watching episodes from that season (season 3) but possibly in reruns. I relatively quickly located “The Janus List” and its “straddling checkerboard cipher” as the likely method. Indeed, reading the description of the cipher (try this blog entry for details) it began to come back to me.

So, I tried to think of how to crack it. Here’s the insight. The straddling checkerboard cipher is essentially a simple subsitution cipher, except that each character is either encoded into one or two characters. What makes it easy is that there are eight single character letters, and twenty double character letters, but all double character letters start with one of the two non-single character letters. So, you can proceed by guessing what those two prefix characters are, and then scanning through the message. If you get more than 26 (or 28, if you include period and slash as most straddling checkerboard implementations do), then you know you haven’t gotten the right answer. But a quick look at the single letter frequencies in my case indicated that the characters 6 and 8 were vastly more frequent than the other characters, so I guessed that those were the right characters. When I busted the cipher up into characters, I ended up with 23 distinct symbols, which seemed entirely appropriate. I could then assign a random letter to each of those 23 symbols, and I’d have a simple cryptogram.

Here’s the resulting cryptogram:

WRAFSIFFKVIQKFINCOMGWIDUFANVKFWKVVIOIDCRICEIOBHKODCAGRIOQRACRMHUGOHBKBT
MRKJIKTOIKDMLAVUOIDHUWALMHUKOIOIKDANVWRAFCHNVOKWUTKWIMHUOFITLHNBIANVIPC
IIDANVTMCTIJIOKNDWINKCAHUFADHUBWKNMHNIQATTKCWUKTTMQHOERKODINHUVRWHKCWUK
TTMDICHDIWRAFSIFFKVIFUCCIFFLUTTM

Mind you, I might have accidently assigned a letter to itself here, so it’s not quite like a normal cryptogram. But it isn’t hard to make some guesses. ‘I’ is the most common letter, so is probably E. The last three characters are TTM, which implies a double letter right at the end, which suggested LLY. The double letter digraph FF occurs three times, which suggests that F might map to S. Putting these together makes the last word to look like SuccESSluLLY. Wow! U and C both look like they map to themselves. L is F. The message starts TraS, which suggests THIS. R becomes H, A becomes I. Now we have traction, K is A, S is M, V is G…

THISMESSAGE.ASE.C.Y.TE.USI.GASTAGGE.E.CHEC.E...A..CI.HE..HICHY.U....A.L
YHA.EAL.EA.YFIGU.E..UTIFY.UA.E.EA.I.GTHISC..G.ATULATEY.U.SELF...EI.GE.C
EE.I.GLYCLE.E.A..TE.ACI.USI..U.TA.Y..E.ILLACTUALLY....HA..E..UGHT.ACTUA
LLY.EC..ETHISMESSAGESUCCESSFULLY

It’s a short skip and a jump to the complete decode:

THISMESSAGEWASENCRYPTEDUSINGASTAGGEREDCHECKERBOARDCIPHERWHICHYOUPROBABL
YHAVEALREADYFIGUREDOUTIFYOUAREREADINGTHISCONGRATULATEYOURSELFONBEINGEXC
EEDINGLYCLEVERANDTENACIOUSIDOUBTANYONEWILLACTUALLYWORKHARDENOUGHTOACTUA
LLYDECODETHISMESSAGESUCCESSFULLY

Apparently, I was tenacious enough.

Comments

Comment from Anu Halmeniemi
Time 9/16/2009 at 12:37 pm

TEPW FIDR HMIT MGDW AIMZ TTYB LRNY TLQZ FBVL ZTFA BUEL
PRVG AYSE VLPZ OBET GLKS RCTA VRZM EQRJ NQNX EFLL GZLD
KTGK DUUK IFQB ZRCH RXQH BTHM AIYX UYVO GTCU YBHG ZNRH
FIZO PLYR DOYD TNOZ WBMN UKET WQRT QYLL BIEE BSWB WFZH
WUAM RQHO LVZH LGKZ UISG JZIU MZQE ZTUU DYCG LJVV YFPR
BVDH XMQQ UGHD UPOU OUCQ CFQF GXUI HWGD

Comment from Mark VandeWettering
Time 9/16/2009 at 5:40 pm

Hmmm. My Enigma breaking program doesn’t actually know about the wiring of the model C enigma and its sixth rotor, nor can it handle the double stepping currently required to decode this. Perhaps I’ll work on it soon.