miércoles, 11 de mayo de 2022

Cifrado de sustitución general

El cifrado que estudiaremos hoy engloba a todos los cifrados de sustitución monoalfabéticos que hemos visto hasta ahora: Atbash, César, afín, Polibio, corrimiento de autoclave,... Concretamente, lo que vamos a ver es la forma de descifrar este tipo de mensajes si no conocemos la clave.

¿En qué consiste un cifrado de sustitución monoalfabético? Veamos... Escribo el texto plano (es decir, el mensaje original que quiero cifrar) y sustituyo cada letra por algo, que pueden ser letras, números, dibujos,... Por ejemplo, cambio todas las letras A por una T y todas las letras F por una U. O todas las letras P por un 133 y todas las letras V por un 9. Puedo, incluso, combinar entre todas las alternativas: las letras G se convierten en K, las J son 25 y las S, un conejito. Es importante que la sustitución sea consistente: si, por ejemplo, he sustituido las R por 84, entonces TODAS las R que había en el texto plano han sido sustituidas por 84 y ninguna otra letra distinta ha sido sustituida por 84.

Por ejemplo, en el cifrado Atbash, cambiábamos la A por Z, la B por Y, etc. La sustitución que hacemos puede venir regida por una regla lógica, como es el caso de los cifrados mencionados arriba, o puede ser completamente aleatoria, da lo mismo. Lo importante que debemos tener es una tabla con las sustituciones que hemos hecho (la clave del cifrado).

El problema viene cuando no tenemos esa tabla de equivalencias. Hemos interceptado un texto cifrado y queremos enterarnos de lo que dice, pero no sabemos cómo se ha cifrado (solamente sabemos que ha habido una sustitución como la descrita en el segundo párrafo). Durante años, se pensó que este problema no podía ser resuelto. Pero la necesidad aguzó el ingenio y se encontró un método que revolucionó la criptografía.

Ejemplificaré la explicación de este método mediante la resolución del siguiente criptograma:

21-18-23-21  23-21-16-23-6  21-18  20-6  18-14-9-17-5-17-21-3-23-21-10-21-3-23-21  20-1-15-24-6  22-1-15-1  12-14-21  20-6  22-14-21-13-1-18  15-21-18-6-20-4-21-15  22-6-15  14-3  1-3-1-20-17-18-17-18  13-21  9-15-21-5-14-21-3-5-17-1-18. ¿23-21  1-23-15-21-4-21-18  5-6-3  21-20  5-15-17-22-23-6-24-15-1-10-1  12-14-21  23-21  13-21-8-6  5-6-10-6  21-8-21-15-5-17-5-17-6?

Aquí, cada letra ha sido sustituida por un número. Si nos fijamos bien, veremos que algunos números aparecen muchas veces a lo largo del texto; y, otros, tan apenas. Eso quiere decir que, en el texto plano, habrá algunas letras que se repetirán mucho y otras que menos. Precisamente, en nuestro lenguaje natural ocurre lo mismo y hay ciertas letras que aparecen con mayor frecuencia que otras. Piensa, por ejemplo, que las letras X o W son muy escasas en los textos escritos, pero otras como la E o la S son más habituales. Concretemos algo más y veamos cuáles son esas frecuencias relativas de cada una de las letras del alfabeto castellano (ordenadas de mayor a menor según Wikipedia):

E A O S R N I D L
13.68% 12.53% 8.68% 7.98% 6.87% 6.71% 6.25% 5.86% 4.97%
C T U M P B G V Y
4.68% 4.63% 3.93% 3.15% 2.51% 1.42% 1.01% 0.90% 0.90%
Q H F Z J Ñ X K W
0.88% 0.70% 0.69% 0.52% 0.44% 0.31% 0.22% 0.02% 0.01%

Como puedes ver, las vocales E y A son las letras más frecuentes en nuestro idioma. Voy a dejarte también la misma tabla de frecuencias pero con los porcentajes en el alfabeto inglés (según este otro enlace de Wikipedia), por si alguna vez tienes que resolver algún criptograma en este lenguaje:

E T A O I N S H R
13% 9.1% 8.2% 7.5% 7% 6.7% 6.3% 6.1% 6%
D L C U M W F G Y
4.3% 4% 2.8% 2.8% 2.4% 2.4% 2.2% 2% 2%
P B V K J X Q Z
1.9% 1.5% 0.98% 0.77% 0.15% 0.15% 0.095% 0.074%

