viernes, 24 de noviembre de 2017

Criptografía (LXXIII): Solución Reto 6

El  enunciado del sexto reto que puse en este post era el siguiente: "Allá por el siglo IX, Al-Kindi, un filósofo árabe, fue el primero que se dio cuenta, o al menos que lo documentó, de que se podía atacar un texto cifrado mediante la estadística del lenguaje en el que estuviera escrito el texto en claro, ya que ciertas características del mismo se trasladaban al criptograma. Por ello, entiendo que podría ser considerado como el padre del criptoanálisis e incluso como el primer "hacker" de la historia. El análisis de frecuencias consiste, básicamente, en estudiar la frecuencia de aparición en el criptograma de caracteres o símbolos y de grupos de ellos (de ahí el título de este reto) con relación a la frecuencia de las letras y grupos de éstas en el lenguaje en el que esté escrito el texto en claro. ¿Puedes descifrar el criptograma asociado al reto utilizando el análisis de frecuencias?".

Este reto es de criptografía y su solución es:

1.- La frecuencia de aparición (número y porcentaje) de los símbolos que se observa en el criptograma y, por otra parte, la frecuencia de aparición de las letras (porcentaje) en el idioma español son las siguientes:
Esto nos da una pista muy importante sobre qué símbolos del criptograma pueden corresponderse con las letras del texto en claro:

1.1.- Los candidatos a ser las dos letras más frecuentes en español ("E" y "A") son fácilmente reconocibles con un análisis de frecuencias de los símbolos, ya que son las que presentan una significativa mayor frecuencia de aparición en dicho idioma, por lo que vamos a establecer la hipótesis inicial de que los dos primeros símbolos con mayor frecuencia de aparición en el criptograma son los candidatos a ser la "E" y la "A", respectivamente, en el texto en claro.

1.2.- A partir de ahí, la tabla de frecuencias anterior nos puede indicar qué símbolos del criptograma son candidatos a ser el resto de letras en el texto en claro, pero en criptogramas no muy largos (el del reto tiene una longitud de 132 símbolos), aunque constituye una muy buena base de partida, esto no es fácil de determinar únicamente con el análisis de frecuencias de los caracteres o símbolos (monogramas), por lo que tendremos que acudir al análisis de bigramas, trigramas, etc. (grupos de dos caracteres o símbolos, de tres, etc.) e incluso de aquellos grupos que podrían formar palabras, por lo que ahora le toca el turno a eso que da título a este reto: "Dime con quién andas y te diré quién eres".

2.- Una vez que hemos establecido los candidatos más probables a ser la "E" y la "A" en el texto en claro y antes de realizar un análisis de frecuencias de los bigramas y trigramas, nos fijamos en que el criptograma comienza con el candidato a ser la "E", por lo que el segundo símbolo (frecuencia de aparición del 8,33%) es muy probable que se corresponda con una de las consonantes de mayor frecuencia ("S", "R" o "N", más probable por su frecuencia de aparición que sea la "S"), y muy poco probable que se corresponda con la "O" (la otra vocal con mayor frecuencia de aparición en español). Por tanto, completamos nuestra hipótesis inicial de la siguiente manera:
Con esta hipótesis una primera aproximación al texto en claro sería:
A la vista del resultado obtenido hasta ahora, podríamos pensar que el tercer símbolo del criptograma se corresponde con la letra "T" (el criptograma empezaría por "ESTE") y que los dos símbolos que se repiten consecutivamente en la undécima fila se corresponden con la "L" (podría leerse "ELLOS").

El tercer símbolo presenta una frecuencia de aparición del 5,30%, mientras que los dos símbolos que se repiten consecutivamente también aparecen con una frecuencia del 5,30%. En ambos casos esta frecuencia podría ser coherente con las de la letra "T" (4,63%) y "L"(4,97%) en español, respectivamente.

Incluyendo estos dos símbolos en nuestra hipótesis, una segunda aproximación al texto en claro sería:
3.- Y ahora realizamos el análisis de frecuencias de bigramas y trigramas:

Hay doce bigramas que se repiten 3 o más veces cada uno de ellos en el criptograma, los siguientes:

- "OS" (según nuestra hipótesis) en 5 ocasiones. Bigrama muy frecuente en español.

"LO" (según nuestra hipótesis) en 4 ocasiones. Bigrama frecuente en español.

"TE" (según nuestra hipótesis) en 4 ocasiones. Bigrama frecuente en español.

"ES" (según nuestra hipótesis) en 3 ocasiones. Quizás el bigrama más frecuente en español. 

"EL" (según nuestra hipótesis) en 3 ocasiones. Bigrama muy frecuente en español.

