Criptografía clásica (IX)

Usuario darthje ha ganado 1 puntos. Su total ahora es 95 puntos.
Etiqueta: Criptografia
1 voto

Cifrado monoalfabético general

Por darthje

Descripción

El cifrado monoalfabético general consiste en asignar las letras que van a componer el mensaje cifrado a las letras del alfabeto de forma aleatoria. Esto no es más que hacer una permutación de las letras del alfabeto.

En el caso del castellano tenemos 27 letras, así que podemos formar un total de 27! posibles permutaciones de las mismas. Cada posible permutación es un cifrado monoalfabético diferente.

La llave (clave) de este cifrado es la permutación que se ha usado para cifrar el texto, y debe permanecer secreto, ya que si se hace público, cualquiera podría descifrar el texto de forma fácil, con sólo invertir la permutación...

Como ejemplo de cifrado, consideremos la siguiente permutación de letras:

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

Con esta permutación de las letras se puede cifrar un mensaje cualquiera como "Vuelvo el martes" y obtener como resultado "Botmbe tm xpysft".

Para descifrar un mensaje cifrado, sólo hay que invertir la permutación y aplicarla al mensaje cifrado. La permutación inversa de la anterior es:

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

Si nos encontramos con el texto cifrado "mp omszxp kpfp itm kpxzre", que sabemos que ha sido cifrado con la permutación anterior, no tenemos más que aplicar la permutación inversa y obtenemos "la última casa del camino", que es el texto original.

 

Criptoanálisis

El criptoanálisis de textos cifrados con este método no es demasiado complejo. El análisis a fuerza bruta consistiría en probar con todas las permutaciones posibles hasta que el texto cifrado cobrara sentido. No vamos a entrar en él, ya que hay 27! permutaciones.

Como en casos anteriores es menos costoso hacer un análisis estadístico del texto cifrado, ya que todos los cifrados monoalfabéticos mantienen las frecuencias de aparición de las letras del alfabeto. En este caso las frecuencias estarán cambiadas de sitio según la permutación que se haya escogido para cifrar el texto, pero se corresponderán con las del lenguaje.

Supongamos que nos encontramos con el siguiente texto cifrado:

Ft mmtje p ftrszy pgfemospxtrst syprfqeyspie qey tm mtrse gpmprkte it mp xofzkp, w tm yekt it mp xthzmmp it ktmzp fegyt fo xthzmmp, w tm emey spr vytfke, spr jypse it fo qztm. Tm sztxqe ft ñpgzp itstrzie, re tnzfszp wp. Feme tnzfszpr tmmef ief, orzief, tr fzmtrkze. Ktmzp re ñpgmpgp, re ytzp, re mt seysoypgp wp ker fof gyexpf.

Si hacemos un análisis estadístico del texto tenemos que las letras mas usadas ordenadas por mayor uso son t, p, e, m, f, z, r y s.

Vamos a intentar sustituirlas por las letras más frecuentes en Castellano, a ver si va tomando sentido el texto. Primero vamos a sustituir la t por la e:

Fe mmeje p ferszy pgfemospxerse syprfqeyspie qey em merse gpmprkee ie mp xofzkp, w em yeke ie mp xehzmmp ie kemzp fegye fo xehzmmp, w em emey spr vyefke, spr jypse ie fo qzem. Em szexqe fe ñpgzp ieserzie, re enzfszp wp. Feme enzfszpr emmef ief, orzief, er fzmerkze. Kemzp re ñpgmpgp, re yezp, re me seysoypgp wp ker fof gyexpf.

En la lista de palabras más frecuentes en Castellano, la palabra más usada es de, y en el texto cifrado la palabra más frecuente acabada en e es it (suponiendo que la t se descifre como e). Si sustituimos en el texto cifrado it por de tenemos:

Fe mmeje p ferszy pgfemospxerse syprfqeyspde qey em merse gpmprkee de mp xofzkp, w em yeke de mp xehzmmp de kemzp fegye fo xehzmmp, w em emey spr vyefke, spr jypse de fo qzem. Em szexqe fe ñpgzp deserzde, re enzfszp wp. Feme enzfszpr emmef def, orzdef, er fzmerkze. Kemzp re ñpgmpgp, re yezp, re me seysoypgp wp ker fof gyexpf.