De ahora en adelante, nos referiremos a la primera de las tablas, la que es relativa (valga la redundancia) al castellano. Recuperemos nuestro texto cifrado, que se nos ha quedado muy arriba:

21-18-23-21  23-21-16-23-6  21-18  20-6  18-14-9-17-5-17-21-3-23-21-10-21-3-23-21  20-1-15-24-6  22-1-15-1  12-14-21  20-6  22-14-21-13-1-18  15-21-18-6-20-4-21-15  22-6-15  14-3  1-3-1-20-17-18-17-18  13-21  9-15-21-5-14-21-3-5-17-1-18. ¿23-21  1-23-15-21-4-21-18  5-6-3  21-20  5-15-17-22-23-6-24-15-1-10-1  12-14-21  23-21  13-21-8-6  5-6-10-6  21-8-21-15-5-17-5-17-6?

La tabla refleja la frecuencia con la que cada letra aparece en nuestro lenguaje de media. En este texto corto, tal vez no se cumplan exactamente los mismos porcentajes, pero nos pueden dar una idea aproximada. Como primer paso, construyamos una tabla similar de frecuencias con cada uno de los números que aparecen en el criptograma. En total hay 129 "caracteres", que son las letras del mensaje. Por ejemplo, el 21 aparece 24 veces, por lo que su frecuencia relativa es (24/129)*100 = 18.60%. Siguiendo el mismo procedimiento, llegamos a la siguiente tabla:

21 6 1 15 18 23 17 5 20
18.60% 9.30% 7.75% 7.75% 6.98% 6.98% 6.20% 6.20% 4.65%
14 3 22 10 13 9 24 12 4
4.65% 4.65% 3.10% 2.33% 2.33% 1.55% 1.55% 1.55% 1.55%
8 16
1.55% 0.78%

Comparando ambas tablas, parece razonable pensar que el 21 corresponde a la letra E, debido a su gran prevalencia con respecto a las demás:

E-18-23-E  23-E-16-23-6  E-18  20-6  18-14-9-17-5-17-E-3-23-E-10-E-3-23-E  20-1-15-24-6  22-1-15-1  12-14-E  20-6  22-14-E-13-1-18  15-E-18-6-20-4-E-15  22-6-15  14-3  1-3-1-20-17-18-17-18  13-E  9-15-E-5-14-E-3-5-17-1-18. ¿23-E  1-23-15-E-4-E-18  5-6-3  E-20  5-15-17-22-23-6-24-15-1-10-1  12-14-E  23-E  13-E-8-6  5-6-10-6  E-8-E-15-5-17-5-17-6?

La tercera palabra es E-18. Lo más probable es que se trate de EL, EN o ES, aunque todavía no sabríamos decir cuál. Ocurre lo mismo con E-20. Otro ejemplo, las palabras 13-E y 23-E serán DE, LE, ME, SE o TE, probablemente. Para completar nuestro análisis, tendremos que ir alternando entre este estudio más gramatical y el análisis de frecuencias.

Acabamos de ver que el 18 puede ser, con mayor probabilidad, una L, una N o una S. ¿Podría ser una L? Fijémonos en la primera palabra, E-18-23-E. Si fuese una L, sería E-L-23-E, y no habría ninguna letra razonable para completar la palabra. ¿Y si fuese una N? E-N-23-E podría ser ENTE o ENDE, ninguna de las cuales parece muy común para comenzar un texto. Por lo tanto, podemos pensar que el 18 es la letra S y que la palabra es ESTE, por lo que el 23 es la T:

E-S-T-E  T-E-16-T-6  E-S  20-6  S-14-9-17-5-17-E-3-T-E-10-E-3-T-E  20-1-15-24-6  22-1-15-1  12-14-E  20-6  22-14-E-13-1-S  15-E-S-6-20-4-E-15  22-6-15  14-3  1-3-1-20-17-S-17-S  13-E  9-15-E-5-14-E-3-5-17-1-S. ¿T-E  1-T-15-E-4-E-S  5-6-3  E-20  5-15-17-22-T-6-24-15-1-10-1  12-14-E  T-E  13-E-8-6  5-6-10-6  E-8-E-15-5-17-5-17-6?

El segundo número más común, después del 21 (que era la E), es el 6. Mirando la tabla de las letras, podría corresponderse con la A. Probemos con ella:

