Solución al último reto sobre codificación que he puesto en este blog.
El enunciado del reto es el siguiente: Mi amigo sabe que me gusta la criptografía, aunque en este caso debería decir la codificación, y le he mandado un mensaje codificado de una frase de este antiguo tratado militar chino, "El arte de la guerra", que pese a datar del siglo V a.C. sigue siendo el texto de estrategia más influyente en el pensamiento militar oriental y occidental, así como en la estrategia y las tácticas de los negocios, entre otros campos. ¿Puedes ayudar a mi amigo a decodificarlo?
Solución: La primera pista que puse para ayudar a resolver este reto fue un enlace a Wikipedia en el que se puede ver información sobre un código milenario chino, I Ching, cuyos símbolos (hexagramas) son muy
parecidos a los que figuran en el mensaje del reto.
Estos símbolos o hexagramas se obtienen apilando los trigramas superiores (cabecera de cada columna) e inferiores (cabecera de cada fila) que se muestran en la figura anterior, lo que nos da 64 símbolos o hexagramas únicos.
Esto recuerda mucho a la codificación Base64. La única diferencia sería que Base64 utiliza los valores decimales del 0 al 63 para representar 64 caracteres, mientras que los hexagramas se asignan a valores decimales del 1 al 64. Esta disparidad se resuelve restando 1 al valor decimal asignado a cada hexagrama y que aparece justo encima de cada uno de ellos en la figura anterior.
Los
símbolos (hexagramas) del mansaje del reto son los
siguientes:
Decodifico el mensaje:
Y obtengo el siguiente código Base64:
Y obtengo el siguiente código Base64:
TGFjbGF2ZWRlbGFndWVycmFlc2VsZW5nYfFv
Por lo que la solución a este reto es: La clave de la guerra es el engaño.
******** PRÓXIMO RETO
Reto 50: Por publicar.
Comentarios
Publicar un comentario