Nuestro criptograma tiene solución y ganador

viernes, 9 de enero de 2015

¿Se os ocurre una mejor manera de empezar el año que repartiendo el premio que escondía nuestro criptograma? Sois muchos los valientes que os habéis atrevido con él, pero sólo uno quién ha logrado descifrarlo y ser más rápido que el resto.

El criptograma a descifrar era el siguiente:


Nuestro objetivo con la animación gráfica era únicamente despistar. Muchos pensasteis que ese era el camino para descifrar el criptograma. Sin embargo, la solución era mucho más sencilla. Las respuestas ingeniosas han sido numerosas:
  • Murciélago
  • Divertirse
  • Feliz2015
  • happyxmas
  • Cuidado cuando te Globalices
  • La respuesta es "TELEFONO MOVIL"
  • C1U es un micrófono
  • QT es un sistema operativo
  • MO6 es un teclado
  • GZ es una cámara
Y también generadas de la creatividad de una noche larga de nochebuena:
  • “Sin usar mis conocimientos de criptografía diría que la respuesta es : TeLeFoNiCa (o publicidad subliminal) P.D.: Disculparme si me equivoco pero estoy combatiendo la resaca con unos churros con chocolate XD”
Llegados a este punto, vamos a desvelar los pasos que había que seguir para descifrar la solución y el premio que escondía nuestro criptograma:
  • El primer paso a considerar para descifrar el criptograma es su tamaño. Es un criptograma pequeño, por tanto, para facilitar su descifrado el método utilizado debería ser un procedimiento sencillo.
  • En un primer vistazo se observa que no hay caracteres repetidos, lo cual podría suceder si se hubiera realizado una sustitución monoalfabética (sustituir un carácter de texto en claro siempre por el mismo carácter en el criptograma), por ejemplo, utilizando el algoritmo criptográfico César. Esto podría suceder, aun siendo el criptograma pequeño, para caracteres muy frecuentes. Por ejemplo, en español la vocal e.
  • Descartada esa opción, una vía de investigación sería analizar otro tipo de algoritmos de sustitución. Por ejemplo, algoritmos de sustitución polialfabética:



  • Entre los algoritmos de sustitución más famosos destaca el algoritmo de Vigenère.
  • Su funcionamiento es muy sencillo. Generamos un alfabeto con los distintos caracteres que pueden estar presente en el texto en claro. Cada carácter tendrá una posición en ese alfabeto. Parece razonable que en el alfabeto también tenga presencia dígitos numéricos ya que están presentes en el criptograma.
  • El algoritmo de Vigenère utiliza una clave criptográfica que se repetirá tantas veces como sea necesario hasta completar una clave del tamaño del texto que se desea proteger.
  • El procedimiento de cifrado es muy sencillo. Se alinea texto en claro y clave criptográfica, y cogiendo carácter a carácter (un carácter del texto en claro y su carácter de la clave correspondiente) se aplica un desplazamiento en el alfabeto en función de la posición del carácter de la clave criptográfica (obtenida del alfabeto construido). Se suman posiciones al cifrar, se restan al descifrar.
  • Existen diferentes formas de obtener la solución. Veamos una de ellas:

    Construimos el alfabeto (se adjunta en corchetes su posición en el alfabeto) formado por 26 letras (sin la Ñ) y 10 dígitos numéricos. En total, 36 caracteres (posiciones que van de la 0 a la 35)

    A[0] B[1] C[2] D[3] E[4] F[5] G[6] H[7] I[8] J[9] K[10] L[11] M[12] N[13] O[14] P[15] Q[16] R[17] S[18] T[19] U[20] V[21] W[22] X[23] Y[24] Z[25] 0[26] 1[27] 2[28] 3[29] 4[30] 5[31] 6[32] 7[33] 8[34] 9[35]

  • Una vez conocido el criptograma y el alfabeto solo es necesario conocer la clave empleada. En este caso, es posible utilizar un poco la imaginación o mejor aún, hacer una lista de claves candidatas basada en los productos de 11Paths. En esta ocasión, la clave criptográfica era nuestro querido LATCH.

    CRIPTOGRAMA: C 1 U Q T M O 6 G Z
    CLAVE: L A T C H L A T C H
    TEXTO: 1 1 B O M B O N E S

  • Veamos un par de ejemplos de cómo obtener la solución (11BOMBONES):

    La primera letra del criptograma C tiene la posición 2 en el alfabeto. La primera letra en la clave la L tiene la posición 11 en el alfabeto. La primera letra del texto sería la presente en el alfabeto en la posición 2-11=-9 (si el valor es negativo continuamos contando desde el final del alfabeto), es decir el carácter 1 (posición 27 o -9).

    La segunda letra del criptograma 1 (posición 27) y clave A (posición 0) da lugar al carácter en clave 1 (posición 27-0). Y así, sucesivamente.