E-S-T-E  T-E-16-T-A  E-S  20-A  S-14-9-17-5-17-E-3-T-E-10-E-3-T-E  20-1-15-24-A  22-1-15-1  12-14-E  20-A  22-14-E-13-1-S  15-E-S-A-20-4-E-15  22-A-15  14-3  1-3-1-20-17-S-17-S  13-E  9-15-E-5-14-E-3-5-17-1-S. ¿T-E  1-T-15-E-4-E-S  5-A-3  E-20  5-15-17-22-T-A-24-15-1-10-1  12-14-E  T-E  13-E-8-A  5-A-10-A  E-8-E-15-5-17-5-17-A?

Pero para la segunda palabra, T-E-16-T-A, no encontramos ninguna letra para completarla y que tenga sentido junto con el ESTE de delante. Así, es posible que nos hayamos equivocado y que el 6 no fuera la A. Probemos con la siguiente letra de la tabla, la O:

E-S-T-E  T-E-16-T-O  E-S  20-O  S-14-9-17-5-17-E-3-T-E-10-E-3-T-E  20-1-15-24-O  22-1-15-1  12-14-E  20-O  22-14-E-13-1-S  15-E-S-O-20-4-E-15  22-O-15  14-3  1-3-1-20-17-S-17-S  13-E  9-15-E-5-14-E-3-5-17-1-S. ¿T-E  1-T-15-E-4-E-S  5-O-3  E-20  5-15-17-22-T-O-24-15-1-10-1  12-14-E  T-E  13-E-8-O  5-O-10-O  E-8-E-15-5-17-5-17-O?

La segunda palabra misteriosa descubre al fin su identidad: TEXTO, y tenemos que el 16 es la X. Si prestamos un poco de atención, veremos que el número 12 solo aparece dos veces, y ambas en la estructura 12-14-E. La letra típica que funciona de esta manera es la Q, junto con la U, así que tenemos que el 12 es una Q y el 14, una U.

E-S-T-E  T-E-X-T-O  E-S  20-O  S-U-9-17-5-17-E-3-T-E-10-E-3-T-E  20-1-15-24-O  22-1-15-1  Q-U-E  20-O  22-U-E-13-1-S  15-E-S-O-20-4-E-15  22-O-15  U-3  1-3-1-20-17-S-17-S  13-E  9-15-E-5-U-E-3-5-17-1-S. ¿T-E  1-T-15-E-4-E-S  5-O-3  E-20  5-15-17-22-T-O-24-15-1-10-1  Q-U-E  T-E  13-E-8-O  5-O-10-O  E-8-E-15-5-17-5-17-O?

La palabra U-3 nos da una pista sobre la letra que representa el 3, la N.

E-S-T-E  T-E-X-T-O  E-S  20-O  S-U-9-17-5-17-E-N-T-E-10-E-N-T-E  20-1-15-24-O  22-1-15-1  Q-U-E  20-O  22-U-E-13-1-S  15-E-S-O-20-4-E-15  22-O-15  U-N  1-N-1-20-17-S-17-S  13-E  9-15-E-5-U-E-N-5-17-1-S. ¿T-E  1-T-15-E-4-E-S  5-O-N  E-20  5-15-17-22-T-O-24-15-1-10-1  Q-U-E  T-E  13-E-8-O  5-O-10-O  E-8-E-15-5-17-5-17-O?

La palabra E-20, que podía ser EL, EN o ES, ahora solo puede ser EL, puesto que la N y la S ya han sido usadas, por lo que el 20 es la L. Además, la estructura 5-O-N nos indica que el 5 es la C (la S ya está usada, recuerda).

E-S-T-E  T-E-X-T-O  E-S  L-O  S-U-9-17-C-17-E-N-T-E-10-E-N-T-E  L-1-15-24-O  22-1-15-1  Q-U-E  L-O  22-U-E-13-1-S  15-E-S-O-L-4-E-15  22-O-15  U-N  1-N-1-L-17-S-17-S  13-E  9-15-E-C-U-E-N-C-17-1-S. ¿T-E  1-T-15-E-4-E-S  C-O-N  E-L  C-15-17-22-T-O-24-15-1-10-1  Q-U-E  T-E  13-E-8-O  C-O-10-O  E-8-E-15-C-17-C-17-O?

En la primera frase, observamos la palabra 22-U-E-13-1-S. Por acabar en S, el 1 tiene que ser una vocal. Solo nos quedan por utilizar la A y la I y, dado que el 1 abunda en el texto y que la A es más frecuente que la I, suponemos que el 1 es la A.