Si nos fijamos en el texto cifrado, hay tres palabras que contienen el bigrama mm: mmtje, xthzmmp y tmmef. En castellano, normalmente cuando aparecen dos letras iguales seguidas en una palabra se trata de ll (lluvia, callar,...), de rr (perro, correr,...) o de la secuencia cc (acceso, acción, ...). Sin embargo, de estos tres casos el único que puede aparecer al principio de una palabra es el de ll. Por tanto lo más seguro es que la palabra cifrada mmtje empiece por ll. Entonces, sustituyendo en el texto cifrado la m por la l tenemos:

Fe lleje p ferszy pgfelospxerse syprfqeyspde qey el lerse gplprkee de lp xofzkp, w el yeke de lp xehzllp de kelzp fegye fo xehzllp, w el eley spr vyefke, spr jypse de fo qzel. El szexqe fe ñpgzp deserzde, re enzfszp wp. Fele enzfszpr ellef def, orzdef, er fzlerkze. Kelzp re ñpglpgp, re yezp, re le seysoypgp wp ker fof gyexpf.

Si seguimos mirando el texto podemos observar que hay una palabra de dos letras, mp, de la que sabemos que la primera es una l. Teniendo en cuenta que la palabra la es una de las más usadas, que la letra a es la segunda más usada en castellano y que la letra p es la segunda más frecuente en el texto cifrado parece lógico sustituir la p por la a:

Fe lleje a ferszy agfelosaxerse syarfqeysade qey el lerse galarkee de la xofzka, w el yeke de la xehzlla de kelza fegye fo xehzlla, w el eley sar vyefke, sar jyase de fo qzel. El szexqe fe ñagza deserzde, re enzfsza wa. Fele enzfszar ellef def, orzdef, er fzlerkze. Kelza re ñaglaga, re yeza, re le seysoyaga wa ker fof gyexaf.

Ahora nos podemos fijar en que tenemos en el texto cifrado unas cuantas ocurrencias de la palabra cifrada w. Teniendo en cuenta que las palabras más frecuentes en Castellano de una letra son la a y la y y que la a ya la hemos sustituido parece acertado sustituir la w por la y:

Fe lleje a ferszy agfelosaxerse syarfqeysade qey el lerse galarkee de la xofzka, y el yeke de la xehzlla de kelza fegye fo xehzlla, y el eley sar vyefke, sar jyase de fo qzel. El szexqe fe ñagza deserzde, re enzfsza ya. Fele enzfszar ellef def, orzdef, er fzlerkze. Kelza re ñaglaga, re yeza, re le seysoyaga ya ker fof gyexaf.

Nos encontramos en el texto cifrado la palabra ellef, de la que nos quedan por descifrar las dos últimas letras. Esta palabra sólo puede haberse obtenido cifrando ellas o ellos. Como sabemos que la p se descifra por a, podemos descifrar la e por la o y la f por la s:

Se llejo a serszy agsolosaxerse syarsqoysado qoy el lerso galarkeo de la xoszka, y el yoke de la xehzlla de kelza sogye so xehzlla, y el oloy sar vyesko, sar jyaso de so qzel. El szexqo se ñagza deserzdo, ro enzssza ya. Solo enzsszar ellos dos, orzdos, er szlerkzo. Kelza ro ñaglaga, ro yeza, ro le soysoyaga ya kor sos gyoxas.

La penúltima palabra de texto es sos. En castellano, la única palabra por la que tiene sentido descifrarla es por sus, así que cambiamos la o por la u:

Se llejo a serszy agsolusaxerse syarsqoysado qoy el lerso galarkeo de la xuszka, y el yoke de la xehzlla de kelza sogye su xehzlla, y el oloy sar vyesko, sar jyaso de su qzel. El szexqo se ñagza deserzdo, ro enzssza ya. Solo enzsszar ellos dos, urzdos, er szlerkzo. Kelza ro ñaglaga, ro yeza, ro le soysuyaga ya kor sus gyoxas.

Hacia el final del texto aparece la palabra er. Sabemos que empieza por e, pero la segunda letra sigue cifrada. Las candidatas para descifrarla son n, l y s. Como ya hemos asignado anteriormente la l y la s, sustituimos ahora la r por la n:

Se llejo a senszy agsolusaxense syansqoysado qoy el lenso galankeo de la xuszka, y el yoke de la xehzlla de kelza sogye su xehzlla, y el oloy san vyesko, san jyaso de su qzel. El szexqo se ñagza desenzdo, no enzssza ya. Solo enzsszan ellos dos, unzdos, en szlenkzo. Kelza no ñaglaga, no yeza, no le soysuyaga ya kon sus gyoxas.

Una de las últimas palabras del texto cifrado es unzdos, que solo cobra sentido si sustituimos la z por la i:

