Josep Portella

Criptograma de The Monad.Reader

Enero de 2016

© 2016 Josep Portella Florit
Esta obra está bajo una licencia de
Atribución-SinDerivadas 3.0 Creative Commons.

Recientemente me encontré con el editorial que Brent Yorgey escribió para el número 19 de The Monad.Reader (publicado en 2011), que cito textualmente:

RWWJQXUQJQXHWDFQGZRTWNWFJATNBJUSYYM
QYNTNMDTJWTWITNUJUXUSUTJNPQYJNUQRTW
XWJDDTSJLKSGJUHTWTIWFFQZFUHWRGAFWGN
WSJXUJXLXSFXXTTHXFJFSJYYTPFYHSMTHXW
FQGSUIDUXRYQFQJFQNRPZSTJQXQXFXYFIXK
BUNXWQSHSTNSFRTZYUWJJXWJDNJRFTPUTXW
JJWFHJKNLZUNYJYDYTIJZTXXFZFNIZHUHJE
FHWMJRBWYYYGJFNXAJNWYYYGNEKBTQHYNST
FTNTU

Es exactamente lo que parece: una invitación implícita a descifrar un mensaje cifrado, simplemente por diversión. Si quieres intentarlo, deja de leer ahora mismo y ponte a trabajar, porque a continuación explicaré el proceso que me llevó a descifrarlo.

Mediante el cálculo de frecuencia de aparición de las letras, podemos ver que hay letras que se usan mucho más que otras:

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

Esto es un indicio de que se aplicó un cifrado de sustitución monoalfabética. Por otro lado, es razonable dar por supuesto que el texto en claro está en inglés, porque los demás artículos de la publicación lo están. En inglés la letra que se usa con mayor frecuencia es la E, pero en el texto cifrado la más usada es la J. En el alfabeto, la J está 5 posiciones por delante de la E. Si suponemos que el alfabeto cifrado es el alfabeto original desplazado 5 posiciones

ABCDEFGHIJKLMNOPQRSTUVWXYZ
FGHIJKLMNOPQRSTUVWXYZABCDE

y desciframos el texto, el resultado no es un texto en claro

MRRELSPLELSCRYALBUMORIRAEVOIWEPNTTH
LTIOIHYOERORDOIPEPSPNPOEIKLTEIPLMOR
SREYYONEGFNBEPCORODRAALUAPCRMBVARBI
RNESPESGSNASSOOCSAEANETTOKATCNHOCSR
ALBNPDYPSMTLALEALIMKUNOELSLSASTADSF
WPISRLNCNOINAMOUTPREESREYIEMAOKPOSR
EERACEFIGUPITETYTODEUOSSAUAIDUCPCEZ
ACRHEMWRTTTBEAISVEIRTTTBIZFWOLCTINO
AOIOP

pero ahora el cálculo de frecuencia muestra un resultado que se aproxima a lo normal para un texto en inglé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

Por lo tanto, asumiremos que también se aplicó un cifrado por transposición. A base de prueba y error, llegamos a obtener el texto en claro al intentar invertir una transposición de 5 columnas en orden de izquierda a derecha:

MONADREADERISSUEKSFOLLOWSSTOPSPECIA
LISSUEPARALLELISMANDCONCURRENCYSTOP
ARTICLEONEBYKAZUYAMAMOTOCONCURRENTH
IGHPERFORMANCEWEBSERVERSTOPARTICLET
WOBYBERNIEPOPEANDDMITRYASTAPOVHASKE
LLMPITUTORIALSTOPARTICLETHREEBYMARI
OBLAZEVICFRAMEWORKFORBUILDINGCOROUT
INEPIPELINESSTOPPLEASESTOPSAYINGSTO
PSTOP

Finalmente, podemos agrupar las letras en palabras mientras vamos leyendo el mensaje:

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