Pasaron varios días hasta que recibimos la respuesta ganadora, concretamente el jueves 08 de enero. Como ya anunciamos, sólo podía haber un ganador y ese sería quién además de adivinar la respuesta, fuera el primero en enviárnosla:




And the winner is…¡Ángel Goitia!¡Enhorabuena! Los 11 bombones son para ti. Nos pondremos en contacto contigo en los próximos días vía email para indicarte cómo recoger tu premio.

¡Feliz viernes!

13 comentarios:

  1. Ehhh!!!

    Que yo también quiero mis "CHUCHERIAS"

    Clave: zyzlnrcgts

    Son dulces y encriptadas con vigenére...

    Saludos!!

    ResponderEliminar
  2. Hombre, un premio de consolación para el segundo, no estaría mal!! ;-) xD

    ResponderEliminar
  3. Hola,

    No os dais cuenta de que este problema criptográfico no tiene ningún tipo de sentido? Cómo puedes montar un reto como este con múltiples soluciones válidas y dar por buena sólo aquella que a vosotros os apetece?

    Con este repo, básicamente, puedo "inventarme" un algoritmo de sustitución, cesar, xor o lo que sea y hacer que con la clave adecuada salga lo que yo quiera. Si por lo menos hubieráis dado el tamaño de la clave aun se limitarían las soluciones.

    Porque no es valida la solucion de Carlos (CHUCHERIAS) si cumple perfectamente con las bases del problema?

    La próxima vez que montéis un reto de este tipo os recomiendo que lo monte alguien con nociones de criptografía que pueda llegar a construir un reto en condiciones.

    Saludos,

    ResponderEliminar
  4. Estimado "Anómino", soy el Dr. Alfonso Muñoz, la persona que ha diseñado este sencillo reto criptográfico para felicitar las navidades de una manera ingeniosa. Hombre, algo de criptografía sabemos :).

    Dado cualquier algoritmo criptográfico puedes probar una o más claves y obtendrás uno o más mensajes en claro, legibles o no. Te preguntarás: ¿Cuál es el mensaje válido? El mensaje válido será aquel que esté protegido con la clave adecuada. Puedes obtener el mensaje que desees con la clave que desees pero ese no será necesariamente el mensaje protegido (la solución de Carlos no es válida), esa es una de las gracias del cifrado polialfabético. La solución al concurso es la mostrada.

    Cuando lo desees puedes pasarte por CRIPTORED donde te formaremos en la materia si lo deseas.
    Un saludo
    Dr. Alfonso Muñoz

    ResponderEliminar
    Respuestas
    1. Hola Alfonso,

      en el comentario anterior dices: <<...El mensaje válido será aquel que esté protegido con la clave adecuada...>>

      mi pregunta es la siguiente: si la persona que está intentando resolver el criptograma encuentra dos candidatos a solución (mensajes en claro distintos con claves distintas) que cumplen las hipótesis del enunciado, ¿como decide cual es la correcta?¿como decide cual es la clave adecuada?

      Muchas gracias y un saludo.

      R

      Eliminar
    2. Puedes ser todo lo doctor que quieras, pero de crear retos de crypto ni idea.

      Revisa esto; https://github.com/pwning/docs/blob/master/suggestions-for-running-a-ctf.markdown


      Crypto

      In general try to give the competitors as much information as you can. Working source code with secret keys clearly X'ed out is ideal.

      If you have a ciphertext only problem, try to do the following:

      Give enough ciphertext for meaningful statistics (twenty ASCII characters can be almost anything)
      Use a guessable algorithm. With a classic cipher and a short amount of ciphertext, it may be very difficult to narrow it down. The challenge should be in breaking the crypto system, not figuring out what the crypto system is.
      If you are using any crypto system made after the 19th century, be sure to tell challengers what the algorithm is. No one wants to guess whether ciphertext is from an Enigma or a Purple Machine; or from 3DES or GHOST
      If your problem requires a lot of local computation, make sure to test it on reasonable consumer hardware. Realizing late in the competition that while you have the right method of solving the probem, you don't have the computation power to complete the computation before the end is a bad feeling. In general, under an hour on fairly modern consumer hardware is fine; more than that should have good justification.

      Eliminar
    3. Buenas tardes,
      estimado R y Anómino. Gracias por vuestros comentarios y vuestro tiempo dedicado al reto. El presente reto se planteó de la forma indicada, hubo personas que solucionaron el reto sin pistas. Otras personas lo resolvieron con una única pista. Si alguien tiene dudas de si su solución es correcta o no dispone de suficiente información lo que debe hacer es escribir a los organizadores del reto. Si su duda es justificada se proporcionaría una pista para todos los participantes. No obstante, en futuros retos se dejará claro estos aspectos.
      Un saludo
      Dr. Alfonso Muñoz

      Eliminar
  5. Hola!

    En primer lugar, me pareció muy entretenido el criptograma, aun qué tengo que decir, que me decepciono bastante que la clave fuera "lanch" (Cierto es que la dificultad para la solución del criptograma estaba en saber que había que utilizar el método vigenere)
    Yo la verdad que perdí bastante el tiempo, ya qué pensé que sería algún tipo de método más "global" por llamarlo de alguna forma, me explico, cuando tu mandas el .gif con el texto cifrado, la clave podría basarse en la repeticiones de las imágenes, la longitud y algunas operaciones con estos datos un ejemplo:

    3 repeticiones, Longitud 10; La longitud de la clave es la resta de estos (7) y la clave se obtiene caracter a caracter, usando el mismo alfabeto de vigenere, el primer caracter sería el de la posición 3, el siguiente el 3*3, el siguiente 9*3... y así sucesivamente(Por poner un ejemplo) De esta manera puedes usar el mismo método para tantos mensajes como quieras variando la contraseña.

    Personalmente me pareció que se centraba más en fuerza bruta que en basarte en algoritmos o claves ocultas en el propio mensaje. (Por supuesto no deja de ser una opinión más)

    Y bueno, 11 bombones... A ver la cosa está mal, eso lo sabemos todos, pero un libro de 0xwords sobre criptografía o similar, que son 20 pavetes... No lo abría visto tampoco fuera de lugar :P

    Por supuesto aclarar que no pretenden ser criticas negativas, que basta que alguien se moleste en hacer algo curioso para la gente y siempre están los apuntadores con el dedo diciendo lo mal que lo hiciste, así se le quitan las ganas a cualquiera de molestarse en hacer nada, y este comentario no pretende ser uno de esos, son solo opiniones, como ya dije arriba, me parecio muy entretenido el reto.

    No sé si fue cosa del Dr. Alfonso Muñoz como señala en un comentario superior fue realmente quien tuvo la idea ya que me parece raro primero que caiga en una provocación de ese tipo (Por lo menos me parecío una contestación en la que había caido en la provocación) y segundo que lo haga desde un comentario firmado como "Anonimo", en cualquier caso, espero más retos del estilo por parte de elevenpaths :)

    Un saludo!

    ResponderEliminar
  6. Estimado Adrián,
    agradecemos vuestra opinión. La aclaración anterior simplemente tiene la intención de destacar como obtener la solución real al criptograma. No existen soluciones alternativas ni interpretaciones. Dado que se puede intuir eso de los comentarios observados es importante
    tener conocimientos criptográficos para emitir una opinión en este sentido.

    Si he de serte sincero, personas de 11Paths resolvieron el reto antes que ningún participante, no nos pareció ético que el premio se quedara en la "casa".

    En tu caso, como en muchos otros, pensásteis en la solución más compleja, en lugar de la más sencilla. Métodos muy conocidos como sustitución monoalfabética o polialfabética (Vigenere por ejemplo). Pensamos que ese iba a ser vuestro comportamiento y lo inducimos con el movimiento en el gif :).

    En cuanto a la clave escogida. No es muy disparatado hacer una lista con los productos de la empresa y que la clave sea uno de los productos estrella como es latch (no "lanch").

    Espero que nos cripto-veamos en otra ocasión.
    Gracias
    Un saludo
    Dr. Alfonso Muñoz

    ResponderEliminar
  7. Siento pues la mala interpretación del comentario.
    No tiene nada de disparatado que la clave fuera lanch (como bien me corriges), al revés me pareció realmente obvio, igual por eso me desilusiono un poco, pero supongo que al igual que muchos que se rompieron la cabeza con esto, también resulta algo frustrante el no haber caído en algo tan simple :) a veces nos gusta complicarnos demasiado...

    En cualquiera de los casos si se plantean nuevos retos, ahí estaré encantado ;)

    Un saludo! Y gracias a ti.

    P.D: Sigue pareciéndome raro que publiques en el blog de elevenpatch bajo "Anonimo" realmente hace dudar de la veracidad de su firma ( Por lo menos a mi :P ).

    ResponderEliminar
  8. Me pareció genial, mis felicitaciones y de paso aprendí un poco mas, gracias.

    ResponderEliminar
  9. QUIEN ME AYUDA A RESOLVER ESTE Cryptogram

    ResponderEliminar
  10. QUIEN ME AYUDA A RESOLVER ESTE Cryptogram

    ResponderEliminar