Se llejo a sensiy agsolusaxense syansqoysado qoy el lenso galankeo de la xusika, y el yoke de la xehilla de kelia sogye su xehilla, y el oloy san vyesko, san jyaso de su qiel. El siexqo se ñagia desenido, no enissia ya. Solo enissian ellos dos, unidos, en silenkio. Kelia no ñaglaga, no yeia, no le soysuyaga ya kon sus gyoxas.

Más o menos al final aparece la palabra silenkio, que indica claramente que debemos sustituir la k por la c:

Se llejo a sensiy agsolusaxense syansqoysado qoy el lenso galanceo de la xusica, y el yoce de la xehilla de Celia sogye su xehilla, y el oloy san vyesco, san jyaso de su qiel. El siexqo se ñagia desenido, no enissia ya. Solo enissian ellos dos, unidos, en silencio. Celia no ñaglaga, no yeia, no le soysuyaga ya con sus gyoxas.

Tal y como está en texto ya, se ven claras las sustituciones: g por b, x por m y s por t:

Se llejo a sentiy absolutamente tyansqoytado qoy el lento balanceo de la musica, y el yoce de la mehilla de Celia sobye su mehilla, y el oloy tan vyesco, tan jyato de su qiel. El tiemqo se ñabia detenido, no enistia ya. Solo enistian ellos dos, unidos, en silencio. Celia no ñablaba, no yeia, no le toytuyaba ya con sus byomas.

Realizamos las sustituciones: h por j, y por r, q por p, ñ por h y n por x:

Se llejo a sentir absolutamente transportado por el lento balanceo de la musica, y el roce de la mejilla de Celia sobre su mejilla, y el olor tan vresco, tan jrato de su piel. El tiempo se habia detenido, no existia ya. Solo existian ellos dos, unidos, en silencio. Celia no hablaba, no reia, no le torturaba ya con sus bromas.

Por último realizamos las sustituciones: j por g y v por f:

Se llegó a sentir absolutamente transportado por el lento balanceo de la música, y el roce de la mejilla de Celia sobre su mejilla, y el olor tan fresco, tan grato de su piel. El tiempo se había detenido, no existía ya. Sólo existían ellos dos, unidos, en silencio. Celia no hablaba, no reía, no le torturaba ya con sus bromas.

Este texto ha sido extraído de "Edad prohibida", de Torcuato Luca de Tena.

Comentarios

Comentarios

Selecciona arriba tu forma preferida de visualizar los comentarios y pulsa el botón para guardar tu elección para próximas visitas (sólo si eres usuario registrado).

Agustín
20 Julio 2010 - 4:08pm
Agustín's picture

En el criptoanálisis, para distinguir las letras originales de las modificadas, sería conveniente poner todas las letras del texto original en minúsculas, e irlas cambiando por letras en mayúscculas, o al revés, pues de otro modo se pueden producir confusiones.

darthje
22 Julio 2010 - 1:10pm
darthje's picture

Me parece una magnifica idea. La verdad es que no había pensando en ello si bien si que había pensado que, quizas, podría ser confuso distinguir entre texto llano y texto cifrado auque se tenga el texto cifrado original como referencia para distinguir ambos.

Pues eso, que a partir de ahora distinguiré en los criptoanálisis entre texto llano y texto crifrado, o bien usando el método propuesto de MAYUSCULAS/minisculas u otro, como expuesto en otro comentario consistente en poner el texto en distintos colores.

Haré varias pruebas para ver como queda mejor y cual es más rápido-fácil.

¡Disfruta de la tecnología!
http://darthnet.blogspot.com/

iPrendes
21 Julio 2010 - 10:04am
iPrendes's picture

O poner las originales en azul y las sustituidas en rojo, que se distinga al primer golpe de vista. No sé si supondría mucho trabajo adicional.

Muchas gracias a darthje por la serie de artículos, los que somos nuevos en esto te lo agradecemos infinito. Espero impaciente por el siguiente. Y gracias a Kriptópolis por todo.

CaStarCo
22 Julio 2010 - 12:50am
CaStarCo's picture

La serie que estas escribiendo es bastante interesante, pero creo que hay algunos detalles dignos de mención que no has comentado y no sé si querrás comentar (yo sugiero que lo hagas).

Uno de los problemas que más crispación puede producir cuando se está intentando descifrar un mensaje es, no ya intentar adivinar la clave o el mensaje conociendo el método de cifrado... sino, ¡conocer qué metodo de cifrado se ha usado! ¿Qué metodos existen para inferir o imaginar qué posible método se ha usado?

