Como resolví el Kamiseta Code
|
Hola a todos, me llamo Emilio y soy de Murcia. Soy alcoh… que no, eso no, soy friki y resolví el desafío del "Kamiseta Code" del blog del laboratorio de Hispasec.
Trabajo como técnico y administrador de sistemas en el mantenimiento de los servidores y ordenadores que dan servicio a las aulas de informática de la Universidad de Murcia. Además muchos de mis compañeros, familia y conocidos me consideran un friki, por cosas como que me gusta el Señor de los Anillos, Star Wars, las series de ciencia ficción, etc. Bueno, esto es normal en muchos pero es que además ya paso a un nivel más alto de frikismo cuando digo que me gustan los códigos criptográficos. Por todo esto, cuando vi el juego del Kamiseta Code propuesto por Hispasec, me lancé a resolverlo. Y solamente por el placer de jugar…. Vale es mentira, ¡quería una camiseta de Hispasec! (MI TESOOOORO). Y cuando mis compañeros fueron a almorzar, yo me puse a la tarea de averiguar los códigos. Lo resolví y Bernardo me ha invitado a que expusiera mi "criptoanálisis" a todo el mundo. He puesto criptoanálisis entre comillas ya que no ha sido un criptoanálisis de libro, haciendo sus análisis de frecuencia y demás ya que la longitud de los textos no daba para eso, por lo que si mi forma de resolverlo les parece rara se aplica lo anteriormente dicho: soy friki. Vamos a la faena… Code 1) 1830383038303716461649163810563916 En principio aquí solo vemos una ristra de números. Lo primero que pienso, por deformación profesional, cuando tengo una cadena de números de este tipo es en el código ASCII o algún código informático parecido. Tras intentar el código ASCII hexadecimal (al principio pensé que funcionaba ya que por el medio salían otros números como "080807"). Pero veo que esto no me lleva a ninguna parte y me pongo a leer los comentarios en el blog y veo el comentario de Bernardo:
Venga, una pista con el code (1): Polibio fue un historiador griego que estuvo con los romanos en la península ibérica relatando las costumbres de por aquí y además había inventado un código “tipo morse” mediante antorchas para transmitir mensajes a distancia y un algoritmo de codificación, llamado "Cuadrado o tablero de Polibio" El tablero original del Cuadrado de Polibio que aparece en la wikipedia y en los apuntes sobre criptografía que tengo es el siguiente:
Y su funcionamiento es que cada letra se codifica por sus coordenadas de fila columna en el tablero. Por ejemplo si queremos codificar CASA, tenemos que la C está en la línea 1 y columna 3, con lo que le corresponde el código 13; la A, que está en la línea 1 y columna 1, le corresponde el código 11; y así sucesivamente. Por tanto a CASA le corresponde el código 13114311. Pero ese cuadrado no sirve, ya que si vemos el código de Hispasec tenemos cifras por encima de 5. Pero también podemos ver en el code, que si agrupamos cada dos cifras, la cifra segunda es mayor de 5 o es un 0, y pienso “han cambiado las cifras de las columnas, que pillos”. Las columnas hay que numerarlas desde 6 hasta el 10, siendo el 10 el número 0. Pero si aplicamos el código a ese tablero resultante sigue siendo un galimatías, pero sigo pensando “y si no han unido en la misma casilla la I y la J, y además elimino la W para que entren las letras”. Y preguntarán ¿por qué la W? Pues ¿y por qué no? La W, como su nombre indica es una “v doble” y si la quieres codificar pues pones dos V y ya está. (Disclaimer: no digo que los del laboratorio hayan pensado eso, pero es lo que yo hice, ya que también puede ser que hayan unido la U y la V, pero como mi forma funciona pues… :P ) Con estos cambios el tablero quedaría de la siguiente forma:
Y descodificando con él, tenemos:
Por tanto, el resultado del Code 1 sería: Como mola, pásame una Code 2) BLJFRVILFMZXZNRHVGZ Esta resolución fue una intuición. En el siglo pasado (que viejo soy, jejeje), cuando recibí un curso de criptografía básica, había un código que me llamó la atención en el que a simple vista, por la proliferación de letras Z, V, R, L y F, se podía averiguar que código era. Se puede decir que eso es un análisis a simple vista de frecuencias rudimentario, ya que a esas letras les correspondía las vocales, letras que en cualquier texto se repiten mucho. El código al que me refiero es el Código Atbash, que apareció hace poco en "El Código Da Vinci", consistente en utilizar la letra simétrica en el alfabeto, de la forma que a la A le corresponde la Z, a la B le corresponde la Y, y así sucesivamente, hasta llegar a que la Y le corresponde la B y a la Z le corresponde la A. Es decir
Si lo aplicamos al código tenemos:
Por tanto el resultado del Code 2 sería: Yo quiero una camiseta Code 3) 26632766667773332 Debo reconocer que éste fue el código que más me costó. No me acuerdo que intenté, pero seguro que probé a agrupar los números para verlos como código ASCII, como he dicho que hacía en el primer código cuando me encuentro una cadena de números. También recuerdo haber numerado el alfabeto y agrupado las cifras de diferentes formas, pero los seises y sietes seguidos me decían a gritos que eso no era. Cuando iba a dejarlo para mas tarde, me llamaron por teléfono. Tengo un teléfono IP como el que muestro en la foto.
No me acuerdo quien era, pero creo que le colgué rápido tras haberme quedado un rato mirando el teclado del teléfono y creer haber visto la solución del código. Al principio pensaba que cada número del código correspondía a una letra según estaba en el teclado. Es decir, un 2 podía ser una A, una B o una C; el 3 podía ser una D, una E o una F; y así sucesivamente. Para escribirlo, pensé introducir en el móvil el código utilizando lo de los mensajes SMS. Entonces me di cuenta que la resolución del código era más sencillo de que lo había pensado en un principio. Era como escribir un mensaje SMS sin tener activado lo de la escritura predictiva. La letra a escoger depende de la repetición del número. Ejemplo, si quieres la letra E, pulsas dos veces el número 3. De esta manera la resolución del código sería:
Eso es lo que salía en mi móvil: ANDAP6RFA El 6 de en medio, ¿es un error? Y pienso “y si tienen un móvil que pone la Ñ antes de la O, o se han pasado poniendo seises, o en vez del 6 le sigue la o con tilde. Pues pruebo y si cuela, cuela”. Por el resultado estaba en lo cierto. ;) Por lo que el texto 3 sería: Anda, porfa Recopilando, tenemos: Code 1 = Como mola, pásame una Code 2 = Yo quiero una camiseta Code 3 = Anda, porfa Y eso es todo. Me parece que me ha salido un tocho, pero espero que haya quedado claro y no haber aburrido a nadie. Puede parecer que tuve suerte, pero la verdad es que tuve mucha suerte. Pero en el criptoanálisis también hay que tener un poco de suerte para resolver los códigos. Saludos a todos y muchas gracias a la gente de Hispasec por su regalo y darme la oportunidad de tener mis 15 minutos de fama. Emilio
|
