Josep Portella

Criptograma de The Monad.Reader

Gener de 2016

© 2016 Josep Portella Florit
Aquesta obra està sota una llicència de
Reconeixement-SenseObraDerivada 3.0 Creative Commons.

Recentment vaig trobar-me amb l'editorial que Brent Yorgey va escriure per el número 19 de The Monad.Reader (publicat a 2011), que cito textualment:

RWWJQXUQJQXHWDFQGZRTWNWFJATNBJUSYYM
QYNTNMDTJWTWITNUJUXUSUTJNPQYJNUQRTW
XWJDDTSJLKSGJUHTWTIWFFQZFUHWRGAFWGN
WSJXUJXLXSFXXTTHXFJFSJYYTPFYHSMTHXW
FQGSUIDUXRYQFQJFQNRPZSTJQXQXFXYFIXK
BUNXWQSHSTNSFRTZYUWJJXWJDNJRFTPUTXW
JJWFHJKNLZUNYJYDYTIJZTXXFZFNIZHUHJE
FHWMJRBWYYYGJFNXAJNWYYYGNEKBTQHYNST
FTNTU

És exactament el que sembla: una invitació implícita a desxifrar un missatge xifrat, simplement per diversió. Si ho vols intentar, deixa de llegir ara mateix i posa’t a treballar, per que a continuació explicaré el procés que m'ha portat a desxifrar-lo.

Mitjançant el càlcul de freqüència d'aparició de les lletres, podem veure que hi ha lletres que s'empren molt més que altres:

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

Això és un indici de que es va aplicar un xifrat de substitució monoalfabètica. Per altre banda, és raonable donar per suposat que el text en clar està en anglès, per que el altres articles de la publicació ho estan. En anglès la lletra que s'empra amb més freqüència és la E, però en el text xifrat la més emprada és la J. A l'alfabet, la J està 5 posicions per davant de la E. Si suposem que l'alfabet xifrat és l'alfabet original desplaçat 5 posicions

ABCDEFGHIJKLMNOPQRSTUVWXYZ
FGHIJKLMNOPQRSTUVWXYZABCDE

i desxifrem el text, el resultat no és un text en clar

MRRELSPLELSCRYALBUMORIRAEVOIWEPNTTH
LTIOIHYOERORDOIPEPSPNPOEIKLTEIPLMOR
SREYYONEGFNBEPCORODRAALUAPCRMBVARBI
RNESPESGSNASSOOCSAEANETTOKATCNHOCSR
ALBNPDYPSMTLALEALIMKUNOELSLSASTADSF
WPISRLNCNOINAMOUTPREESREYIEMAOKPOSR
EERACEFIGUPITETYTODEUOSSAUAIDUCPCEZ
ACRHEMWRTTTBEAISVEIRTTTBIZFWOLCTINO
AOIOP

però ara el càlcul de freqüència mostra un resultat que s'aproxima al normal per un text en anglès:

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

Per tant, assumirem que també es va aplicar un xifrat per transposició. A base de prova i error, arribem a obtenir el text en clar en intentar invertir una transposició de 5 columnes en ordre d'esquerra a dreta:

MONADREADERISSUEKSFOLLOWSSTOPSPECIA
LISSUEPARALLELISMANDCONCURRENCYSTOP
ARTICLEONEBYKAZUYAMAMOTOCONCURRENTH
IGHPERFORMANCEWEBSERVERSTOPARTICLET
WOBYBERNIEPOPEANDDMITRYASTAPOVHASKE
LLMPITUTORIALSTOPARTICLETHREEBYMARI
OBLAZEVICFRAMEWORKFORBUILDINGCOROUT
INEPIPELINESSTOPPLEASESTOPSAYINGSTO
PSTOP

Finalment, podem agrupar les lletres en paraules mentre anem llegint el missatge:

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