Ir al contenido principal

Criptografía (CDIX): Solución Reto 51

Solución al último reto sobre criptografía y esteganografía que he puesto en este blog.

El enunciado del reto es el siguiente: en el Archivo Histórico Nacional se conserva un documento de 1809 con una partitura musical que, aunque no soy ducho en la materia, me parece un tanto extraña, y por la documentación junto con la que se conserva, que además no tiene nada que ver con la música, sospecho que, de alguna forma, puede contener un mensaje oculto.

¿Me puedes ayudar a averiguar si contiene un mensaje oculto y, si es así, a obtenerlo?

Solución:

Lo primero que hago es identificar los símbolos musicales distintos que aparecen en la partitura:
Los cuento: hay un total de 23 símbolos distintos; menos que las letras que hay en el alfabeto español, idioma en el que supongo que está escrito el texto en claro, por lo que la correspondencia sería de 1 a 1, es decir, 1 carácter del texto en claro se correspondería con un símbolo del alfabeto de sustitución. El número de símbolos es menor que el de letras del alfabeto debido a que habrá letras de muy baja frecuencia ('K', 'W',...) que muy probablemente no aparezcan en el texto en claro.

Lo siguiente que hago, para automatizar cierta labores del criptoanálisis, es asignar a cada símbolo musical del alfabeto de sustitución una letra del alfabeto (da igual la letra concreta que se asigne a cada símbolo, sólo se trata de identificar cada uno de ellos mediante una letra cualquiera). Por ejemplo:

Y ahora se sustituyen los símbolos que aparecen en el criptograma por sus correspondientes letras:
Con lo que otengo el siguiente criptograma con letras en lugar de sómbolos:

DBIAKJDOQALGGNOAKGCABAFEDLDNOANEDPSAGMDOMGCDBAFEDSOGSGHAPGPJSOGKGRGOVMEDQSDMAQBGODMAQNDQPGYPEPPDOEJMJAPSGQSADQGEPJBJAPNAOGLAOGMAHADQGMAHACAPDQUDIGQCABGPMAPGPGBNEQSAFEDDPNDOGHAPCDEPSDBGPQASJMJGPYNOANAOMJAQFEDAMETGQVFEDPDGQJQCJMGQCADBIOGCACDPDIEOJCGFEDHDODPMGQJGTDMJKJOGEPSDCODHDPGPNOAQSAYCJAPEGKJDQBGMAPGPGKDEPSDFEDCDKDCJOJIJOPDGBGHJIADPNJQGBNGOGDQKJGOHDBGPPEJGPGMG

Para averiguar de qué tipo de criptosistema se trata utilizo un script en python, que publiqué en este blog, para calcular el Índice de Coinciencia (IC):
El IC es 0,07366875548693733, por lo que parece que se trata de un cifrado de sustitución simple monoalfabética, ya que está próximo a 0,0775, que es el esperado para un texto escrito en español.

Ahora realizo un ataque de 'Hill climbing' ("Escalado de la colina") con un script en python que también publiqué en este blog, y tras algún reinicio obtengo lo siguiente:

El texto en claro obtenido es:

"ELGOBIERNOHAAPROBADOLOQUEHEPROPUESTOACERCADELOQUETRATAMOSASITRABAJARZCUENTECONLARECONPENSAYSUSSERUICIOSTANTOENAUSILIOSPORAHORACOMOENACOMODOSENVEGANDOLASCOSASALPUNTOQUEESPERAMOSDEUSTELASNOTICIASYPROPORCIONQUEOCUFANZQUESEANINDICANDOELGRADODESEGURIDAQUEMERESCANIAFECIBIRAUSTEDREMESASPRONTOYDIOSUABIENLACOSASABEUSTEQUEDEBEDIRIGIRSEALAMIGOESPINALPARAENBIARMELASSUIASACA".

Es decir (marco en rojo pequeños errores en la obtención del texto en claro):

"EL GOBIERNO HA APROBADO LO QUE HE PROPUESTO ACERCA DE LO QUE TRATAMOS ASI TRABAJAR Z CUENTE CON LA RECONPENSA Y SUS SERUICIOS TANTO EN AUSILIOS POR AHORA COMO EN ACOMODOS EN VEGANDO LAS COSAS AL PUNTO QUE ESPERAMOS DE USTE LAS NOTICIAS Y PROPORCION QUE OCUFAN Z QUE SEAN INDICANDO EL GRADO DE SEGURIDA QUE MERESCAN IA FECIBIRA USTED REMESAS PRONTO Y DIOS UA BIEN LA COSA SABE USTE QUE DEBE DIRIGIRSE AL AMIGO ESPINAL PARA ENBIARME LAS SUIAS ACA".

Corrigiendo los pequeños errores obtengo la solución a este reto:

"EL GOBIERNO HA APROBADO LO QUE HE PROPUESTO ACERCA DE LO QUE TRATAMOS ASI TRABAJAR Y CUENTE CON LA RECONPENSA A SUS SERUICIOS TANTO EN AUSILIOS POR AHORA COMO EN ACOMODOS EN LLEGANDO LAS COSAS AL PUNTO QUE ESPERAMOS DE USTE LAS NOTICIAS A PROPORCION QUE OCURRAN Y QUE SEAN INDICANDO EL GRADO DE SEGURIDA QUE MERESCAN IA RRECIBIRA USTED REMESAS PRONTO A DIOS UA BIEN LA COSA SABE USTE QUE DEBE DIRIGIRSE AL AMIGO ESPINAL PARA ENBIARME LAS SUIAS ACA"..