- Tres que terminarían según nuestra hipótesis con la letra "E", los siguientes: 
El símbolo que precede a la "E" en el bigrama enmarcado en color rojo en la figura anterior y que aparece en 4 ocasiones bien podría corresponderse con la letra "D", ya que: el bigrama "DE" es posiblemente el más frecuente en español que termina en "E", en la fila undécima podría leerse "DE ELLOS", la frecuencia de aparición de dicho símbolo en el criptograma es del 4,55% (lo que no estaría muy alejado de la frecuencia de aparición de la "D" en el idioma español: 5,86%) y el trigrama "ADO" que formaría en la fila cuarta es muy común en español.

El símbolo que precede a la "E" en el bigrama enmarcado en color verde en la figura anterior y que aparece en 3 ocasiones podría ser la "U", pero me surgen dudas porque, aunque el bigrama "UE" es frecuente en español (detrás de "DE" posiblemente el segundo más frecuente terminado en "E"), su frecuencia de aparición en el criptograma es muy superior (6,06%) a la que se espera encontrar para la "U" en un texto escrito en español (3,93%).

El símbolo que precede a la "E" en el bigrama enmarcado en color azul en la figura anterior y que aparece en 3 ocasiones no me dice gran cosa considerado individualmente, sólo que por su frecuencia de aparición (6,06%) podría ser "R", "N" o "I". No obstante, como este bigrama aparece de forma consecutiva en la duodécima fila yo diría que hay que descartar la "I" y, por tanto, ese símbolo es candidato a ser "R" o "N".

- Un bigrama que involucra a los dos últimos de los símbolos analizados, que aparece en 3 ocasiones (enmarcado en color naranja en la figura siguiente), y que parece indicar que estos se corresponderían con "U" y "N", respectivamente, leyéndose "UN" en el texto en claro.
- Los otros tres bigramas que se repiten en tres ocasiones, de momento, no me dicen gran cosa, pero creo que con lo obtenido hasta el momento estamos ya en disposición de intentar descifrar casi completamente el criptograma.

Recapitulamos:
Por tanto, una tercera aproximación al texto en claro sería la siguiente;
Podríamos seguir con el análisis de frecuencias de bigramas y trigramas, ya que hay algunos que serían muy fáciles de obtener (por ejemplo, el trigrama "QUE" es el más frecuente en español y hay un símbolo que lo formaría dos veces), pero es que a simple vista se pueden leer ya palabras: "ATAQUE", "TEXTO", "ANALISIS",..., y estableciendo el candidato a ser la "I" el único símbolo que queda con frecuencia de aparición de  6,06% es más que probable que sea la "R". Además, considerando todo lo anterior y la frecuencia de aparición de los símbolos que quedan creo que es fácil establecer otros candidatos, por ejemplo el que se correspondería con la "C", y con todo ello proceder ya a descifrar completamente el criptograma:
Por tanto, la solución al reto 6 es:

"ESTE ES UN EJEMPLO DE ATAQUE A UN TEXTO CIFRADO MEDIANTE UN ANALISIS DE FRECUENCIAS DE LOS CARACTERES O SIMBOLOS Y GRUPOS DE ELLOS QUE FIGURAN EN EL CRIPTOGRAMA".

******** PRÓXIMO RETO
Reto 7:     "Descifrando Enigma".

martes, 21 de noviembre de 2017

Criptografía (LXXI): Solución Reto 5

El  enunciado del quinto reto que puse en este post era el siguiente: "Como en casi todo en esta vida, en el criptoanálisis la fuerza bruta no es una opción o, al menos, suele ser la peor opción. Pero, también como en casi todo en esta vida, hay excepciones. Éste es el caso del criptograma asociado al reto, ya que el espacio de claves (conjunto finito de todas las claves que se pueden emplear) es ridículo, incluso para un criptosistema clásico. Por las pistas dadas hasta ahora, seguro que ya sabes cuál es el criptosistema empleado para cifrar el criptograma. Por otra parte, el refranero español es muy sabio y nos recuerda lo que he dicho al principio: ¿me puedes decir qué frase del refranero español se esconde en el criptograma?".

Este reto es de criptografía y su solución es:

Por las pistas dadas en el título y el enunciado es evidente que el criptograma asociado al reto se ha obtenido mediante el cifrado César (ya expliqué en este post cómo se cifra y descifra utilizando este método).

Lo más habitual en este tipo de cifrado es que cada carácter del texto en claro se sustituya por aquel que se encuentra un número fijo de posiciones por delante de él en el alfabeto (por ejemplo: la "A" se sustituye por la "D", la "B" por la "E", etc.). Típicamente, el desplazamiento utilizado suele ser de 3 posiciones, pero este cifrado puede generalizarse para emplear uno de los - 1 desplazamientos posibles, siendo "n" el tamaño del alfabeto, es decir, si usamos el alfabeto español (n = 27) podemos usar uno de 26 desplazamientos. Cuando el desplazamiento es fijo nos referimos a un cifrado de desplazamiento puro.

Por tanto, utilizando la fuerza bruta, es decir, probando todos los posibles desplazamientos el ataque prosperará en el peor de los casos en el intento vigésimo sexto, lo que es perfectamente posible realizar en muy poco tiempo, incluso a mano.

