| Kriptópolis alojado en |
| Zilos-Veloxia Network |
| Tu mejor defensa: |
| Bufet Almeida |
Solución a Kriptojuego 20080124: Algoritmo Rail Fence
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.




Opinar