Por tanto, la clave empleada fue:

Lo he hecho mediante un ataque de 'Hill climbing' implementado en un script en python, pero esto mismo se puede realizar con una de las muchas herramienta online existentes e incluso manualmente mediante un análisis de frecuencias.

Por ejemplo, con esta herramienta obtengo lo siguiente:
Es decir:

"ELGOBIERNOHAAPROBADOLOQUEHEPROPUESTOACERCADELOQUETRATAMOSASITRABAJARKCUENTECONLARECONPENSAYSUSSERUICIOSTANTOENAUSILIOSPORAHORACOMOENACOMODOSENVEGANDOLASCOSASALPUNTOQUEESPERAMOSDEUSTELASNOTICIASYPROPORCIONQUEOCUFANKQUESEANINDICANDOELGRADODESEGURIDAQUEMERESCANIAFECIBIRAUSTEDREMESASPRONTOYDIOSUABIENLACOSASABEUSTEQUEDEBEDIRIGIRSEALAMIGOESPINALPARAENBIARMELASSUIASACA".

Y veo que se ha obtenido un texto parcialmente descifrado, pero es fácil corregirlo hasta obtener el texto claro:

"EL GOBIERNO HA APROBADO LO QUE HE PROPUESTO ACERCA DE LO QUE TRATAMOS ASI TRABAJAR Y CUENTE CON LA RECONPENSA A SUS SERUICIOS TANTO EN AUSILIOS POR AHORA COMO EN ACOMODOS EN LLEGANDO LAS COSAS AL PUNTO QUE ESPERAMOS DE USTE LAS NOTICIAS Y PROPORCION QUE OCURRAN Y QUE SEAN INDICANDO EL GRADO DE SEGURIDA QUE MERESCAN IA RRECIBIRA USTED REMESAS PRONTO Y DIOS UA BIEN LA COSA SABE USTE QUE DEBE DIRIGIRSE AL AMIGO ESPINAL PARA ENBIARME LAS SUIAS ACA".

En el Archivo Histórico Nacional también se conserva el descifrado de este documento:

******** PRÓXIMO RETO

Reto 52:  Por publicar.

Quizás también te interese:

Comentarios

Entradas populares de este blog

Criptografía (I): cifrado Vigenère y criptoanálisis Kasiski

Hace unos días mi amigo Iñaki Regidor ( @Inaki_Regidor ), a quien dedico esta entrada :), compartió en las redes sociales un post titulado "Criptografía: el arte de esconder mensajes"  publicado en uno de los blogs de EiTB . En ese post se explican ciertos métodos clásicos para cifrar mensajes , entre ellos el cifrado de Vigenère , y , al final del mismo, se propone un reto consistente en descifrar un mensaje , lo que me ha animado a escribir este post sobre el método Kasiski  para atacar un cifrado polialfabético ( conociendo la clave descifrar el mensaje es muy fácil, pero lo que contaré en este post es la forma de hacerlo sin saberla ). El mensaje a descifrar es el siguiente: LNUDVMUYRMUDVLLPXAFZUEFAIOVWVMUOVMUEVMUEZCUDVSYWCIVCFGUCUNYCGALLGRCYTIJTRNNPJQOPJEMZITYLIAYYKRYEFDUDCAMAVRMZEAMBLEXPJCCQIEHPJTYXVNMLAEZTIMUOFRUFC Como ya he dicho el método de Vigenère es un sistema de sustitución polialfabético , lo que significa que, al contrario que en un sistema...

Criptografía (XXIII): cifrado de Hill (I)

En este post me propongo explicar de forma comprensible lo que he entendido sobre el cifrado de Hill , propuesto por el matemático Lester S. Hill , en 1929, y que se basa en emplear una matriz como clave  para cifrar un texto en claro y su inversa para descifrar el criptograma correspondiente . Hay tres cosas que me gustan de la criptografía clásica, además de que considero que ésta es muy didáctica a la hora de comprender los sistemas criptográficos modernos: la primera de ellas es que me "obliga" a repasar conceptos de matemáticas aprendidos hace mucho tiempo y, desgraciadamente, olvidados también hace demasiado tiempo, y, por consiguiente, que, como dice  Dani , amigo y coautor de este blog, me "obliga" a hacer "gimnasia mental"; la segunda es que, en la mayoría de las ocasiones, pueden cifrarse y descifrase los mensajes, e incluso realizarse el criptoanálisis de los criptogramas, sin más que un simple lápiz y papel, es decir, para mi es como un pasat...

Criptografía (CLXXXIV): Soluciones Retos criptografía de CyberOlympics 2017

En este post pongo las soluciones a los retos de  criptografía que he ido resolviendo de la edición del año 2017 de CyberOlympics , competición en modalidad  'on-line' , estilo  'Capture the Flag'  y formato  'Jeopardy'  dirigida a centros educativos y organizada por el Instituto Nacional de Ciberseguridad (INCIBE) en el marco de la actividad llamada CyberCamp. En esta edición la mayoría de los retos presentaron un  nivel  de dificultad bajo  ( ★ ★ ☆☆☆ ) , lo que entiendo adecuado por el colectivo al que van dirigidos. Las soluciones al resto de desafíos de criptografía de esta edición, cuyos archivos asociados tenga (no me han pasado todos) y que consiga resolver, las pondré en otra entrada. Reto 1 (Criptografía) : Enunciado : Todas las mañanas cuando me despierto, me miro en el espejo y no entiendo lo que veo. Hoy me he levantado dando un salto mortal y no voy a apartarme de mi “otro yo” hasta que no descubra el mensaje. Parece q...