Para ello, colocamos el criptograma en una fila y debajo de cada uno de los caracteres del mismo colocamos el carácter anterior del alfabeto. Si logramos leer un refrán (que es la respuesta que nos pide el reto) el ataque habrá prosperado, en caso contrario añadimos una nueva fila y colocamos debajo de cada carácter de la fila anterior el carácter anterior del alfabeto, y así sucesivamente hasta que obtengamos un texto inteligible, de la siguiente manera:
Tal y como decía en el enunciado, esto ha sido posible en este caso porque en el cifrado César el tamaño del espacio de claves (conjunto finito de todas las claves que se pueden emplear) es ridículo, incluso para un criptosistema clásico.

Por tanto, la solución al reto 5 es "Más vale maña que fuerza", frase del refranero español que nos viene a recordar que la fuerza no suele ser la mejor opción.

******** PRÓXIMO RETO
Reto 6:     "Dime con quién andas y te diré quién eres".

domingo, 19 de noviembre de 2017

Criptografía (LXXII): Reto 6

Otro reto fácil sobre criptografía.

Como siempre, se admiten soluciones en forma de comentarios a esta entrada. A lo largo de la semana iré proporcionando pistas para su resolución, un máximo de tres, y posteriormente actualizaré este post con la solución.

Reto 6: "Dime con quién andas y te diré quién eres".

Allá por el siglo IX, Al-Kindi, un filósofo árabe, fue el primero que se dio cuenta, o al menos que lo documentó, de que se podía atacar un texto cifrado mediante la estadística del lenguaje en el que estuviera escrito el texto en claro, ya que ciertas características del mismo se trasladaban al criptograma. Por ello, entiendo que podría ser considerado como el padre del criptoanálisis e incluso como el primer "hacker" de la historia. El análisis de frecuencias consiste, básicamente, en estudiar la frecuencia de aparición en el criptograma de caracteres o símbolos y de grupos de ellos (de ahí el título de este reto) con relación a la frecuencia de las letras y grupos de éstas en el lenguaje en el que esté escrito el texto en claro. ¿Puedes descifrar el criptograma asociado al reto utilizando el análisis de frecuencias?.

Dificultad:
Tipo:          Criptografía.

Recursos:  - Criptograma:
******** 21/11/2017
Pista 1:     En nuestro reto la frecuencia de aparición (porcentaje) de los símbolos en el criptograma comparada con la frecuencia de aparición (porcentaje) de las letras en el idioma español nos dará una pista muy importante sobre qué símbolos pueden corresponderse con las letras del texto en claro. Así, los dos candidatos a ser las letras más frecuentes en español ("E" y "A") serán fácilmente reconocibles con un análisis de frecuencias de los símbolos, ya que éstas son las que presentan una significativa mayor frecuencia de aparición en dicho idioma. Este análisis de frecuencias de monogramas es un muy buen punto de partida, pero, sobretodo en criptogramas no muy largos (éste tiene una longitud de 132 símbolos), debe completarse necesariamente con los correspondientes análisis de bigramas, trigramas, etc. (grupos de dos caracteres o símbolos, de tres, etc.) e incluso de aquellos grupos que podrían formar palabras, por lo que ahora le toca el turno a eso que da título al reto: "Dime con quién andas y te diré quién eres".

******** 22/11/2017
Pista 2:     Del análisis de frecuencias de los símbolos podemos establecer la hipótesis inicial de que los dos que aparecen con mayor frecuencia en el criptograma se corresponden con las letras "E" y "A", respectivamente. Considerando, además, que el criptograma comienza con el candidato a ser la "E", y teniendo siempre presente el porcentaje de aparición de los símbolos, podemos completar nuestra hipótesis estableciendo los candidatos a ser la "O" y la "S", de la siguiente manera (a la izquierda se muestra el porcentaje de aparición de los símbolos en el criptograma y a la derecha el porcentaje de aparición de las letras que se espera encontrar en un texto escrito en español):
Con lo que en una aproximación al texto en claro tendríamos:
Fijándonos en los símbolos enmarcados en color rojo y considerando su porcentaje de aparición en el criptograma creo que no es difícil establecer a qué letras podrían corresponderse en el texto en claro. A partir de aquí, quizás con el análisis de bigramas, trigramas, etc... consigas descifrar completamente el criptograma.

******** 23/11/2017
Pista 3:     Completando nuestra hipótesis con los dos símbolos enmarcados en rojo en la pista anterior, que serían los candidatos a ser la "T" y la "L", respectivamente, hacemos una segunda aproximación al texto en claro:
Considerando esta aproximación, en la que se han enmarcado algunos bigramas y trigamas, teniendo siempre presente el porcentaje de aparición de los símbolos en el criptograma, y teniendo en cuenta que:

- "DE"  y "UE" son los bigramas que terminan en "E" más frecuentes en español,
- "UN" es un bigrama frecuente en español,
- "QUE" es el trigrama más frecuente en español,
- "ADO" y "NTE" son trigramas frecuentes en español,

