Josep Portella

The Monad.Reader cryptogram

January 2016

© 2016 Josep Portella Florit
This work is licensed under a
Attribution-NoDerivs 3.0 Creative Commons license.

I recenlty found the editorial that Brent Yorgey wrote for the The Monad.Reader issue 19 (published in 2011), that I quote verbatim:

RWWJQXUQJQXHWDFQGZRTWNWFJATNBJUSYYM
QYNTNMDTJWTWITNUJUXUSUTJNPQYJNUQRTW
XWJDDTSJLKSGJUHTWTIWFFQZFUHWRGAFWGN
WSJXUJXLXSFXXTTHXFJFSJYYTPFYHSMTHXW
FQGSUIDUXRYQFQJFQNRPZSTJQXQXFXYFIXK
BUNXWQSHSTNSFRTZYUWJJXWJDNJRFTPUTXW
JJWFHJKNLZUNYJYDYTIJZTXXFZFNIZHUHJE
FHWMJRBWYYYGJFNXAJNWYYYGNEKBTQHYNST
FTNTU

It’s exactly what it looks like: an implicit invitation to decrypt an encrypted message, just for fun. If you want to try it, stop reading now and get to work, because next I’ll explain the process that allowed me to decrypt it.

By means of a letter frequency analysis, we can see that there are letters that are used much more than others:

E  2    L  3    A  3    K  4    M  4
P  4    B  4    I  6    D  7    G  7
Z  8    R  9    H 12    S 14    Q 16
U 18    N 20    Y 20    X 22    W 23
F 23    T 26    J 30

That’s a hint that a monoalphabetic substitution cipher was used. On the other hand, it’s reasonable to assume that the plaintext is in English, because the other articles of the publication are. In English the most frequently used letter is the E, but in the ciphertext the most used is the J. In the alphabet, the J is 5 positions past the E. If we assume that the cipher alphabet is the original alphabet shifted 5 positions

ABCDEFGHIJKLMNOPQRSTUVWXYZ
FGHIJKLMNOPQRSTUVWXYZABCDE

and we decrypt the text, the result in not plaintext

MRRELSPLELSCRYALBUMORIRAEVOIWEPNTTH
LTIOIHYOERORDOIPEPSPNPOEIKLTEIPLMOR
SREYYONEGFNBEPCORODRAALUAPCRMBVARBI
RNESPESGSNASSOOCSAEANETTOKATCNHOCSR
ALBNPDYPSMTLALEALIMKUNOELSLSASTADSF
WPISRLNCNOINAMOUTPREESREYIEMAOKPOSR
EERACEFIGUPITETYTODEUOSSAUAIDUCPCEZ
ACRHEMWRTTTBEAISVEIRTTTBIZFWOLCTINO
AOIOP

but now the frequency analysis shows a result that approximates the normal for an English text:

Z  2    V  3    G  3    H  4    K  4
W  4    F  4    D  6    Y  7    B  7
U  8    M  9    C 12    N 14    L 16
P 18    I 20    T 20    S 22    R 23
A 23    O 26    E 30

Therefore, a transpotition cipher was also used. We obtain the plaintext throught trial and error, when trying to invert a 5 column transposition in order from left to right:

MONADREADERISSUEKSFOLLOWSSTOPSPECIA
LISSUEPARALLELISMANDCONCURRENCYSTOP
ARTICLEONEBYKAZUYAMAMOTOCONCURRENTH
IGHPERFORMANCEWEBSERVERSTOPARTICLET
WOBYBERNIEPOPEANDDMITRYASTAPOVHASKE
LLMPITUTORIALSTOPARTICLETHREEBYMARI
OBLAZEVICFRAMEWORKFORBUILDINGCOROUT
INEPIPELINESSTOPPLEASESTOPSAYINGSTO
PSTOP

Finally, the letters can be grouped into words while we read the message:

MONAD READER ISSUE KS FOLLOWS STOP
SPECIAL ISSUE PARALLELISM AND
CONCURRENCY STOP ARTICLE ONE BY KAZU
YAMAMOTO CONCURRENT HIGH PERFORMANCE
WEB SERVER STOP ARTICLE TWO BY BERNIE
POPE AND DMITRY ASTAPOV HASKELL MPI
TUTORIAL STOP ARTICLE THREE BY MARIO
BLAZEVIC FRAMEWORK FOR BUILDING
COROUTINE PIPELINES STOP PLEASE STOP
SAYING STOP STOP