03
marzo
2008

Como resolví el Kamiseta Code

by Emilio Alcázar
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):

está relacionado con un griego que estuvo por la península ibérica, en los tiempos antes de cristo

Y pienso “si es de antes de Cristo, pues creo que códigos informáticos no van a ser”. Y sigo pensando en un griego que estuviera por la península y que también estuviera relacionado con códigos. En algunos textos sobre criptografía básica empiezan su repaso histórico por el cifrado Cesar y se olvidan de mencionar a Polibio y otros códigos.

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:

12345
1ABCDE
2FGHI,JK
3LMNOP
4QRSTU
5VWXYZ

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:

67890
1ABCDE
2FGHIJ
3KLMNO
4PQRST
5UVXYZ

Y descodificando con él, tenemos:

1830383038303716461649163810563916
COMOMOLAPASAMEUNA

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

A <-> Z
B <-> Y
C <-> X
D <-> W
E <-> V
F <-> U
G <-> T
H <-> S
I <-> R
J <-> Q
K <-> P
L <-> O
M <-> N

Si lo aplicamos al código tenemos:

BLJFRVILFMZXZNRHVGZ
YOQUIEROUNACAMISETA

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:

26632766667773332
ANDAP6RFA

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

Enviado por bquintero a las 18:01 | Enlace permanente | Comentarios (9) | Trackbacks (0)
Comentarios
Re: Como resolví el Kamiseta Code

Fama bien merecida sin duda, disfruta la Kamiseta :-).

Posted by: XavMP at marzo 03,2008 18:30
Re: Como resolví el Kamiseta Code

Muy ingenioso , felicidades !!

Posted by: Thor at marzo 03,2008 23:15
Re: Como resolví el Kamiseta Code

Muy clara y detallada la explicación. Felicidades

Posted by: destroyer at marzo 04,2008 09:41
Re: Como resolví el Kamiseta Code

clara como el agua, buena intuicion emilio, ... debi dedicarle algo mas de tiempo :_(

Posted by: SirJones at marzo 04,2008 19:02
Re: Como resolví el Kamiseta Code

Muy interesante y debo decir que tan complicado como mi cerebro hace los problemas de mis jugadores de rol...jejeje

Por otro lado, recuerdo haber intentado el cifrado de Cesar, pero dado el poco conocimiento de criptografía no sabía del resto...

Muy bien merecida la camiseta,
a lo mejor alguien te contrata para criptografiar...
(Eso si, no te conviertas en el "Acertijo")

Posted by: Gonzalo at marzo 04,2008 21:33
Re: Como resolví el Kamiseta Code

Muchas gracias a todos por vuestras felicidades.

Me alegro mucho que haya quedado claro, ya que mis compañeros dicen que me explico con códigos ;), por lo que, Gonzalo, según ellos no estaré muy lejos de convertirme en "Acertijo" (o "Enigma" como se le conoce aquí en España. Y sí, también me gustan los cómics)

Posted by: Emilio at marzo 05,2008 09:20
Re: Como resolví el Kamiseta Code

muy buena y clara tu explicacion amigo.

Saludos Ralba

Posted by: pikpik at marzo 23,2008 17:21
Re: Como resolví el Kamiseta Code

Coño Emilio! xD
Lo que me he encontrado por aqui :] Muy interesante, a ver si me lo leo dos o tres veces mas para entenderlo

Posted by: SPaNKeR at marzo 28,2008 16:25
Re: Como resolví el Kamiseta Code

Enhorabuena!!! He disfrutado mucho leyendo el "como se hizo"

Posted by: ANBe at abril 24,2008 19:31
Trackbacks
Por favor envía los trackbacks a: http://blog.hispasec.nospam/laboratorio/274/tbZ3ping
Reemplazando "nospam" por "com"
No hay trackbacks.
Enviar un comentario