estoy seguro de que con todo ello puedes ir completando la hipótesis con nuevos símbolos candidatos a letras en el texto en claro e ir haciendo nuevas aproximaciones hasta descifrar completamente el criptograma. 

******** 24/11/2017
Solución.

******** PRÓXIMO RETO
Reto 7:     "Descifrando Enigma".

jueves, 16 de noviembre de 2017

Criptografía (LXX): Reto 5

En este post otro reto muy fácil sobre criptografía; a ver si alguien se anima a comentar :).

Como siempre, se admiten soluciones en forma de comentarios a esta entrada. A lo largo de la semana iré proporcionando pistas para su resolución, un máximo de tres, y posteriormente actualizaré este post con la solución.

Reto 5: "Tú también, Bruto, hijo mío".

Como en casi todo en esta vida, en el criptoanálisis la fuerza bruta no es una opción o, al menos, suele ser la peor opción. Pero, también como en casi todo en esta vida, hay excepciones. Éste es el caso del criptograma asociado al reto, ya que el espacio de claves (conjunto finito de todas las claves que se pueden emplear) es ridículo, incluso para un criptosistema clásico. Por las pistas dadas hasta ahora, seguro que ya sabes cuál es el criptosistema empleado para cifrar el criptograma. Por otra parte, el refranero español es muy sabio y nos recuerda lo que he dicho al principio: ¿me puedes decir qué frase del refranero español se esconde en el criptograma?.

Dificultad: 
Tipo:          Criptografía.

Recursos:  - Criptograma: YNFINXQYNANDHQRHQEMN

******** 18/11/2017
Pista 1:     Por el título del reto enseguida te habrás dado cuenta de que me refiero al cifrado César. Lo más habitual en este tipo de cifrado es que cada carácter del texto en claro se sustituya por aquel que se encuentra un número fijo de posiciones por delante de él en el alfabeto (por ejemplo: la "A" se sustituye por la "D", la "B" por la "E", etc.). Típicamente, el desplazamiento utilizado suele ser de 3 posiciones, pero este cifrado puede generalizarse para emplear uno de los hasta - 1 desplazamientos posibles, siendo "n" el tamaño del alfabeto, es decir, si usamos el alfabeto español (n = 27) podemos usar uno de 26 desplazamientos. Cuando el desplazamiento es fijo nos referimos a un cifrado de desplazamiento puro.

******** 19/11/2017
Pista 2:     Utilizando la fuerza bruta, es decir, probando todos los posibles desplazamientos, el ataque prosperará en el peor de los casos en el intento vigésimo sexto, lo que es perfectamente posible realizar en muy poco tiempo, incluso a mano.

******** 20/11/2017
Pista 3:     Coloca el criptograma en una fila y debajo de cada uno de los caracteres del mismo coloca el carácter anterior del alfabeto. Si logras leer un refrán el ataque habrá prosperado, en caso contrario añade una nueva fila y coloca debajo de cada carácter de la fila anterior el carácter anterior del alfabeto, y así sucesivamente hasta que obtengas un texto inteligible.
******** 21/11/2017
Solución.

******** PRÓXIMO RETO
Reto 6:     "Dime con quién andas y te diré quién eres".

Criptografía (LXIX): Solución Reto 4

El  enunciado del cuarto reto que puse en este post era el siguiente: "Como es sabido la palabra clave viene del latín (clavis, "llave"), y la "llave" de este reto la tiene un científico inglés, quizás el más importante que ha dado la humanidad y cuyo nombre latinizado se esconde en el anagrama asociado al reto. Con la "llave inglesa" descifrar el criptograma que figura a continuación es un juego de niños, sobretodo si os digo que el inventor del criptosistema con el que se ha cifrado el texto en claro es otro científico inglés, Charles Wheatstone. ¿Me puedes decir a qué obra del primero de estos dos científicos ingleses se refiere el criptograma?".

Este reto es de criptografía y su solución es:

1.- Investigando un poco es fácil encontrar que "Jeova Sanctus Unus" (algo así como: "Jeová único santo") era el seudónimo que utilizaba Isaac Newton para firmar sus trabajos como alquimista.

Si reordenamos los caracteres del anagrama obtenemos el nombre latinizado de este gran científico, de la siguiente manera:
Es decir: "ISAACUS NEUUTONUS".

Utilizando este resultado como clave podremos descifrar el criptograma.

2. Para ello, lo primero que debemos saber es qué criptosistema se ha utlizado para cifrar el texto en claro, y el enunciado del reto nos da una pista muy importante para ello, su inventor fue otro científico inglés: Charles Wheatstone.

Investigando un poco más también es fácil darse cuenta de que este último fue el inventor del cifrado de Playfair, aunque éste método lleve el nombre de Lyon Playfair, que fue quien lo dio a conocer.

3.- Básicamente, este método consiste en:

