La cita célebre (y por tanto la solución al Kriptojuego en cuestión) es la siguiente:
El hombre mas poderoso es aquel que se posee a si mismo
El método utilizado para cifrarla es un sencillo algoritmo de transposición denominado de Ríel, de Raíl, o Rail Fence (en inglés). El nombre hace alusión al método utilizado para cifrar. Lo que se hace es trazar varias líneas paralelas (generalmente 2, 3 ó 4, y el número de líneas es la clave) y luego escribir la frase en zigzag sobre ellas, como se muestra a continuación para el texto en claro del juego y con clave 3 (o sea, tres líneas):
E - - - m - - - m - - - o - - - o - - - s - - - e - - - e - - - o - - - a - - - i - - - - l - o - b - e - a - p - d - r - s - e - a - u - l - u - s - p - s - e - s - m - s - o - - h - - - r - - - s - - - e - - - o - - - q - - - q - - - e - - - e - - - i - - - m -
Después, se escriben las letras siguiendo su orden normal en cada línea y el resultado se agrupa y se presenta en la convención que se utiliza en criptografía para el texto cifrado, y a la que habremos de irnos acostumbrando: en mayúsculas y en grupos de cinco.
De ahí resulta el mensaje cifrado original:
EMMOO SEEOA ILOBE APDRS EAULU SPSES MSOHR SEOQQ EEIM
Como os decía, una vez conocido el algoritmo sólo queda probar con diversas claves, y entonces ya resulta trivial descifrarlo.
Dos comentarios didácticos a propósito de este experimento...
El primero es el Principio de Kerckhoffs: "La seguridad de un sistema no debe depender de mantener en secreto el algoritmo, sino sólo de mantener secreta la clave". Esta regla fue enunciada en 1833, pero sigue absolutamente vigente. Ya véis que el sistema utilizado no la cumple, ya que su seguridad depende casi en exclusiva de que no se nos ocurra conocer, adivinar o sospechar el algoritmo.
Otro punto a tener en cuenta ha sido el uso de un algoritmo de transposición (o permutación), cuando algunos os habéis ido directamente a un algoritmo de sustitución. La diferencia entre ambos tipos es que en la transposición se cambia el ORDEN de los caracteres (como en este caso), mientras que en el de sustitución se cambian los caracteres del mensaje original por OTROS DISTINTOS, pertenecientes al alfabeto cifrado.
Por último, podéis ampliar información sobre este algoritmo (Rail Fence) aquí:
http://crypto.dsplabs.com.au/classical/railfence-cipher-cryp...
Dispone de una implementación en Javascript donde podéis comprobar nuestro kriptojuego y probar además con diferentes claves. Dispone también de enlaces a la wikipedia, comentarios sobre el criptoanálisis de Rail Fence y el enlace a una implementación de Rail Fence en C.
También Simon Singh comenta de pasada este algoritmo en la página 21 de la primera edición en español (2000) de "Los Códigos Secretos" (1999).
En CrypTool se podría implementar Rail Fence desde el menú Crypt/Decrypt -> Symmetric (classic) -> Permutation/Transposition.
Por cierto: la cita se atribuye a Séneca.
otra duda
anónimo20 Febrero 2008 - 12:21am
como sabes cuantos guiones poner entre cada letra y cuando hay q dejar una linea al final o al inicio ???? explicalo detalladamente.
Felicitaciones y muy linda la Web
anónimo28 Enero 2008 - 3:51pm
La verdad que bastante interesante el algoritmo.
Me hizo recordar al que encontre en esta web
http://genios.fhpanel.com/Newton/Problemas/p02.htm
Bastante mas sencillo por cierto.
Saludos
Práctica
vhrangel25 Enero 2008 - 4:40pm
Definitivamente no es lo mismo ver sólo la teoría que tratar de aplicar los conceptos.
En 1 día de ejercicio he entendido más de lo que se necesita hacer para encriptar/desencriptar algo que lo que hice en un semestre en clase (hace muchos años, por cierto).
Nota: Estoy hablando del proceso ... porque creo que para entender el fundamento de los algoritmos si es necesario entender primero los aspectos teóricos (matemáticos).
Saludos a todos, y pues esperamos el siguiente Kriptojuego de Admin.
Pues gracias y me alegro!
admin25 Enero 2008 - 5:59pm
Porque ésa es la idea.
Y sí, también habrá que tratar aspectos más complejos a medida que los vayamos necesitando.
Para publicar la solución
anónimo25 Enero 2008 - 12:35pm
Qué tal poner la solución oculta?
En los foros se suele utilizar el spoiler o destripe, es también un mecanismo muy simple: la letra del destripe tiene el mismo color que el fondo, y sólo se revela el mensaje al seleccionarlo con el ratón :P
De esa forma se puede publicar y no hay peligro de "lectura accidental" de la solución
Interesante el algoritmo, será simple, pero si no hemos podido adivinarlo, funciona, no? :D
Enhorabuena
Tuerinator25 Enero 2008 - 11:13am
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ha sido muy didactico
La verdad es que no tenia ni papa de como plantear el asunto, pero si comienzas a escribir articulos con kriptojuegos similares, aunque no pueda entenderlos hasta que facilites la solucion, kriptopolis va a ganar para mi muchos mas enteros de interes de los que ya tiene de por si en mis feeds rss
- --
http://telekable.org/personal/
Usuario de Linux # 365982
http://counter.li.org
- -------------------------
Para obtener mi llave publica de GnuPG visita http://telekable.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: http://firegpg.tuxfamily.org
iD8DBQFHmafd38GwTauXuZwRAmZlAKCATy6IZS5eoMDVg7C92xLHaBKHjACgrivd
Vtsy7+6LrACykZH6I1tlxWM=
=DOEH
-----END PGP SIGNATURE-----
No me ha dado tiempo
anónimo25 Enero 2008 - 10:48am
Joo...
No me dio tiempo.. estoy a favor de lo de una semana, aunque puede ser que mine mi vida social, jajaja.
-ShaNg-
debilidad o no.
anónimo25 Enero 2008 - 1:01am
Supuestamente el sistema usado es lo peor que hay. O sea, que conocido el algoritmo la clave se saca fácil, y la seguridad basada en ocultar el algoritmo es la peor alternativa. Sin embargo ha resistido todos los intentos de los lectores por "adivinar" de qué se trataba.
Yo creo que la explicación a esto es que es un mensaje muy corto.
De todos modos, creo que esto nos enseña algo: si el cifrado más sencillo posible es considerablemente difícil de descifrar, ¿qué posibilidades tiene por ejemplo la policía de descifrar un mensaje donde se coordina un atentado terrorista?
Te equivocas
anónimo25 Enero 2008 - 12:54pm
"Sin embargo ha resistido todos los intentos de los lectores por "adivinar" de qué se trataba."
Finalmente mi generador de anagramas dió anoche con la solución, aplicando simplemente la fuerza bruta. Con un sistema de diccionario más elaborado ( uso por ejemplo de whitelists/blacklists ) no hubiera resistido ni una hora. Si el admin no hubiera tenido tanta prisa.... :-)
Lo que este ejemplo demuestra no es pues la resistencia del algoritmo, sino la incapacidad de nosotros, tristes lectores de KP para adivinarlo. Estoy seguro que nuestros CyFSE tienen al menos mas ( no sé si mejores ) medios, con lo que el ejemplo no se puede aplicar al caso que planteas... salvo que creas que nuestra policía es como "Torrente" o los "Paco boys"
Además en cuanto admin nos obsequie con unas sesiones de "Kripto Brain Training/Burning" , ya verás... :-)
Algún detalle, porfa
anónimo25 Enero 2008 - 3:04pm
¿Podrías comentar qué aplicación usas? me gustaría probar.
He leído que la anagramación es el único ataque posible en estos casos y por eso me interesaría probarlo.
Gracias!!
Generador de anagramas
anónimo25 Enero 2008 - 4:26pm
Usé un generador de anagramas basado en diccionario, que me lo descargué de internet...
http://freespace.virgin.net/martin.mamo/spanish.html
El funcionamiento es muy simple:
- Carga un diccionario en memoria
- Genera una a una todas las posibles permutaciones de las n letras
- En cada permutación comprueba si el resultado está formado exclusivamente por palabras que existan en el diccionario
- En caso afirmativo presenta resultado, en caso negativo busca siguiente permutación.
Evidentemente, no todos los resultados tendrán sentido, sino que hay que mirarlos a mano. por ejemplo de la secuencia EARRO ZALAZ DABAL ORRAE LABAD el generador te extrae, entre otras "abrazadera bolardo raza lela", que no tiene sentido. Ahí es donde entran las pistas: si te dicen "palindromo" la respuesta es obvia: "dabale arroz a la zorra el abad"
Un esquema más elaborado consistiría en implementar whitelists (palabras que sabes que existen en el texto) y blacklists (palabras que sabes que NO están en el texto), o bien asumir un rango determinado en el numero de palabras de la frase
Desgraciadamente, no creo que nuestro admin vuelva a poner un ejemplo que se resuelva por trasposición :-(
Eing
anónimo28 Enero 2008 - 6:04pm
No entiendo esa obviedad, la verdad :-/
Muchas gracias por toda la info
anónimo25 Enero 2008 - 6:00pm
De verdad. Da gusto hallar gente capaz de compartir.
Ya me he bajado la versión en C++ del generador, a ver qué tal.
Terrorismo y cifrado (sí, otra vez)
anónimo25 Enero 2008 - 10:06am
A ver si lo dejamos claro de una vez: los terroristas ni siquiera necesitan software de cifrado. Les basta acordar un libro de códigos como vienen haciendo ellos y los servicios secretos desde que el mundo es mundo.
Ejemplo:
Mensaje cifrado: "Hace bueno hoy"
Libro de códigos:
Hace: matar
bueno: al
hoy: rey
Como cualquiera puede entender la policía no descifraría este mensaje ni con toda la ayuda de la NSA y Ganímedes, si no logra hacerse con el libro de códigos.
Por tanto no mezclemos churras con merinas. El cifrado existe porque lo necesitan el comercio y la industria. Si sólo lo necesitáramos los particulares ya habría sido prohibido hace mucho, pero ni los móviles, ni los mandos a distancia, ni la protección de los DVD, ni miles de cosas más funcionan sin cifrado.
Rail Fence en Cryptool
vhrangel24 Enero 2008 - 9:59pm
Por lo que entendido de Cryptool, el algoritmo de Rail Fence no podría usarse tal cual, porque tendría que ser con las "líneas" equilibradas ... y el Rail Fence siempre tendrá por lo menos 1 más grande que las demás. Además, las permutaciones se van haciendo "hacia un lado y hacia el otro" (por escribirlo de alguna manera), y la opción de Cryptool de trasposición no parece tener esa opción.
Clave transposición
anónimo24 Enero 2008 - 9:27pm
Pues estoy dando vueltas a la clave con Cryptool, y no la pillo. Alguien la tiene?
Muy bueno
Guppy24 Enero 2008 - 8:36pm
Me ha gustado el juego, aunque me haya estado comiendo la cabeza toda la mañana jeje.
La verdad que no conocia ese algoritmo.
Estuve probando por sustitucion pero nada.
Una cosa, cual seria la clave para CryptTool? He estado probando y na de na.
Me gustan este tipo de juegos, a ver si pones otro y asi no me aburro tanto por las noches ;).
Saludos.
CrypTool
admin24 Enero 2008 - 8:41pm
En teoría habría que probar con ABC ó CBA, una permutación, entrada línea por línea y salida columna por columna, pero yo tampoco lo he conseguido en el rato que lo he estado mirando.
A ver si alguien nos echa una mano ;)
Como siempre llego tarde...
anónimo24 Enero 2008 - 8:27pm
...a todos lados, no estoy muy puesto en criptografia.
Sin embargo me parece muy interesante, lo seguiré.
Espero que a alguna de mis dos neuronas se le quede algo impregnado.
Analisis de fuerza bruta
anónimo24 Enero 2008 - 8:22pm
Mi generador de anagramas sigue por "aeromodelismo"... a ver cuanto tarda en llegar a la "e" :-)
(la aplicación evalua todas las permutaciones posibles, presentando solo aquellas que contienen palabras existentes en un diccionario).
Un par de dudas tontas al hilo de un ataque por fuerza bruta.
Una vez que se sabe -o se intuye- como en este caso que un algoritmo es de transposición, se intenta buscar la clave en base a diversos métodos:
- Palabras conocidas que seguro que tienen que estar ( artículos, pronombres, etc)
- Combinaciones de letras que tienen que ir juntas "q" y "u"
- Numero estimado de palabras y su longitud probable
- Estadísticas de frecuencia de letras y palabras probables
¿Existe algún método sistemático de ataque por fuerza bruta, que no sea la triste tortura a la que estoy sometiendo al ordenador? Enlaces, plis :-)
haberlos haylos ;)
admin24 Enero 2008 - 8:39pm
http://www.google.com/search?q=transposition+cryptanalysis
Comentario
admin24 Enero 2008 - 8:10pm
Pensé que me lo ibáis a triturar en 10 minutos, pero sin embargo ha resistido.
Pero insisto: es una resistencia engañosa. Si os hubiera dicho que era un rail-fence no hubiera aguantado un minuto más.
Creo que ésa es la enseñanza más importante del juego. Y con ser muy simple no es ninguna tontería: el mundo está lleno de gente que se sigue empeñando en basar sus secretos en que nadie conozca el algoritmo.
Petición de más tiempo
tRaCk3r24 Enero 2008 - 8:33pm
Hola "admin",
Me gustaría que para el próximo juego, dejes un poco más de tiempo. Me gustaría haber intentado pero lamentablemente, no he dispuesto de tiempo para ello.
Una semana creo que estaría bien, es muy raro que haya gente que durante una semana no tenga tiempo, por ejemplo yo, lo habría tenido seguro ;) y como yo muchos más.
Es una petición de un jugador que no ha jugado ;)
Saludos.
Sí, tienes razón
admin24 Enero 2008 - 8:37pm
Yo mismo me he "calentado" y he querido acelerar la solución.
No volverá a ocurrir. Una semana parece un plazo razonable para el próximo juego... si resiste tanto ;)
duda
The Master24 Enero 2008 - 8:09pm
Solo tengo una duda, hay alguna relación en las lineas que dividen cada letra?
No entiendo
admin24 Enero 2008 - 8:10pm
No entiendo
en donde tienes el texto
The Master24 Enero 2008 - 9:05pm
en donde tienes el texto plano, lo vas poniendo en zig-zag, hay espacios en los renglones que dividen a las letras, los divides por(----), tiene que ver eso en algo con la clave?
Qué va!
admin24 Enero 2008 - 9:07pm
Es un mero artificio de presentación. Así me evito tener que crear un GIF ;)
Bueno, no habia oido hablar
anónimo24 Enero 2008 - 7:59pm
Bueno, no habia oido hablar nunca de este algoritmo. Yo estaba probando modos de entrelazado, aunque no con 3 lineas no funciona ya que en la segunda hay más que en las otras dos.