Por otro lado, el cifrado con espacios que separan las palabras es probablemente demasiado inocente incluso para los cifrados clásicos. Yo lo añadiría al alfabeto y lo consideraría como un carácter más en los análisis estadísticos de criptoanálisis (suponiendo que el espacio también puede ser cambiado por cualquier otra letra).

Un saludo.

darthje
22 Julio 2010 - 1:13pm
darthje's picture

Es una buena idea pero, en mi opinión, sería aplicable solo al final de la serie. Es decir, una vez vistos todos los métodos. Creo que es mejor ir poniendo ejemplos concretos que ilustren los métodos que se exponen.

¡Disfruta de la tecnología!
http://darthnet.blogspot.com/

Agustín
22 Julio 2010 - 2:17pm
Agustín's picture

Los espacios deben ser también codificados

Pedro Fdez.
22 Julio 2010 - 3:01am
Pedro Fdez.'s picture

Gracias, Dharthje, una vez más; esta introducción a la ciencia criptográfica está resultando muy entretenida... No sé, puede que lo cogiera con ganas desde el principio y ya se sabe: los nuevos retos se afrontan mejor si se toman con una actitud personal positiva. De lo que no dudo es de que hay mucho mérito en la forma, tiempo y lugar en que estos interesantes saberes encuentran su expresión; por lo que considero oportuno aprovechar la ocasión para extender mi gratitud a Kriptópolis.org en la persona de su administrador (admin) y demás contertulios: GRACIAS pues, a vosotras y vosotros, por hacer esto posible.

Creo que el presente comentario, en si mismo, ve justificada su concepción por el mero hecho de proporcionar retroalimentación (término que, en este contexto, considero más adecuado que el de "realimentación") comunicacional o feedback a quienes asumen el papel de EMISORES/RECEPTORES; no obstante, quisiera además aportar una sugerencia que, en mi opinión, podría contribuir a asentar la base que fundamentaría presentes y futuras exploraciones o investigaciones en la materia. Se trata, únicamente, de exponer una descripción clásica de lo que significa Comunicación, o mejor, Proceso Comunicacional ya que, éstos últimos términos, nos recuerdan que se trata de algo dinámico, viviente, superviviente o redivivo y que, conociendo sus partes, siempre podremos ubicar o acotar con mejor perspectiva el objeto de nuestro análisis para alcanzar la comprensión más conveniente o superior de su estructura o conformación y SIGNIFICADO. El esquema propuesto es simple y evidente, pero denso; en todo proceso comunicacional existen, al menos, seis partes bien diferenciadas:

1.- El Contexto o Ambiente en que dicho proceso tiene o ha tenido lugar.
2.- El Emisor.
3.- El Canal o Medio (bidireccional, aunque puede estar diferenciado en cuanto a emisión/recepción).
---------------
4.- El Código empleado para componer El Mensaje.
4.1.- El Mensaje (que, en el caso que nos ocupa estará, además, cifrado)
---------------
5.- El Receptor (que también puede emitir mensajes de confirmación, feedback, lenguaje no-verbal, etc).

Un intento de esquematizar lo anterior sería:

 ++++++++++++++++++++++++CONTEXTO++++++++++++++++++++++++++++
 +++++++++++++++>>>>>CÓDIGO Y MENSAJE>>>>>++++++++++++++++++++
 +++++++++EMISOR<--------CANAL/ES-------->RECEPTOR+++++++++++++++
 ++++++++++++++++++++++++CONTEXTO++++++++++++++++++++++++++++

Perdonad si el esquema anterior os induce a error pero creo que se entiende que, aunque nuestros esfuerzos en este aprendizaje se centren, de momento, en el cifrado del MENSAJE respecto de un CÓDIGO dado o idioma escrito; ser conocedores de las demás partes que integran todo proceso comunicacional podría clarificar o ayudarnos a entender mejor la complejidad que estos asuntos pueden llegar a tener...

Aún imaginando que las personas avanzadas o expertas en estas lides lo tendrán muy asumido y teniendo en cuenta que el tema que nos ocupa partirá de la suposición de que lo anterior estará asimilado, he pensado que quizá no estaría de más hacer esta breve mención de ello. En la URL [ http://es.wikipedia.org/wiki/Comunicación ] se puede ampliar y mejorar esta información.

Saludos cordiales,

Pedro Fernández
--

usrdxt
24 Julio 2010 - 11:57am
usrdxt's picture

por esta serie de artículos. Muy bien expuesto y muy didáctico, a los torpes como yo nos sirve de mucho.