3.1.- Disponer en una matriz de 5x5, de izquierda a derecha y de arriba a abajo, los caracteres de la clave (eliminando los repetidos) y después completar dicha matriz con el resto de los caracteres del alfabeto que no figuren el clave, excluyendo la "J" y la "Ñ".

En nuestro caso:

Clave:  "ISAACUS NEUUTONUS". Eliminamos caracteres repetidos: "ISACUNETO" y los disponemos en la matriz de 5x5, completándola después con el resto de caracteres del alfabeto diferentes a los anteriores.
3.2.- Ya expliqué en este post como se cifra un texto en claro utilizando este criptosistema y ahora vamos a descifrar el criptograma del reto: "QLTASA".

Agrupamos los caracteres del criptograma dos a dos: QL TA SA.

Como "Q" y "L" están en la misma fila, para descifrar, se sustituye cada uno de ellos por el carácter situado inmediatamente a su izquierda (si es el primero de la fila se sustituye por el último de la fila), obteniéndose "P" y "R", respectivamente:
Como "T" y "A" están en la misma columna, para descifrar, se sustituye cada uno de ellos por el carácter situado inmediatamente encima de él (si es el primero de la columna se sustituye por el último de la columna), obteniéndose "A" y "X", respectivamente:
Y, finalmente, como "S" y "A" están en la misma fila, para descifrar, se sustituye cada uno de ellos por el carácter situado inmediatamente a su izquierda (si es el primero de la fila se sustituye por el último de la fila), obteniéndose "I" y "S", respectivamente:
 Obteniéndose como texto en claro: "PRAXIS".

4.- Por tanto, la solución al reto 4 es "Praxis", que es la obra más importante de Isaac Newton como alquimista.

******** PRÓXIMO RETO
Reto 5:     "Tú también, Bruto, hijo mío".

lunes, 13 de noviembre de 2017

Criptografía (LXVII): Solución Reto 3

El  enunciado del tercer reto que puse en este post era el siguiente: "El pasado 25 de julio fue el cumpleaños de un amigo mío, y tras felicitarle le pregunté cuantos años cumplía, pregunta a la que no me quiso responder y ante la cual esbozó una sonrisa. Al llegar a casa mi amigo me envió un correo electrónico con el texto asociado al reto. ¿Me puedes ayudar a saber qué edad tiene mi amigo?".

Este reto es de criptografía y su solución es:

1.- El primer criptograma que aparece en el texto del correo asociado al reto está formado sólo por caracteres alfabéticos en mayúsculas, lo que nos puede indicar que se ha utilizado un método clásico para cifrar el texto en claro.

Para intentar conocer el tipo de método empleado calculamos el Índice de Coincidencia (IC) del criptograma (ver este post donde lo explico), ya que esto nos puede ayudar a determinar si el criptosistema empleado es de transposición o de sustitución monoalfabética simple, o si por el contrario pudiera tratase de uno de sustitución polialfabética o de otro tipo.

Si fuera uno de transposición o de sustitución monoalfabética simple, o incluso una combinación de ambos tipos de cifrado, el IC (probabilidad de que dos letras escogidas al azar de un texto resulten ser la misma) del idioma en el que está escrito el texto en claro se habrá trasladado al criptograma (C).

= "PEEIHNÑEFEFAGEFEÑOVEPOVSHXGNWAGINPDSDHQSLGÑSUNHFUYHUHUPJ
CRDOPHGLDNWMIUREJMRTRYHOVIHNHOCCÑAYIRAUAGIUCLFUETEÑSLKWIHNW
IERLPWSIRDMD"

Por tanto, calculamos IC(C): 0,0441.

Este IC está muy alejado del que se espera encontrar en un texto escrito en español (0,0775), idioma en el que supongo que mi amigo escribió el texto en claro, y también de otros idiomas (inglés,...), por lo que podemos descartar la transposición y la sustitución monoalfabética simple como tipos del criptosistema empleado.

2.- Llegados a este punto, vamos a intentar comprobar si el método se corresponde con un sistema de sustitución polialfabética con clave periódica.

Para ello utilizamos el método Kasiski para atacar cifrados de este tipo (ver post donde lo expliqué). Recordar que para ello se trata de localizar secuencias de tres o más caracteres repetidas en el texto cifrado o criptograma, lo cual significaría casi con toda probabilidad que dichas secuencias no sólo eran la misma antes del cifrado sino que además la clave debió coincidir en la misma posición.

Ya conté en el post al que he hecho referencia cómo se hace esto a mano, pero en este caso usaré un software (CriptoclasicosV2.1).
Como se observa en la figura anterior (la ventana está recortada para mostrar únicamente los datos que interesan en este momento; más adelante se muestra la ventana completa), tras introducir el criptograma, el software detecta varias secuencias de caracteres repetidas e indica la separación entre las mismas, y propone que la longitud de la clave puede ser de 6 caracteres, mcd(6, 30, 66, 78). Es decir, la longitud más probable de la clave es 6, que es el máximo común divisor o mayor número entero que divide a todos esos números (separaciones) sin dejar resto.