E-S-T-E  T-E-X-T-O  E-S  L-O  S-U-9-17-C-17-E-N-T-E-10-E-N-T-E  L-A-15-24-O  22-A-15-A  Q-U-E  L-O  22-U-E-13-A-S  15-E-S-O-L-4-E-15  22-O-15  U-N  A-N-A-L-17-S-17-S  13-E  9-15-E-C-U-E-N-C-17-A-S. ¿T-E  A-T-15-E-4-E-S  C-O-N  E-L  C-15-17-22-T-O-24-15-A-10-A  Q-U-E  T-E  13-E-8-O  C-O-10-O  E-8-E-15-C-17-C-17-O?

El mensaje ya casi se adivina, ¿verdad? Por la palabra A-N-A-L-17-S-17-S, deducimos que el 17 es una vocal y, como solo queda una, que es la I.

E-S-T-E  T-E-X-T-O  E-S  L-O  S-U-9-I-C-I-E-N-T-E-10-E-N-T-E  L-A-15-24-O  22-A-15-A  Q-U-E  L-O  22-U-E-13-A-S  15-E-S-O-L-4-E-15  22-O-15  U-N  A-N-A-L-I-S-I-S  13-E  9-15-E-C-U-E-N-C-I-A-S. ¿T-E  A-T-15-E-4-E-S  C-O-N  E-L  C-15-I-22-T-O-24-15-A-10-A  Q-U-E  T-E  13-E-8-O  C-O-10-O  E-8-E-15-C-I-C-I-O?

Resulta ya evidente que la palabra larga de la primera línea es SUFICIENTEMENTE, por lo que el 9 es la F y el 10, la M. La palabra F-15-E-C-U-E-N-C-I-A-S también es claramente FRECUENCIAS, por lo que el 15 es la R.

E-S-T-E  T-E-X-T-O  E-S  L-O  S-U-F-I-C-I-E-N-T-E-M-E-N-T-E  L-A-R-24-O  22-A-R-A  Q-U-E  L-O  22-U-E-13-A-S  R-E-S-O-L-4-E-R  22-O-R  U-N  A-N-A-L-I-S-I-S  13-E  F-R-E-C-U-E-N-C-I-A-S. ¿T-E  A-T-R-E-4-E-S  C-O-N  E-L  C-R-I-22-T-O-24-R-A-M-A  Q-U-E  T-E  13-E-8-O  C-O-M-O  E-8-E-R-C-I-C-I-O?

Solamente nos quedan cinco letras por identificar, ya casi lo tenemos. La palabra C-R-I-22-T-O-24-R-A-M-A tiene que tratarse de CRIPTOGRAMA, y así el 22 es la P y el 24, la G. Y, faltando solo tres letras, está claro que el 13 es la D, el 4 es la V y el 8, la J. Así, el texto plano es:

ESTE TEXTO ES LO SUFICIENTEMENTE LARGO PARA QUE LO PUEDAS RESOLVER POR UN ANALISIS DE FRECUENCIAS. ¿TE ATREVES CON EL CRIPTOGRAMA QUE TE DEJO COMO EJERCICIO?

Este tipo de resoluciones de criptogramas aparecen de vez en cuando en la literatura, como es el caso de Sherlock Holmes y su "Aventura de los bailarines", o "El escarabajo de oro" de Edgar Allan Poe.

Una posible defensa a este método de resolución de criptogramas consiste en obviar los espacios entre las palabras y enviar todas las letras seguidas. Nuestro análisis se basaba en que ciertas palabras eran más probables que otras, pero si no sabemos dónde acaba una y empieza otra, es más complicado. Sin embargo, como se demostró, sigue siendo posible un análisis por frecuencias (más laborioso). ¿Cómo, entonces, podríamos solventar este problema? La respuesta es muy simple, mediante "homófonos". ¿Que qué es eso? Lo veremos más adelante en el blog...

¿Por qué no intentas este otro criptograma? Si lo resuelves y escribes en un papel el alfabeto que he usado para CIFRAR, tal vez te lleves una sorpresa. La solución correcta desbloqueará un trofeo de plata en tu vitrina.

"TESYE LFE JE LFXESV TESYE. TESYE TXEUJV. TESYED SAIAD. EQ ÑASOV DVÑSE QA IAS G EQ OAÑAQQV EU QA IVUJAWA."
REYESXOV MASOXA QVSOA


En el siguiente post, te daré una herramienta en JavaScript para que te sea más sencillo resolver este tipo de criptogramas y con la que podrás sustituir unas letras por otras. ¡Incluso podrás usarla para cifrar tus propios mensajes!


No hay comentarios:

Publicar un comentario