La prueba proporciona la siguiente información.
1. Un fichero formado por un texto separado claramente por 3 segmentos de texto
0#OmAyyumvdbynutgjwumjgvgogbdzgmallupkdabyubgbkuyngyjgvbuhumtclnyupewgvoctukdtpvkgbywg.....
1#FaSjjnahmqjindpxenaxphpfpqmcpasrrnlzmsqjnqpqznjipjxphqnwnadtrijnluephftdnzmdlhzp....
2#MjXwwrjsyvworqzeprjezszmzvyizjxttrcnyxvwrvzvnrwoz....
2. Una cadena a desencriptar 30#LAMKBZZREUQVEUGMILWMCMWHZZNZLHLNLHEG.
3. Una pista, Think in english
Tanto por los datos de entrada como por la pista, podemos deducir que se trata de una clarísima prueba de criptografía.
Comienza el análisis de los datos.
1. Las tres secciones, 0,1, y 2, tienen exactamente el mismo número de caracteres.
2. El juego de caracteres se encuentra comprendido entre los imprimibles en las 3 secciones.
3. Analizando la relación entre los 3 mensajes encontramos que para los mismos caracteres siempre existe la misma equivalencia
0#O m A y y
1#F a S j j
2#M j X w w
Tras este ligero análisis podemos deducir que nos encontramos ante un cifrado clásico, con 3 alfabetos del mismo mensaje.
Procedemos a la búsqueda del algoritmo de encriptación para el primer mensaje, el 0.
Usando la herramienta cryptool copiamos el texto correspondiente a la sección 0 y probamos el criptoanálisis de los algoritmos más frecuentes, entre ellos, el algoritmo de sustitución, al aplicar el critoanálisis obtenemos el siguiente texto. MrUttersonthelapyerpasamanofaruggedcountenancethatpasneverlightedb
yasmilecoldscantyandembarrassedindiscoursebackpardinsentimentleanl
ongdustydrearyandyetsomehoplovableAtfriendlymeetingsandphenthepine
pastohistastesomethingeminentlyhumanbeaconedfromhiseyesomethingind
eedphichneverfounditspayintohistalkbutphichswokenotonlyinthesesile...
El alfabeto de sustitución que nos propone es GEKPUZLNCRITOBDJQMVYAHFSWX
Una búsqueda en google nos indicará que el texto que estamos analizando es el primer capítulo de Dr. Jekyll and Mr Hide.
Ajustamos un poco las letras al texto original y encontramos el alfabeto correspondiente al primer texto.
Realizamos la misma operación con el resto de secciones.
0 --> GEKPUZLNCRITOBDFQMVYAHJSWX
1 --> PUZLNCRITOBDFQMVYAHJSWXGEK
2 --> ZLNCRITOBDFQMVYAHJSWXGEKPU
Analizando un poco esta salida, observamos un desplazamiento en las letras, podemos generar todos los posibles alfabetos aplicando un cifrado cesar, o calcular el desplazamiento 3,5,7 es decir 0,(2^n) + 1.
Generamos el alfabeto correspondiente al 30#BDFQMVYAHJSWXGEKPUZLNCRITO y bingo, ya tenemos la clave.