¿Puede ser Vigenère el método de cifrado utilizado (ver este post donde lo explico)?. Pues sí, y vamos a comprobarlo con el mismo software.
Tras el análisis de frecuencias realizado en cada uno de los 6 subcriptogramas, el software propone como clave "DECPDA", pero en el texto en claro, aunque parcialmente descifrado (casi completamente), se observa que la cuarta posición de la clave no es correcta, y es fácil darse cuenta de que la clave correcta es "DECADA". Modificamos la clave y volvemos a descifrar el criptograma.
Y se obtiene el siguiente texto en claro:

"NACIENLADECADADELOSAÑOSSETENTADELPASADOSIGLOSNEFRUFUEUNFARAONDELANTIGUOEGIPTOYELTIENELACLAVEPARADESCIFRARELSIGUIENTECRIPTOGRAMA"

Es decir:

"NACI EN LA DECADA DE LOS AÑOS SETENTA DEL PASADO SIGLO SNEFRU FUE UN FARAON DEL ANTIGUO EGIPTO Y EL TIENE LA CLAVE PARA DESCIFRAR EL SIGUIENTE CRIPTOGRAMA".

3.- Con este dato ya sé que mi amigo nació entre los años 1970 y 1979, es decir, que tiene entre 38 y 47 años, y, además, me queda claro que se ha puesto muy críptico. ¿A qué se referirá con eso del tal Snefru?.

Pues bien, tal y como nos cuenta wikipedia, Snefru fue el primer faraón de la dinastía IV del Imperio Antiguo de Egipto, pero, si se investiga un poco más, también es el nombre que  le dio su inventor, Ralph Merkle, a una función hash criptográfica.

La segunda cadena que aparece en el correo de mi amigo: "8735f04f7d38955fa9a11e6265f11b16" tiene una longitud de 32 caracteres hexadecimales o, lo que es lo mismo, 128 bits. Por tanto, me queda claro que puede tratarse de un hash obtenido con el algoritmo Snefru 128.

Para intentar ver el texto en claro acudimos a una web especializada en dicho algoritmo y que supongo que es la que utilizó mi amigo para obtener ese hash, lo introducimos y vemos que se corresponde con:

"MI AÑO DE NACIMIENTO ES UNO DE LOS DE LA PRIMERA MITAD DE LOS AÑOS SETENTA. EL SIGUIENTE CRIPTOGRAMA ESTÁ CIFRADO CON EL ALGORITMO RSA Y EL PRODUCTO DE LOS DOS NÚMERO PRIMOS QUE HAN SERVIDO PARA GENERAR EL PAR DE CLAVES, PÚBLICA Y PRIVADA, ES 52.841, Y LA CLAVE PÚBLICA ES 7".

4.- Bueno, ya tenemos otro dato más; mi amigo nació entre 1970 y 1974 (por tanto, tiene entre 43 y 47 años de edad), pero además nos da información sobre el criptosistema empleado para cifrar el último criptograma, RSA, y la información pública de la clave, que efectivamente la tenía Snefru, es decir, el módulo y su clave pública.

El problema es que sólo él puede descifrar un criptograma cifrado con su clave pública, porque sólo él dispone de la clave privada correspondiente a la primera.

Por tanto, no queda otra opción que intentar obtener la clave privada de mi amigo con la información que nos da. Esto no sería posible en un tiempo mínimamente razonable, por mucha potencia de cálculo de la que se disponga, si mi amigo hubiera utilizado un número lo suficientemente grande para el módulo, pero yo creo que al final se apiadó de mí y utilizó un número muy pequeño y, por tanto, que se puede factorizar de forma casi inmediata (por ejemplo con el método de factorización Rho de Pollard. Ya expliqué en este post cómo hacerlo, pero voy a utilizar otro software para ello, Simulación de la Fortaleza de Cifrados).
Como se puede apreciar en la figura anterior, el software no ha tardado ni un segundo en factorizar el módulo (52.841), siendo los dos factores primos hallados 53 y 997.

Ahora estamos ya en disposición de obtener la clave privada que corresponde a la clave pública con la que mi amigo cifró el último criptograma del reto y con ella proceder al descifrado. También expliqué como calcularla en este post, pero también voy a utilizar un software para ello (genRSA).
Introduciendo los dos factores primos hallados anteriormente (p = 53 y q = 997) y la clave pública (e) = 7, el software nos da como resultado la clave privada (d) = 7399.

Y con este último dato ya estamos en condiciones de responder a la pregunta del reto. Para ello, acudimos otra vez al software Simulación de la Fortaleza de Cifrados y desciframos el último criptograma, "6AE3" (en decimal, 27.363), que según mi amigo es el año en el que nació.
5.- Por tanto, si mi amigo nació en el año 1974, la solución al reto 3 es que el 25 de julio de 2017 cumplió: "43 años".

******** PRÓXIMO RETO
Reto 4: "La llave inglesa".

sábado, 11 de noviembre de 2017

Criptografía (LXVIII): Reto 4

En esta post un reto muy fácil sobre criptografía.

Como siempre, se admiten soluciones en forma de comentarios a esta entrada. A lo largo de la semana iré proporcionando pistas para su resolución, un máximo de tres, y posteriormente actualizaré este post con la solución.

Reto 4: "La llave inglesa".

Como es sabido la palabra clave viene del latín (clavis, "llave"), y la "llave" de este reto la tiene un científico inglés, quizás el más importante que ha dado la humanidad y cuyo nombre latinizado se esconde en el anagrama asociado al reto. Con la "llave inglesa" descifrar el criptograma que figura a continuación es un juego de niños, sobretodo si os digo que el inventor del criptosistema con el que se ha cifrado el texto en claro es otro científico inglés, Charles Wheatstone. ¿Me puedes decir a qué obra del primero de estos dos científicos ingleses se refiere el criptograma?.

Dificultad: 
Tipo:          Criptografía.

Recursos:  - Anagrama:    JEOVASANCTUSUNUS

                  - Criptograma: QLTASA

******** 13/11/2017
Pista 1:     Nadie discute que Isaac Newton ha sido uno de los más importantes científicos que ha dado la humanidad, si no el más grande. Si investigas un poco sabrás, además, que "Jeova Sanctus Unus" (algo así como: "Jehová único santo") era el seudónimo que utilizaba para firmar sus trabajos como alquimista.

******** 14/11/2017
Pista 2:     Si reordenamos las letras del anagrama asociado al reto obtenemos el nombre latinizado de Isaac Newton que en él se esconde: ISAACUS NEUUTONUS. Con esta clave y la pista dada en el enunciado del reto sobre quién fue el inventor del método con el que se ha cifrado el criptograma, descifrar este último es cosa fácil.

******** 15/11/2017
Pista 3:     Charles Wheatstone fue el inventor del conocido como cifrado de Playfair, pero éste lleva el nombre de un amigo suyo, Lyon Playfair, que fue quien lo dio a conocer.

******** 16/11/2017
Solución.

******** PRÓXIMO RETO
Reto 5:     "Tú también, Bruto, hijo mío".

Criptografía (LXV): Solución Reto 2

El  enunciado del segundo reto que puse en este post era el siguiente: "Al llegar estas fechas suelo aprovechar uno de los puentes festivos para hacer una 'escapada' a Madrid. Por el camino siempre paro a visitar un precioso pueblo de la provincia de Burgos y, por supuesto, para comer en uno de sus excelentes asadores. Yo, que soy muy celoso de mi intimidad, le he mandado a un amigo un correo con los dos archivos asociados al reto. Supón que interceptas dicho correo, ¿me puedes decir a qué pueblo de Burgos me refiero?".

Este reto combina la esteganografía con la criptografía, y su solución es:

1.- El archivo asociado al reto (Reto 2_Foto y ubicación.zip) contiene dos archivos: Foto.jpg y Ubicación.txt, que, lógicamente, parecen contener la respuesta a la pregunta del reto, es decir, un pueblo de la provincia de Burgos, pero para poder tener acceso a esa información es necesario saber la contraseña.

Por tanto, lo primero que debemos hacer es averiguar dicha contraseña y, para ello, podríamos realizar un ataque por fuerza bruta o un ataque por diccionario con alguna herramienta, pero este tipo de ataques pueden tardar mucho tiempo en obtenerla, si lo logran, máxime si se se trata de una contraseña fuerte (más de ocho caracteres y combinando letras mayúsculas y minúsculas, números y caracteres especiales), por lo que inicialmente parece lógico analizar el otro archivo asociado al reto (Reto 2_Mapa.pdf) por si contiene alguna pista que nos permita hacernos con ella.

2.- Para ello, abrimos el archivo Reto 2_Mapa.pdf con un editor hexadecimal y vemos que hay información adicional después del final del archivo.
A simple vista parece que los últimos caracteres, todos ellos letras y en mayúsculas, son un criptograma y que se ha utilizado un método criptográfico clásico para el cifrado del texto en claro, pero: ¿cuál?.

Si nos fijamos en los caracteres anteriores, la cadena "6x6" puede indicar que se ha utilizado una transposición por columnas simple y que la tabla que se ha usado para ello tiene 6 filas y 6 columnas. Por tanto, vamos a disponer los caracteres del criptograma en una tabla de ese tipo completándola por columnas, de arriba a abajo y de izquierda a derecha, de la siguiente manera:
Y ahora intentamos obtener el texto en claro leyendo esa tabla fila a fila, de arriba a abajo y de izquierda a derecha. Pues bien, no se entiende nada y, por tanto, o nos hemos equivocado con el método empleado para el cifrado o bien el sentido de la lectura no es ese, que suele ser el más típico en este tipo de cifrados.

¿Qué puede significar la siguiente palabra, "Inversa", que se encuentran justo detrás de "6x6"?. Podría referirse a escritura inversa, es decir, a otro tipo de transposición que consiste en escribir los caracteres del texto en claro en sentido inverso al habitual, de derecha a izquierda, y, por tanto, que para obtener el texto en claro hay que leerlo desde el final hacia el principio; en nuestro caso el sentido de la lectura sería fila a fila, de abajo a arriba y de derecha a izquierda, es decir:
Cosa de la que también nos podríamos haber dado cuenta a simple vista; obteniéndose el siguiente texto en claro:
"LACONTRASEÑADELARCHIVOZIPESYYOQUESE"

3.- Con la contraseña "YYOQUESE" extraemos los dos archivos que contiene Reto 2_Foto y ubicación.zip.

Foto.jpg:
Ubicación.txt:
4.- Por tanto, la respuesta al reto 2 es "Lerma".

El segundo archivo es para aquellos que no reconozcan el Palacio Ducal de Lerma y/o aquellos que no sepan donde está Lerma. Buscamos la ubicación en Google Maps con las coordenadas que figuran en ese archivo:
Termino esta entrada con un pequeño consejo: este segundo archivo podría, incluso, no ser necesario, porque muchas veces colgamos en Internet fotos u otros contenidos en los que, sin siquiera ser conscientes de ello, dejamos disponible para cualquiera, en forma de metadatosinformación de geolocalización (por ejemplo: las coordenadas podrían haberse encontrado en la foto del reto) y otros muchos datos sensibles para nuestra privacidad (por ejemplo: la fecha y hora en la que se ha sacado la foto del reto). De esa manera estamos compartiendo datos que cualquiera puede utilizar para sus propios fines y, en ocasiones, no precisamente en nuestro beneficio. Por ejemplo: podríamos estar compartiendo con cualquiera dónde vivimos y que en un momento determinado no estamos en casa. Dejo a la imaginación de cada uno el para qué podría ser utilizada dicha información :). Por tanto, tal y como dice mi amigo Pedro en este post de su blog: ¡Ojo al dato con el metadato!, es muy recomendable eliminar ciertos metadatos a la hora de subir algunos contenidos a Internet.

******** PRÓXIMO RETO
Reto 3: "El cumpleaños de mi amigo".

miércoles, 8 de noviembre de 2017

Criptografía (LXVI): Reto 3

En esta ocasión pongo un reto sobre criptografía de dificultad alta.

Como siempre, se admiten soluciones en forma de comentarios a esta entrada. A lo largo de la semana iré proporcionando pistas para su resolución, un máximo de tres, y posteriormente actualizaré este post con la solución.


Reto 3: "El cumpleaños de mi amigo".

El pasado 25 de julio fue el cumpleaños de un amigo mío, y tras felicitarle le pregunté cuantos años cumplía, pregunta a la que no me quiso responder y ante la cual esbozó una sonrisa. Al llegar a casa mi amigo me envió un correo electrónico con el texto asociado al reto. ¿Me puedes ayudar a saber qué edad tiene mi amigo?.

Dificultad: 
Tipo:          Criptografía.

Recursos:  El siguiente texto del mensaje recibido.

"Hola Mikel:

En este correo te doy toda la información necesaria para que averigues mi edad.

Década en la que nací:
PEEIHNÑEFEFAGEFEÑOVEPOVSHXGNWAGINPDSDHQSLGÑSUNHFUYHUHUPJCRDOPHGLDNWMIUREJMRTRYHOVIHNHOCCÑAYIRAUAGIUCLFUETEÑSLKWIHNWIERLPWSIRDMD

Mitad de la década en la que nací (primera o segunda):
8735f04f7d38955fa9a11e6265f11b16

El año en el que nací es:
6AE3".

******** 10/11/2017
Pista 1:     El primer criptograma, compuesto únicamente por caracteres alfabéticos en mayúsculas, parece que se ha obtenido cifrando el texto en claro con algún criptosistema clásico. Descartadas la transposición y la sustitución monoalfabética simple, ¿podría tratarse de algún método de cifrado de sustitución polialfabética con clave periódica como el de Vigenère?.

******** 11/11/2017
Pista 2:     Si has descifrado el primer criptograma sabrás que mi amigo tiene entre 38 y 47 años, y habrás visto el nombre del primer faraón de la dinastía IV del Imperio Antiguo de Egipto, Snefru. ¿Qué relación tiene ese nombre con la criptografía?.

******** 12/11/2017
Pista 3:     Si has obtenido el texto en claro correspondiente al hash sabrás que mi amigo tiene entre 43 y 47 años, y, además, que el último criptograma ha sido cifrado utilizando el algoritmo RSA. Mi amigo también me dice el módulo que se ha empleado para calcular el par de claves, pública y privada, y me da la clave pública con la que se cifró. ¿Es posible "crackear" la clave privada a partir de la información que me da mi amigo y así poder descifrar el criptograma?.

******** 13/11/2017
Solución.

******** PRÓXIMO RETO
Reto 4: "La llave inglesa".