Introducción a la seguridad informática y criptografía clásica

TEMA IV: ALGORITMOS DE CIFRA CLÁSICA


LECCIÓN 8: ALGORITMOS DE CIFRA POR SUSTITUCIÓN MONOALFABÉTICA

Autor: Dr. Jorge Ramió Aguirre.
Fecha de publicación: 21 de septiembre de 2016.
Colaboración diseño Web: D. Jaime Sánchez Pedrós, becario Talentum Startups.

En esta octava lección del MOOC, iniciamos el estudio de los sistemas de cifra por sustitución. Como ya sabes, son los que han tenido un mayor desarrollo en la historia de la criptografía clásica. La lección 8 está dedicada a la cifra monográmica (ciframos letra a letra) y monoalfabética (con un único alfabeto de cifrado) y dejaremos para la lección 9 la cifra monográmica polialfabética. Estudiaremos las operaciones de cifrado, descifrado y criptoanálisis de sistemas de cifra por desplazamiento puro, entre ellos el famoso sistema de cifra del César, sistemas de cifra por decimación pura y sistemas de cifra por multiplicación y adición, más conocida como cifra afín. Vas a comprobar que, además de cifrar y descifrar, la acción de un ataque elegante al criptograma o criptoanálisis basado en la redundancia del lenguaje, será muy sencilla. Comenzamos…

En esta lección vamos a utilizar el software para prácticas de criptografía Criptoclásicos v2.1, desarrollado por D. Juan Contreras Rubio. Por favor, comprueba desde ese enlace de descarga que tienes instalada la última versión, dado que se han hecho algunas actualizaciones.

Temario


APARTADO 1. EL CIFRADO DEL CÉSAR

1.1. El dictador Cayo Julio César y su cifra

Tal vez el algoritmo de cifra clásica más conocido y popular sea el del César, a pesar de que su seguridad dejará mucho que desear como veremos en esta lección.



Figura 1.1. Cayo Julio César.

El primer uso documentado de una cifra monoalfabética por sustitución con propósitos militares aparece en el documento "La guerra de las Galias" de Julio César. En dicho libro, Julio César describe cómo envía un mensaje cifrado a Cicerón, que se encontraba sitiado y a punto de rendirse, aplicando una sustitución simple a las letras del texto en claro de forma que el mensaje fuera ininteligible para el enemigo.

Aunque en aquella ocasión César sustituyó las letras romanas por letras griegas, es común asociarle a su sistema de cifra un desplazamiento de 3 espacios a la derecha en el alfabeto, tal y como lo describe Suetonio en su libro "Vidas de los Césares" en la entrada LVI sobre Cayo Julio César.

De esta manera, el alfabeto de cifrado para las 27 letras en mayúsculas del castellano quedaría como se muestra en la figura.



Figura 1.2. Alfabeto de cifrado del César mod 27.

Así, la famosa frase VENI VIDI VICI, atribuida Julio César también por Suetonio, se cifraría con este método y el alfabeto mostrado en la figura anterior como:

M = VENI VIDI VICI             C = YHPL YLGL YLFL

Vamos a pensar un poco:
¿Cuál es la traducción al castellano de esa frase de Julio César? ¿En qué entornos usamos esta frase y qué queremos decir?

Nos vemos en el laboratorio...
Enunciado:
Cifra con el software Criptoclásicos v2.1 el texto en claro M = Vine, vi, vencí.
Solución
Criptosistemas -> Desplazamiento Puro, copiamos el texto en claro en la caja de texto, elegimos la clave 3 y damos a Cifrar. El resultado es el observado en la figura.


La cifra del César tiene por tanto una representación matemática para letras mayúsculas en castellano del tipo:

C = M + 3 mod 27

En donde M es el código de la letra del texto en claro que se cifra y C el criptograma resultante.

Por lo tanto, de forma genérica diremos que el cifrador del César con un desplazamiento de 3 espacios, es un caso particular de un cifrado de sustitución por desplazamiento puro de la forma:

C = M + b mod n

Donde n es el tamaño del alfabeto y del cuerpo de cifra y b es la constante de desplazamiento. Observa que dicha constante puede tomar valores desde 1 hasta n-1, en tanto un desplazamiento b = 0 o bien b = n significaría enviar el texto en claro.

Si tienes dudas sobre cómo operar dentro de un módulo o cuerpo finito, es el momento oportuno para que repases la lección 5 de este curso Fundamentos de matemáticas discretas para la criptografía.

Nos vemos en el laboratorio...
Enunciado:
Cifra con el software Criptoclásicos v2.1 el texto en claro M = CESAR HA SIDO ASESINADO y comprueba que el criptograma resultante es C = FHVDU KDVLG RDVHV LPDGR.
Solución
Aquí no hay ayuda.

Las operaciones matemáticas de la cifra de las 5 primeras letras del mensaje anterior se muestran a continuación. Continúa y termina tú el ejercicio, comprobando que obtienes el mismo resultado que con el software Criptoclásicos.

C + 3 mod 27 = 2 + 3 mod 27 = 5 = F
E + 3 mod 27 = 4 + 3 mod 27 = 7 = H
S + 3 mod 27 = 19 + 3 mod 27 = 22 = V
A + 3 mod 27 = 0 + 3 mod 27 = 3 = D
R + 3 mod 27 = 18 + 3 mod 27 = 21 = U
...

Vamos a pensar un poco:
Según lo que has visto hasta ahora del algoritmo de cifra del César, ¿por qué se dice que tiene muy poca fortaleza? Si suponemos que el valor b es una clave, ¿cuántas claves diferentes podría tener el algoritmo genérico por sustitución monoalfabética?


1.2. Cifrado del César utilizando una clave

Seguramente habrás contestado de forma correcta a la pregunta del apartado anterior: la cifra del César o por desplazamiento puro tiene una cantidad de claves tan baja que su fortaleza es mínima. En el caso de trabajar en módulo 27, los valores de dicha clave serían sólo 26, esto es, los números 1 al 26, por lo que un simple ataque desplazando sucesivamente las letras del criptograma, bien hacia la izquierda o hacia la derecha, daría con el texto en claro en el peor de los casos en el vigésimo sexto intento. Aunque estemos hablando de criptografía clásica, este valor valor es ridículo.

Para aumentar algo la fortaleza de la cifra, una solución es no usar un desplazamiento constante sino variable y aleatorio entre las letras. En otras palabras, reordenar el alfabeto sin seguir un orden preestablecido ni una lógica, tal y como se muestra en la figura 1.3.



Figura 1.3. Alfabeto de cifrado por desplazamiento sin orden preestablecido.

Como se observa, para cifrar la letra A del texto en claro le aplicamos un desplazamiento de 11 espacios a la derecha (obteniendo la letra L); al cifrar ahora la letra B, ese desplazamiento será de T - B = 20 - 1 = 19 espacios a la derecha; para la cifra de la letra C, el desplazamiento será igual a A - C = 0 - 2 = 25 espacios a la derecha (recuerda que estamos trabajando en módulo 27), etc. Así, todos o una gran mayoría de los desplazamientos serán distintos.

Como es obvio, en este caso habrá muchas más combinaciones posibles de alfabetos de cifrado que la indicada en la figura 1.3. Básicamente, los posibles alfabetos de cifrado serán aquellos que formen todas las posibles combinaciones de letras en dicho alfabeto de 27 elementos, dando lugar el valor conocido como factorial de 27:

Posibles alfabetos: 27! = (27 * 26 * 25 * 24 … 4 * 3 * 2 * 1) = 10.888.869.450.418.352.160.768.000.000

Ejercicio 1.1:
Con este programa online de Solve My Math, comprueba que el factorial de 27 es el número indicado.

Como podemos observar, se trata de un valor inmenso, más de 10 mil cuatrillones, y esto hace que no sea nada recomendable intentar romperlo por fuerza bruta. Descifrar el criptograma con todos esos alfabetos hasta dar con el texto en claro sería incluso una tarea muy pesada para los ordenadores actuales. Todo esto nos hace pensar que podría ser un buen sistema de cifra clásica, pero ya veremos que no será así ni mucho menos.

Vamos a pensar un poco:
Busca en Internet cuántas operaciones por segundo alcanzan los modernos procesadores de los ordenadores personales actuales. Hecho esto, piensa cuánto tardaría tu ordenador en romper una cifra que podría haber utilizado alguno de estos 27! alfabetos diferentes, suponiendo incluso que en una sola instrucción probaría un alfabeto. Ayuda: busca en Wikipedia inglés instructions per second.

El alfabeto de la figura 1.3 es difícil hacerlo llegar al usuario destinatario de la cifra, para que éste pueda descifrar lo que cifremos con él. Habría que enviarle las 27 letras con sus posiciones y eso tiene muy poco sentido en un medio inseguro. Es más interesante obtener un alfabeto de cifrado no secuencial parecido el de la figura 1.3 pero a través de una clave, que será mucho más fácil de memorizar e incluso de trasmitir de manera más cómoda y segura al destinatario del secreto.

Vamos a incluir entonces en el alfabeto de cifrado una clave K, que consista en una palabra, o mejor aún, una frase que se escribe a partir de una posición pK del alfabeto, sin repetir las letras de la misma. Hecho esto, a continuación incluimos en orden las restantes letras que no se han usado en la clave.

Así, por ejemplo, si la clave K = ESTOY ABURRIDO y pK = 3 es la posición en la que ésta se incluye, esto es en la posición de la letra D, el alfabeto de cifra será ahora el que se indica en la figura 1.4.



Figura 1.4. Alfabeto de cifrado por desplazamiento con clave.

Ejercicio 1.2:
Con el alfabeto de cifra por desplazamiento con clave de la figura 1.4, comprueba que la cifra del mensaje M = SI TE ABURRES ES PORQUE QUIERES da como resultado el criptograma C = KALSW XMJJS KSKGF JHMSH MASJS K.

Ejercicio 1.3:
Crea un alfabeto de cifrado por sustitución con clave K = POBRE CHUCHO SIBERIANO, siendo pK = 2 la posición en la que ésta se escribe. A continuación cifra el texto en claro M = A PERRO FLACO TODO SON PULGAS.

En este tipo de cifra se deja de cumplir la condición de desplazamiento constante, que era una característica poco afortunada del sistema del César primario; además la clave es de fácil transmisión al destinatario y el espacio de claves será muy alto. Juega en su contra el hecho de que al no estar representado el alfabeto de cifrado por una ecuación matemática del tipo C = M + b mod n, el cifrado y el descifrado es menos directo y básicamente hay que hacerlo letra a letra, leyendo en una tabla.

A pesar de ello, la seguridad del sistema seguirá siendo muy mala porque la redundancia del lenguaje se manifestará de manera clara en el criptograma, por lo que atacar la cifra será una tarea elemental.


1.3. Descifrado y seguridad de los algoritmos tipo César

Para descifrar una cifra simple del César habrá que aplicar el algoritmo en su modo inverso, en este caso usando un desplazamiento de b espacios ahora hacia la izquierda. Por propiedades de las matemáticas discretas, también será posible descifrar el criptograma desplazando el texto cifrado (n - b) espacios a la derecha.

Si en módulo 27 ciframos el mensaje M = FACIL con una constante de desplazamiento b = 6, obtenemos el criptograma C = LGIÑQ.

Para descifrar, aplicamos un desplazamiento de 6 posiciones a la izquierda a los caracteres LGIÑQ del criptograma, esto es:

L = 11
G = 6
I = 8
Ñ = 14
Q = 17
11 - 6 mod 27 = 5
6 - 6 mod 27 = 0
8 - 6 mod 27 = 2
14 - 6 mod 27 = 8
17 - 6 mod 27 = 11
F
A
C
I
L

Por propiedades de los cuerpos finitos, en módulo 27 a igual resultado se llegará aplicando estas dos ecuaciones de descifrado:

M = C - 6 mod 27

M = C + (27 - 6) mod 27 = C + 21 mod 27

Comprobación. Para la primera letra del criptograma (L = 11) usando la segunda ecuación tenemos 11 + 21 mod 27 = 32 mod 27 = 5 = F. Continúa tú la comprobación con las demás letras del criptograma.

Nos vemos en el laboratorio...
Enunciado:
Descifra con el software Criptoclásicos v2.1 el siguiente criptograma, si se sabe que la clave utilizada ha sido b = 19.
C = NFSUH LSWLL STWKQ HMKSL STWKW FLWGS K.
Solución:
Criptosistemas -> Desplazamiento Puro. Copiamos el criptograma en la caja de texto, elegimos como clave 19 y damos a descifrar, obteniendo:


Comprueba tú mismo este resultado. ¿Cuál es la frase célebre y de quién?

Esta cifra presenta un nivel de seguridad muy débil y su criptoanálisis es muy simple. Bastará con realizar un sencillo y rápido ataque por fuerza bruta, desplazando las letras del criptograma una, dos, tres, etc., posiciones -bien a la izquierda o bien a la derecha- hasta dar con el mensaje en claro. Veamos cómo funciona esto.

Por ejemplo, si tenemos el criptograma C = NGYÑJ URAEL GIÑQX URVKX QU y sabemos que se ha utilizado una cifra del tipo César con un desplazamiento constante, es decir C = M + b mod n, y que el cuerpo de trabajo es 27, pero desconocemos qué valor se ha utilizado en la constante b. Vamos a desplazar el criptograma 1 espacio, 2 espacios, 3 espacios, etc., hacia la izquierda, hasta dar con el texto en claro.

Criptograma Desplazamiento alfabeto hacia la izquierda
NGYÑJ URAEL GIÑQX URVKX QU
NGYÑJ URAEL GIÑQX URVKX QU
NGYÑJ URAEL GIÑQX URVKX QU
NGYÑJ URAEL GIÑQX URVKX QU
NGYÑJ URAEL GIÑQX URVKX QU
NGYÑJ URAEL GIÑQX URVKX QU
MFXNI TQZDK FHNPW TQUJW PT (- 1)
LEWMH SPYCJ EGMOV SPTIV OS (- 2)
KDVLG ROXBI DFLÑU ROSHU ÑR (- 3)
JCUKF QÑWAH CEKNT QÑRGT NQ (- 4)
IBTJE PNVZG BDJMS PNQFS MP (- 5)
HASID OMUYF ACILR OMPER LO (- 6)

Como hemos aplicado 6 desplazamientos hacia la izquierda en el descifrado, la clave buscada era b = 6.

Debemos tener en cuenta que el algoritmo del César se trataba de un sistema de cifra muy sencillo, ingenioso y también apropiado para la época, el siglo I antes de Cristo. Como en aquella época muy poca gente tenía acceso a la cultura y por tanto el número de analfabetos era muy alto, este sistema de cifra pudo utilizarse de forma segura durante siglos.

También pueden utilizarse las estadísticas del lenguaje que se manifiestan en el criptograma. Así, si el texto en claro es lo suficientemente extenso, por ejemplo sobre 100 letras, entonces la letra más frecuente del criptograma debería corresponder a la cifra de la letra E que es la más frecuente del castellano, o bien a la letra A que es la segunda más frecuente. Raras veces habrá que considerar en esta posicion a la letra O, la tercera letra más frecuente del castellano, o la siguiente que es la S. En el próximo ejemplo de laboratorio se ponen de manifiesto los dos primeros casos.

Nos vemos en el laboratorio...
Enunciado:
Criptoanaliza con el software Criptoclásicos v2.1 el criptograma C y comprueba que la letra más frecuente del criptograma se corresponde con la cifra de la letra E del texto en claro.
C = ZRTIG HÑGPI ÑAQCP ÑYYÑG DCFEI RRGHÑ GPCZC ÑIGRA HRMZR CMRGQ RGQRY RWCGM ZVJCN ACHRH CPÑ.
Solución:
En Criptosistemas -> Desplazamiento Puro, copiamos el criptograma C y damos a la opción Criptoanalizar. Pinchamos en la letra más frecuente del criptograma, según las frecuencias observadas en éste, que es la letra R, y vemos que a la derecha de la pantalla aparece en "Relación 1" la letra R. A continuación pinchamos en la letra más frecuente del alfabeto castellano, que es la E, y vemos que aparece ahora dicha letra E al lado derecho de la pantalla en "Relación 1", indicándonos además que el desplazamiento puede ser b = 14. Supondiendo que este es el valor de b, el programa nos muestra los primeros 50 caracteres descifrados. Como vemos que se trata de un texto con sentido, le indicamos que descifre todo el texto y obtenemos lo que se muestra en la siguiente pantalla. Realiza esta práctica y comprueba todo lo dicho.



El texto en claro es parte de un poema de Pablo Neruda:
Me gustas cuando callas porque estás como ausente,
y me oyes desde lejos, y mi voz no te toca.

Enunciado:
Vamos a repetir este ataque pero en este caso la letra más frecuente del criptograma se corresponderá con la letra A del alfabeto y no la E. El criptograma a criptoanalizar será:
C = YJYLB YPQCF YACCJ AYKGL NWYJT NJTCP JYTGQ RYYRP YQQCT CJYQC LBYOS CLSLA YQCFY BCTNJ TCPYÑ GQYP.
Solución:
Procediendo de la misma manera, en este caso se obtiene que la clave es b = 25. Realiza esta segunda práctica y comprueba nuevamente todo lo dicho.


Y el texto en claro ahora es parte de un poema de Antonio Machado:
Al andar se hace el camino,
y al volver la vista atrás
se ve la senda que nunca
se ha de volver a pisar.

Sin embargo, el ataque a los sistemas con alfabeto de cifrado con una clave, o de alfabetos de cifrado no secuenciales, será algo más complejo su criptoanálisis. Habrá que hacer nuevamente uso de las estadísticas del lenguaje, pero en este caso tendremos que aplicar el procedimiento letra a letra (y no a todo el texto), al igual que lo hecho en la práctica anterior, e ir conformando de a poco el supuesto texto en claro. Dado que el lenguaje es muy redundante, si somos capaces de encontrar una relación directa entre las 5 o 6 letras más frecuentes del lenguaje con su letra cifrada, se irá asomando paulatinamente el texto en claro del mensaje.

Ejercicio 1.4:
Para comprobar lo anterior, lee el libro El escarabajo de oro de Edgar Allan Poe (una lectura amena y muy recomenda, y si compras el libro mucho mejor) y observa cómo se aplica el criptoanálisis cuando estamos frente a una sustitución monográmica y monoalfabética, en este caso con un alfabeto de cifrado no secuencial, como lo que se comentaba en el párrafo anterior.

Vamos a pensar un poco:
Con lo aprendido en este apartado, si alguien se enfrenta a un criptograma que sospecha procede de una cifra del tipo César, ¿qué es lo primero que le recomendarías que haga, aplicar estadísticas del lenguaje o fuerza bruta? ¿Lo harías en todo el mensaje o sólo en una parte de él?

Para terminar este apartado, te recomiendo repases todos los aspectos de la cifra tipo César, visualizando la píldora formativa Thoth 16: ¿Qué es la cifra del César? de la figura 1.5.


Figura 1.5. Píldora formativa Thot 16: ¿Qué es la cifra del César?


APARTADO 2. OTROS ALGORITMOS POR SUSTITUCIÓN MONOALFABÉTICA

2.1. Cifradores por sustitución genéricos

Se conocen como cifradores por sustitución genéricos a aquellos sistemas de cifra clásica monográmica y monoalfabética que obtienen el alfabeto de cifrado a partir de una ecuación de la forma:

C = a * M + b mod n

En donde a es una constante de multiplicación, b es una constante de desplazamiento y n es el cuerpo de cifra.

En inglés la operación criptográfica consistente en multiplicar el código numérico de una letra por una constante se denomina decimation, cuyo significado es el de aniquilación selectiva o acción de diezmar. Como no existe en castellano una palabra simple que refleje lo mismo, resulta común que a esta operación se le llame decimación, aunque es menester indicar que dicha palabra no está recogida en el diccionario de la Real Academia RAE.

Según la ecuación de cifra antes definida, pueden darse tres casos dependiendo de los valores que tomen las constantes a y b:

a) Si constante de decimación a es igual a 1, la cifra se conoce como Cifrado por Desplazamiento Puro.
La ecuación de cifra será: C = M + b mod n

b) Si la constante de desplazamiento b es igual a 0, la cifra se conoce como Cifrado por Decimación Pura.
La ecuación de cifra será: C = a * M mod n

c) Si a ≠ 1 y b ≠ 0, la cifra se conoce como Adición y multiplicación, o más comúnmente Cifrado Afín.
La ecuación de cifra será: C = a * M + b mod n

Vamos a pensar un poco:
En los cifradores por desplazamiento puro en inglés con letras en mayúsculas, es decir trabajando en módulo 26, si b = 13 ¿qué sucede si se cifra dos veces? ¿Se recupera el texto en claro? Estos sistemas se llaman ROT 13 y han sido ampliamente utilizados en foros en la red. Busca en Internet por ROT 13.

Lógicamente en las tres ecuaciones el valor de la constante de decimación a nunca podrá ser igual a cero. ¿Por qué?


2.1.1. Cifrado por desplazamiento puro

Este apartado ya lo hemos estudiado en el capítulo anterior, aprovechando la cifra del César. Por ello, no se repetirá aquí.


2.1.2. Cifrado por decimación pura

En la figura 2.1, se muestra en color rojo un alfabeto de cifra en módulo 27 con una decimación a = 2, es decir C = 2 * M mod 27.



Figura 2.1. Alfabeto de cifrado módulo 27 con decimación a = 2.

Observa que las letras se distribuyen ahora en saltos de dos espacios debido a la multiplicación del código de cada letra por 2 en formato módulo 27. Si el valor de la constante a fuese por ejemplo 5, esos saltos irían entonces de 5 en 5, siempre comenzando por la letra A ya que al tener ésta el código 0, el resultado de a * A será siempre 0.

Vamos a pensar un poco:
De acuerdo a lo comentado en el párrafo anterior, en donde has visto que las letras van desapareciendo de sus celdas originales para aparecer en otras celdas seleccionadas por la multiplicación, tal vez le encuentres ahora algo más de sentido a la palabra inglesa decimation (aniquilación, acción de diezmar) usada para representar esta acción sobre el alfabeto en claro.

Nos vemos en el laboratorio...
Enunciado:
Cifra con el software Criptoclásicos v2.1 por decimación pura el siguiente texto en claro si la constante de decimación es a = 2.
M = Todavía recuerdo aquel amanecer en que mi padre me llevó por primera vez a visitar el Cementerio de los Libros Olvidados.
Solución:
Criptosistemas -> Decimación Pura. Copiamos el texto en claro en la caja de texto, elegimos como clave 2 y damos a Cifrar, obteniendo:


Haz la práctica y comprueba el resultado. ¿A qué libro corresponde esa frase?

Ejercicio 2.1:
Usando el alfabeto de cifra de la figura 2.1, comprueba la primera palabra cifrada en la práctica anterior: TODAVIA.

Observa que en la práctica anterior el software Criptoclásicos sólo ha permitido introducir algunos valores para la constante a en el cuerpo de cifra o módulo 27. En el siguiente apartado vamos a explicar el porqué.


2.1.3. Cifrado afín

Si ahora añadimos un desplazamiento b = 4 al alfabeto de la figura 2.1, nos quedará el alfabeto de cifrado final mostrado en color azul y que se corresponde con la cifra: C = 2 * M + 4 mod 27.



Figura 2.2. Alfabeto de cifrado módulo 27 con decimación a = 2 y desplazamiento b = 4.

Este cifrado, en el que se modifica el texto en claro multiplicando por una constante a el código de cada letra y desplazando posteriormente ese resulta b letras hacia la derecha, se conoce como cifra afín.

Nos vemos en el laboratorio...
Enunciado:
Cifra con el software Criptoclásicos v2.1 de forma afín el texto en claro que se indica, si la constante de decimación a = 2 y la constante de desplazamiento b = 4.
M = A Dios pongo por testigo que jamás volveré a pasar hambre.
Solución:
Criptosistemas -> Adición y multiplicación. Copiamos el texto en claro en la caja de texto, elegimos como claves a = 2 y b = 4, damos a Cifrar y obtenemos:


Haz nuevamente la práctica y comprueba el resultado. ¿De qué película hablamos?

Ejercicio 2.2:
Usando ahora el alfabeto de cifra de la figura 2.2, comprueba la cifra de la última palabra del texto en claro: HAMBRE.


2.2. Condiciones para la cifra por decimación pura y la cifra afín

Recordemos que en estos dos cifrados existe una multiplicación al código numérico de las letras del alfabeto y, por lo tanto , si de esas ecuaciones derivamos las de descifrado, tendremos:

Cifra por decimación pura Cifra afín
Cifrado: C = a * M mod n Cifrado: C = a * M + b mod n
Descifrado: M = C * a-1 mod n Descifrado: M = (C – b) * a-1 mod n

Por lo tanto, deberá cumplirse en estos dos casos que mcd (a, n) = 1 para asegurar la existencia de ese inverso a-1 o, lo que es lo mismo, el inv (a, n) tal y como hemos visto en la lección 5 de este curso. Si tienes dudas, te recomiendo vuelvas a estudiar la lección Fundamentos de matemáticas discretas para la criptografía, para repasar estos conceptos.

Así, en módulo 27 serán válidas estas dos ecuaciones de cifra:

Decimación pura: C = 4 * M mod 27
Afín: C = 11 * M - 3 mod 27

Porque los inversos de 4 y 11 en mod 27 existen. De hecho, el inv (4, 27) = 7 y el inv (11, 27) = 5.

Sin embargo, en dicho cuerpo 27, no serán válidas ahora las cifras:

Decimación pura: C = 6 * M mod 27
Afín: C = 21 * M - 3 mod 27

En tanto que ahora no existen los inversos de 6 y 21 en módulo 27, pues mcd (6, 27) = 3 y mcd (21, 27) = 3. Es decir, se podría cifrar el texto en claro, pero no habría forma matemática de descifrarlo.

Ejercicio 2.3:
Si inv (11, 27) = 5, ¿cuál será el resultado de inv (5, 27)? ¿Por qué no existe solución a inv (6, 27)? Nota: contestar a esto último diciendo que es debido a que mcd (6, 27) ≠ 1 es una respuesta correcta, pero hay que decir algo más, ir más allá. Si no encuentras una respuesta adecuada, vuelve a estudiar a la Lección 5 antes comentada.

Para comprobar el uso de los inversos en el descifrado haremos el siguiente ejercicio. Vamos a cifrar el mensaje MAIZ con el cifrador por decimación pura C = 4 * M mod 27.

Texto Cifrado por decimación pura Criptograma
M = 12
A = 0
I = 8
Z = 26
12 * 4 mod 27 = 48 mod 27 = 21
0 * 4 mod 27 = 0 mod 27 = 0
8 * 4 mod 27 = 32 mod 27 = 5
26 * 4 mod 27 = 104 mod 27 = 23
U
A
F
W

Para descifrar, aplicaremos la ecuación M = C * a-1 mod 27, es decir M = C * 7 mod 27, en tanto inv (4, 27) = 7; es decir:

Criptograma Descifrado por decimación pura Texto
U = 21
A = 0
F = 5
W = 23
21 * 7 mod 27 = 147 mod 27 = 12
0 * 7 mod 27 = 0 mod 27 = 0
5 * 7 mod 27 = 35 mod 27 = 8
23 * 7 mod 27 = 161 mod 27 = 26
M
A
I
Z


2.3. Profundizando en la cifra afín

Si ciframos el mensaje HOLA con la cifra afín C = 11 * M - 3 mod 27, se obtiene el criptograma TAKX. A continuación se muestra cómo se obtiene matemáticamente esa cifra y cómo se descifra.

Texto Cifrado afín Criptograma
H = 7
O = 15
L = 11
A = 0
7 * 11 - 3 mod 27 = 74 mod 27 = 20
15 * 11 - 3 mod 27 = 162 mod 27 = 0
11 * 11 - 3 mod 27 = 118 mod 27 = 10
0 * 11 - 3 mod 27 = -3 mod 27 = 24
T
A
K
X

Para descifrar, aplicaremos la ecuación M = (C - b) * a-1 mod 27, es decir M = [C - (-3)] * 5 mod 27, en tanto inv (11, 27) = 5; es decir:

Criptograma Descifrado afín Texto
T = 20
A = 0
K = 10
X = 24
[20 - (-3)] * 5 = 115 mod 27 = 7
[0 - (-3)] * 5 = 15 mod 27 = 15
[10 - (-3)] * 5 = 65 mod 27 = 11
[24 - (-3)] * 5 = 135 mod 27 = 0
H
O
L
A

Como se observa, las operaciones de cifrado y descifrado son muy simples y, además, pueden realizarse con cualquier calculadora que tenga incluida la tecla mod, como por ejemplo la calculadora científica de Windows.

Nos vemos en el laboratorio...
Enunciado:
Con el software Criptoclásicos v2.1 en módulo 27, cifra el siguiente mensaje M, usando para ello el máximo valor posible de las constantes a de decimación y b de desplazamiento.
M = Tócala otra vez, Sam.
Solución:
En módulo 27 los valores máximos de esas constantes serán a = 26 y b = 26. Por lo tanto, vamos a Criptosistemas -> Adición y multiplicación, copiamos el texto en claro en la caja de texto, elegimos las claves a = 26 y b = 26, damos a Cifrar y el resultado es el de la figura.


Comprueba tú mismo esta cifra. ¿De qué película se supone que es esta frase?

Vamos ahora a descifrar el criptograma, usando ese software.

Nos vemos en el laboratorio...
Enunciado:
Con el software Criptoclásicos v2.1 descifra el anterior criptograma C = GLXZO ZLGIZ EVAHZ Ñ. Hecho esto, mira el informe que te entrega la aplicación.
Solución:
En Criptosistemas -> Adición y multiplicación, copiamos el criptograma en la caja de texto, elegimos las clave a = 26 y b = 26, damos a Descifrar y el resultado es el de la figura.



Comprueba tú mismo el descifrado.

Observa que en este caso inv (26, 27) = 26. Aunque pueda parecerte extraño, esto es posible. De hecho, se cumplirá siempre que inv [(n - 1), n] = n - 1.


2.4. Espacio de claves y fortaleza

En la cifra por desplazamiento puro C = M + b mod n, la única clave que podemos manejar son los valores de b, válidos en módulo 27, es decir, desde b = 1 hasta b = 26, puesto que los valores 0 y 27 significan un desplazamiento nulo y por tanto el envío del mensaje sería en claro. En este caso tenemos 26 valores distintos para esa clave.

Para la cifra por decimación pura C = a * M mod n en módulo 27, sólo serán válidos para la constante a los valores 2, 4, 5, 7, 8, 10, 11, 13, 14, 16, 17, 19, 20, 22, 23, 25, 26. Es decir, ahora solamente son válidos 17 valores pues todos aquellos que tengan como factor el número 3 (3, 6, 9, 12, 15, 18, 21 y 24) no podrán usarse porque no tienen inverso dado que 27 = 3 * 3 * 3. Lógicamente tampoco son válidos aquí los valores 0 y 1, dado que el 0 destruye el mensaje y el 1 lo envía en claro, no se cifra. Por lo tanto, en este caso el número de claves posible se reduce a 17.

Para la cifra afín C = a * M + b mod 27, en donde ahora la constante de decimación a sí puede adoptar el valor 1, podremos formar hasta 26 * 18 = 468 alfabetos diferentes, un valor bastante más alto que los 26 y 17 alfabetos de cifra posibles de los anteriores sistemas. No obstante, también será un valor extremadamente pequeño en criptografía. Esto permitiría realizar con muy pocos recursos un ataque por fuerza bruta, probando en combinatoria todos y cada uno de los valores de las claves a y b. Sin embargo, no es necesario llegar a esta situación para romper la cifra, ya que será mucho más entretenido y elegante romperla mediante el uso de las estadísticas del lenguaje, como se hará en el siguiente apartado.

Vamos a pensar un poco:
En los cifradores por desplazamiento puro con clave, habíamos encontrado que el espacio de todos los posibles alfabetos era un número inmenso, diez mil cuatrillones. ¿Por qué en los cifradores tipo afín nos sale un valor tan bajo? ¿Son entonces estos últimos peores que los primeros?

Si te has quedado con dudas ante la pregunta que acabas de leer, te lo explicamos ahora. El interés que pueda suscitar un sistema de cifra que sea posible representar mediante una ecuación matemática simple, radica en que facilita las operaciones de cifrado y descifrado. Tiene no obstante, por contrapartida, el inconveniente de que el espacio de claves es muy bajo, posibilitando con ello un ataque por fuerza bruta y poco esfuerzo. Además, facilitará el criptoanálisis como se verá en el apartado siguiente.

Al igual que se hacía con el sistema del César, podemos aumentar la fortaleza del sistema de cifra incluyendo una clave. En este caso, generamos primero un alfabeto de cifra mediante la función de sustitución genérica C = a * M + b mod n. Hecho esto, nos damos una clave que preferentemente contenga más de dos palabras, como por ejemplo DAME UN BESO CARIÑO, y la escribimos en el alfabeto de cifrado a partir de una posición pK, sin repetir las letras ya utilizadas. Finalmente, incluimos en orden las letras que nos quedan sin usar del alfabeto de cifrado. Por ejemplo, si la función de sustitución es C = 7 * M + 2 mod 27, se obtiene el siguiente alfabeto de cifrado:



Figura 2.3. Alfabeto de cifrado C = 7 * M + 2 mod 27.

Escribimos ahora una clave, por ejemplo K = DAME UN BESO CARIÑO a partir de una posición, en este caso pK = 10, obteniendo:



Figura 2.4. Agregando la clave K en la posición 10.

Y ahora desde la posición 23 donde hemos terminado de escribir nuestra clave K, incluimos las letras del alfabeto de cifrado que no han sido utilizadas, comenzando por la izquierda, esto es, JPWKQXLYFZGTHV. Observa que la primera letra C no aparece porque ya está contenida en la clave K. El alfabeto de cifrado final será el de la figura 2.5.



Figura 2.5. Alfabeto de cifrado con a = 7, b = 2 y clave DAME UN BESO CARIÑO en posición 10.

Como resulta obvio, en tanto existirán infinidad de claves K diferentes y además 27 posiciones donde incluirlas, el espacio de claves será muchísimo más grande, aunque sin llegar a ese valor inmenso del factorial de 27.

Vamos a pensar un poco:
¿Por qué podemos afirmar categóricamente que incluyendo una clave nunca se llegará a tener un número igual a factorial de 27 en alfabetos de cifrado?

En realidad, generar el alfabeto de cifrado mediante este último método es mucho trabajo para el escaso beneficio que nos entrega. Si la clave es lo suficientemente larga, por ejemplo 4 o más palabras, se logra un alfabeto de cifrado lo suficientemente aleatorio a partir del alfabeto original, sin necesidad de aplicar ninguna ecuación.

En el siguiente apartado veremos el criptoanálisis de estos sistemas de cifra genéricos por sustitución y podremos comprobar que la inclusión de esta clave pone las cosas algo más difíciles al criptoanalista, aunque no lo suficiente por lo que el sistema seguirá teniendo muy poca fortaleza.

Antes de seguir con el siguiente apartado, te recomiendo repasar este tema viendo la píldora formativa Thoth 17: ¿Qué es la cifra afín? de la figura 2.6.


Figura 2.6. Píldora formativa Thot 17 ¿Qué es la cifra afín?


APARTADO 3. CRIPTOANÁLISIS DE LOS ALGORITMOS POR SUSTITUCIÓN MONOALFABÉTICA

3.1. Ataques por fuerza bruta

Existen dos opciones para atacar un criptograma y romper su secreto. La primera de ellas, que no tiene ningún valor criptográfico y además es muy poco elegante, se conoce como fuerza bruta y se trata, simplemente, de descifrar el criptograma con todas las claves posibles hasta dar con un mensaje que tenga sentido. Obviamente una de ellas será la clave correcta. La segunda, que es más elegante y se conoce como criptoanálisis, trata de buscar deficiencias en el algoritmo de cifra, aplicar el análisis de frecuencia de los caracteres en el criptograma o buscar cualquier debilidad en el sistema, de forma que el trabajo del atacante sea menos costoso que aplicar la fuerza bruta.

Ante un criptograma que se sabe ha sido obtenido con alguno de los cifradores por sustitución genéricos monoalfabéticos y monográmicos, como los de decimación pura, de desplazamiento puro o el afín, será muy fácil obtener el alfabeto de cifrado y con él poder descifrar el criptograma realizando un ataque por fuerza bruta, es decir, probando cada una de las posibles combinaciones de los valores válidos para a y b. Como ya se ha dicho, se trata de un ataque nada elegante pero que en este caso resulta adecuado ya que en el peor de los casos en módulo 27 se requerirán tan sólo 468 intentos.

Vamos a pensar un poco:
Si los valores de a y b son aleatorios y todos son igual de probables, ¿cuántos intentos en media habría que hacer en el caso de la cifra afín hasta dar con el alfabeto de cifrado: 120, 230, 340?

No obstante, como ya se ha visto en un apartado anterior, si se incluye una clave en cualquiera de estos tres algoritmos de cifra, el número de alfabetos de cifrado crece espectacularmente hasta llegar a valores inmensos de casi 30 cifras, por lo que ahora no resulta nada aconsejable intentar un ataque por fuerza bruta. A pesar de ello, estos sistemas sucumbirán fácilmente a un ataque por análisis de frecuencia de las letras del criptograma, debido a la redundancia del lenguaje.


3.2. Atacando con elegancia: técnicas de criptoanálisis

Independientemente del tipo de cifra clásica que se trate, la primera acción que realizará ante un criptograma cualquier criptógrafo que se precie, será observar y apuntar la frecuencia con la que aparecen los caracteres en el mismo. En los sistemas de cifra más básicos, como los que hemos visto hasta ahora, esto le puede entregar muchas pistas al atacante para romper el secreto.

Si la distribución de frecuencias de las letras en el criptograma se asemeja a la distribución característica de un texto claro en nuestro lenguaje, algo que ya hemos visto en anteriores lecciones, entonces es muy probable que la cifra a la que nos enfrentemos sea por sustitución monoalfabética. Si éste fuera el caso, solamente nos queda asociar dichas frecuencias del criptograma con las que se obtienen con un texto en claro de algunas centenas de palabras para ir encontrando las nuevas posiciones que ocupan las letras en el alfabeto.

Vamos a pensar un poco:
¿Qué quiere decir que la distribución de frecuencias de las letras en el criptograma se asemeje a la distribución característica de un texto claro en nuestro lenguaje?

Dado que las 4 letras más frecuentes del lenguaje en castellano con 27 elementos, esto es la letra E (13,7%), la letra A (12,5%), la letra O (8,7%) y la letra S (8,0%), representan el 43% de ese alfabeto, su conocimiento y seguimiento del efecto que provocan en el criptograma darán muy buenas pistas al criptoanalista.

Si el sistema posee una clave y, por lo tanto, no hay una ecuación simple que represente al alfabeto de cifrado, habrá que ir asociando cada una de las letras del criptograma con una posible letra del texto en claro de acuerdo a sus frecuencias, y con ello ir reconstruyendo el mensaje como si se tratase de un crucigrama. Recuerda lo que has leído en el libro El escarabajo de Oro de Edgar Allan Poe, que hemos recomendado en esta lección.

Vamos a pensar un poco:
En este último caso de no existir una ecuación matemática que relacione el alfabeto en claro con el alfabeto de cifrado, ¿será necesario encontrar las 27 correspondencias entre letras del criptograma y letras de texto en claro, o bastará contar con menos correspondencias? ¿Te ayudaría en algo aquí la redundancia del lenguaje?

Sin embargo, si se trata de una cifra genérica con una expresión matemática simple, que relacione el alfabeto en claro con el alfabeto de cifrado, como en las cifras por decimación pura, por desplazamiento puro y afín que ya hemos visto, obtendremos inmediatamente todo el alfabeto de cifrado tras resolver una ecuación con una incógnita en la cifras por decimación pura y por desplazamiento puro, en tanto hay una única incógnita en cada caso, o bien un sistema de dos ecuaciones independientes con dos incógnitas en el caso de la cifra afín, las constantes de decimación a y de desplazamiento b.


3.3. Criptoanálisis de los sistemas de cifra genéricos por sustitución

3.3.1. Criptoanálisis del cifrado por desplazamiento puro

Si la cifra es por desplazamiento puro, buscaremos la letra más frecuente del criptograma y la asociaremos -en primera instancia- a la letra E, que es la más frecuente de nuesto alfabeto. Si la elección ha sido la correcta, esto nos indicará inmediantamete el desplazamiento empleado pues sabemos que la letra E tiene el código 4, al que sumado el desplazamiento b nos debe dar el código de esa letra más frecuente en el criptograma.

Supongamos entonces que en el criptograma la letra más frecuente es la T (código 20). En este caso tendremos:

T = E + b mod 27
20 = 4 + b mod 27

Despejando el valor de b, tenemos:

b = 20 – 4 mod 27 = 16

Observa que podremos descifrar restando 16 al valor de la letra del criptograma o, más cómodo aún y para evitar trabajar con números negativos, sumarle (27 - 16) = 11 dentro del módulo 27.

Comprobación:

20 - 16 mod 27 = 4 = E
20 + 11 = 31 mod 27 = 4 = E

Para mostrar cómo se usan las estadísticas del lenguaje en el criptoanálisis, vamos a cifrar en módulo 27 con desplazamiento b = 9, el texto de 95 caracteres M = ESTE TEXTO EN CLARO PODRÍA SER UN CLARO EJEMPLO DE LA DISTRIBUCION DE FRECUENCIA DE LAS LETRAS EN NUESTRO LENGUAJE, obteniendo el criptograma C = NBCNC NGCXN VLTJA XYXMA QJBNA DVLTJ AXNRN UYTXM NTJMQ BCAQK DLQXV MNÑAN LDNVL QJMNT JBTNC AJBNV VDNBC AXTNV ODJRN.

En este caso, las seis letras más frecuentes del criptograma son:

La letra N con un 17,89%
La letra J con un 8,42 %
La letra A con un 8,42 %
La letra V con un 7,37 %
La letra T con un 7,37 %
La letra X con un 7,37 %

Por lo tanto, como el texto es lo suficientemente grande, casi 100 letras en un cuerpo cifra de 27 elementos, es muy posible que la N sea el resultado de cifrar la letra E, por lo tanto vamos a suponer que:

N = E + b mod 27
13 = 4 + b mod 27
Despejando b obtenemos: b = 13 - 4 mod 27 = 9
Que fue el valor b utilizado en la cifra

Como sabemos que b = 9, podemos conocer a qué letras del texto en claro corresponden las restantes 5 letras más frecuentes del criptograma: J, A, V, T y X.

J - 9 mod 27 = 9 - 9 mod 27 = 0 = A
A - 9 mod 27 = 0 - 9 mod 27 = 18 = R
V - 9 mod 27 = 22 - 9 mod 27 = 13 = N
T - 9 mod 27 = 20 - 9 mod 27 = 11 = L
X - 9 mod 27 = 24 - 9 mod 27 = 15 = O
A igual resultado se llega con M = C + (27 - 9) = C + 18 mod 27

Que coincide bastante bien con ese principio que dice que con las 9 letras más frecuentes del alfabeto castellano, podemos formar la palabra ESTIRANDO. No se cumple esto al 100% porque aquí el texto en claro era muy pequeño, sólo 95 caracteres. De hecho, es tan sólo 3 veces el tamaño del alfabeto. Así y todo las estadísticas funcionan; esto se debe a la alta redundancia del lenguaje.

Nos vemos en el laboratorio...
Enunciado:
Con el software Criptoclásicos v2.1 comprueba que en el criptograma obtenido en la cifra anterior las frecuencias de las letras son las que se indican.
C = NBCNC NGCXN VLTJA XYXMA QJBNA DVLTJ AXNRN UYTXM NTJMQ BCAQK DLQXV MNÑAN LDNVL QJMNT JBTNC AJBNV VDNBC AXTNV ODJRN.
Solución:
Herramientas -> Estadísticas del lenguaje -> Cálculo de monogramas. Copiamos el criptograma en la caja de texto, elegimos Español Z27 como Alfabeto utilizado y damos a Calcular, obteniendo el resultado que se muestra en la figura.


Compruébalo tú mismo.

Vamos a criptoanalizar ahora una cifra por sustitución con desplazamiento puro, haciendo uso de las estadísticas del lenguaje.

Nos vemos en el laboratorio...
Enunciado:
Con el software Criptoclásicos v2.1 criptoanaliza el criptograma C que se indica y que se sabe ha sido cifrado con sustitución por desplazamiento puro.
C = OVWFX ÑZOCL ELXCO NSOXE OBFOW FNRLD NZDLD NLCON SLXÑO XZWMC OJALC LWOXN SZXLC VLDRL MSLBF ODOYL VLCVL DNZXO VÑOÑZ.
Solución:
Criptosistemas -> Desplazamiento Puro. Copiamos el criptograma en la caja de texto y damos a Criptoanalizar, obteniendo el siguiente resultado. Para el criptoanálisis, se hace corresponder primero la letra L del criptograma con la letra E del alfabeto (la más frecuente) y no se obtiene el resultado esperado. Se limpan los datos y se hace corresponder ahora la letra L del criptograma con la letra A del alfabeto (la segunda más frecuente) y obtenemos el resultado esperado. El desplazamiento empleado en la cifra ha sido b = 11.



Haz esta práctica y comprueba que el resultado es M = El mundo era tan reciente, que muchas cosas carecían de nombre, y para mencionarlas había que señalarlas con el dedo. ¿De qué libro es esta frase?


3.3.2. Criptoanálisis del cifrado por decimación pura

Si la cifra es por decimación pura, nuevamente buscaremos la letra más frecuente del criptograma y la asociaremos en primera instancia a la letra E, que es la más frecuente de nuestro alfabeto.

Supongamos, otra vez, que en un criptograma la letra más frecuente es la T (código 20) y que ello es el resultado de haber cifrado la letra E (código 4), la más frecuente del alfabeto. Entonces:

T = a * E mod 27
20 = a * 4 mod 27

Despejando el valor de a, tenemos:

a = 20 * inv (4, 27) 27 = 20 * 7 = 140 mod 27 = 5
a = 5    Y por lo tanto:   a-1 = inv (5, 27) = 11

Comprobación:

Cifrado: a * E mod 27 = 5 * 4 = 20 mod 27 = 20 = T
Descifrado: T * a-1 mod 27 = 20 * 11 = 220 mod 27 = 4 = E.

Vamos descifrando entonces el criptograma con esta última ecuación y si obtenemos un texto en claro con sentido, habremos encontrado la clave, en este caso la constante de decimación a. Esto último porque puede darse el caso de que el criptoanálisis entregue como resultado un falso positivo; esto es, un valor de a válido pero que no es el utilizado en la cifra. Si no se obtiene un texto con sentido, probaremos asignando nuevamente a la letra E la segunda letra más frecuente del criptograma u otra, hasta dar con la solución. No obstante, dada la alta redundancia que presenta el lenguaje, normalmente acertaremos en el primer intento o en el peor de los casos en el segundo o tercero. No irá más allá.

Vamos a pensar un poco:
¿Podremos usar en este criptoanálisis de cifra por decimación los datos relacionados con la letra A? ¿Por qué sí o por qué no?

Nos vemos en el laboratorio...
Enunciado:
Con el software Criptoclásicos v2.1 criptoanaliza el criptograma C si se sabe ha sido cifrado con decimación pura.
C = CWKAE WSACW XTAOC SAWGA WWETD XSAJC WWCBU GIUTC XTEBA GCTKC OCAJC TAOCG AJZKE CTCIU BUGAW UGCTU WKJCW GESSA WOCSA JDU.
Solución:
Criptosistemas -> Decimación pura. Copiamos el criptograma en la caja de texto y damos a Criptoanalizar, obteniendo el siguiente resultado. Para el criptoanálisis, se hace corresponder la letra C del criptograma con la letra E del alfabeto (la más frecuente) y se obtiene el resultado esperado. La multiplicación empleada en la cifra ha sido a = 14.



Comprueba estos resultados y que el texto en claro era M = Esta isla es una de las más singulares. Se compone únicamente de arena de mar, y tiene, poco más o menos, tres millas de largo. ¿De qué libro hablamos?

Ejercicio 3.1:
Usando la calculadora de Windows, descifra los 5 primeros caracteres del criptograma CWKAE, sabiendo que C = 2, W = 23, K = 10, A = 0, E = 4 y que en la cifra se ha utilizado a = 14. ¿Por qué número deberás multiplicar cada letra del criptograma para descifrarlo?


3.3.3. Criptoanálisis del cifrado afín

En una cifra afín habrá dos variables, la constante de decimación a y la constante de desplazamiento b. Por lo tanto, en este caso vamos a plantear un sistema de dos ecuaciones independientes con dos incógnitas, asignando (en primera instancia) la letra más frecuente del criptograma a la letra E del texto en claro, y la segunda letra más frecuente del criptograma a la letra A; esto es, a las dos letras más frecuentes de nuestro alfabeto.

Si el ataque no prospera con estas correspondencias, se buscarán otras como por ejemplo suponiendo que la A es más frecuente que la E en el texto en claro, o bien elegimos otras letras del criptograma. No es recomendable elegir letras al azar para comenzar el criptoanálisis por frecuencias; las letras que más información nos entregarán serán las 3 o 4 más frecuentes del alfabeto: E, A, O, S.

Supongamos que las dos letras más frecuentes en un criptograma de 424 caracteres son la W (59 veces) con un 13,9% y la K (52 veces) con un 12,2%. Suponiendo entonces que la W se corresponde a la cifra de la letra E del texto en claro y la K se corresponde con la A, tenemos el siguiente sistema de 2 ecuaciones independientes que resolveremos de la manera más sencilla posible, sin aplicar matrices, aprovecahndo que la letra A tiene como código el número 0.

Ecuación 1: W = a * E + b mod 27
Ecuación 2: K = a * A + b mod 27
Es decir:
Ecuación 1: 23 = a * 4 + b mod 27
Ecuación 2: 10 = a * 0 + b mod 27

De la ecuación 2, resulta obvio que b = 10. Reemplazando este valor en la ecuación 1 se tiene:

Ecuación 1: 23 = a * 4 + 10 mod 27
a = (23 – 10) * inv (4, 27) mod 27 = 13 * 7 = 91 mod 27 = 10
Como el valor a = 10 es uno de los valores válidos en módulo 27, podemos suponer que:
Ecuación de cifrado: C = 10 * M + 10 mod 27
Ecuación de descifrado: M = (C – 10) * inv (10, 27) mod 27 = (C – 10) * 19 mod 27

Y se descifran los primeros caracteres del criptograma con esta última ecuación comprobando si el mensaje recuperado es el correcto.

Lo veremos en la siguiente práctica.

Nos vemos en el laboratorio...
Enunciado:
Con el software Criptoclásicos v2.1 criptoanaliza el criptograma C si se sabe ha sido cifrado con el método afín.
C = IJNYI WBNYF KMYLF JOYLI YBZKT WBNWN JDKNY WLUWM JTBYK EFKIW BLYFK VKQYB UWFPY EFKLW BJKWH DELKW LUKIW BLYFK VKQYB WLWMV WSYBK VJPYR EWUWF PYWFW MVEFN YUWFP YYUBK WHDEL KWLUK IWBLY FKVKQ YBWLD KIKAN WWFUW FNWBM YUYNY ZKLUK MYLMJ TBYLI KBKFJ OYLUW FPYEF KUWBD WBKWH DELKW LUKIW BLYFK VKQYB ÑJÑWW FGBKF DJKNY FNWIK LKZKV TBWQG BJYÑW BNKNW BKVWF UWFWD WLJUK DYFLE WMYLJ UYNKL WLKLW HDELK LFYTK LUKLW FTJWF IEWNY NWNJD KBWLU WMJTB YKMFJ OYREW EFKÑW AGEWW LUKIW BLYFK VKQYB UYNYL MYLVK QYBWL ZKFLJ NYIBJ VWBYF JOYL.
Solución:
Criptosistemas -> Adición y multiplicación. Copiamos el criptograma en la caja de texto y damos a Criptoanalizar, obteniendo el resultado que se muestra en la figura. Para el criptoanálisis, se hace corresponder la letra W del criptograma con la letra E del alfabeto y, después, la letra K del criptograma con la letra A del alfabeto. Las constantes de decimación y de desplazamiento son a = 10 y b = 10.



Comprueba estos resultados y el texto en claro obtenido.
M = Pido perdón a los niños por haber dedicado este libro a una persona mayor. Tengo una seria excusa: esta persona mayor es el mejor amigo que tengo en el mundo. Tengo otra excusa: esta persona mayor es capaz de entenderlo todo, hasta los libros para niños. Tengo una tercera excusa: esta persona mayor vive en Francia, donde pasa hambre y frío. Verdaderamente necesita consuelo. Si todas esas excusas no bastasen, bien puedo dedicar este libro al niño que una vez fue esta persona mayor. Todos los mayores han sido primero niños.
¿De qué famoso libro hablamos ahora?

Como has podido comprobar a lo largo de esta lección, los sistemas de cifra monográmicos por sustitución monoalfabética adolecen de un grave inconveniente: al cambiar cada letra del texto en claro por otra de un único alfabeto de cifrado, la alta redundancia del lenguaje presente en el texto en claro se manifiesta también en el criptograma. Y esto hace que el criptoanálisis sea muy elemental, como se ha comprobado.

Para terminar este apartado y esta lección, nada mejor que repasar ahora los aspectos relacionados con la seguridad y fortaleza de estos sistemas, visualizando la píldora formativa Thoth 18 ¿Cómo se ataca la cifra por sustitución monoalfabética? de la figura 3.1.


Figura 3.1. Píldora formativa Thot 18: ¿Cómo se ataca la cifra por sustitución monoalfabética?


APARTADO 4. EVALUACIÓN DE LA LECCIÓN 8

4.1. Test de evaluación personal

En las siguientes 10 preguntas, elige la respuesta correcta. Sería muy recomendable que la primera vez que contestes este test lo hagas sin repasar la lección.

Para confirmar si tus respuestas son las correctas, accede y consulta las redes sociales de Crypt4you en twitter y en facebook. Las soluciones al test de esta octava lección se publicarán en dichas redes sociales el mismo día en que se publique la próxima lección 9. Recuerda que en twitter se publican sólo las respuestas correctas y en facebook, además de ello, se justifica la respuesta correcta y se indica por qué son incorrectas las demás.

1. El cifrado del César se trata de una cifra:

a) Por sustitución de 3 espacios a la izquierda en el alfabeto.
b) Por sustitución de 3 espacios a la derecha en el alfabeto.
c) Por permutación de 3 espacios a la derecha del alfabeto.
d) Por sustitución de 2 espacios a la derecha en alfabeto.

2. Si en la cifra tipo César módulo 27 el alfabeto de cifrado se crea aleatoriamente:

a) El espacio de claves posibles es igual a 272.
b) El espacio de claves posibles es igual a 27+26+25+...+3+2+1.
c) El espacio de claves posibles es igual a 27*26*25*...*3*2*1.
d) El espacio de claves posibles es igual a 227.

3. Un cifrador por desplazamiento puro con clave tiene:

a) Un número de alfabetos mayor que un cifrador sin clave.
b) Un número de alfabetos menor que un cifrador sin clave.
c) El mismo número de alfabetos que un cifrador sin clave.
d) No se puede incluir una clave en estos cifradores.

4. Si la cifra con César mod 27 da como criptograma HAL, ¿cuál era el mensaje en claro?

a) IBM.
b) JCN.
c) EXI.
d) KDÑ.

5. Un ataque por fuerza bruta a un cifrado tipo César mod 27 requerirá de media:

a) 3 intentos.
b) 26 intentos.
c) 27 intentos.
d) 13 intentos.

6. Un alfabeto de cifrado mod 27 generado por una decimación a = 4, comenzaría por:

a) A, E, I, M, P...
b) A, D, G, J, M...
c) A, E, G, I, K...
d) C, E, I, M, P...

7. Si el mensaje SOL se cifra con c = 2 * M mod 27, ¿cuál sería su criptograma?

a) LDN.
b) LDV.
c) QNJ.
d) ADV.

8. El número de alfabetos posible para la cifra C = a * M + b mod 27 será:

a) 26 * 17 = 442.
b) 26 * 18 = 468.
c) 27 * 17 = 459.
d) 27 * 18 = 486.

9. Para criptoanalizar por análisis de frecuencias una cifra afín, deberemos resolver:

a) Un sistema de tres ecuaciones independientes con tres variables.
b) Una única ecuación con una variable.
c) Un sistema de dos ecuaciones independientes con una variable.
d) Un sistema de dos ecuaciones independientes con dos variables.

10. Se intenta criptoanalizar un sistema afín relacionando las dos letras más frecuentes del criptograma con la E y la A del alfabeto respectivamente, pero no se tiene éxito:

a) Abandonamos el intento porque ya no podrá romperse.
b) Cambiamos la relación de entre E y la A y si tampoco funciona desistimos del ataque.
c) Cambiamos la relación entre la E y A y si tampoco funciona usamos la letra O.
d) Es normal, con esas dos letras E y A nunca se tendrá éxito en el ataque.


Ir a: [Portada c4y]    [Lección 7] [Índice] [Lección 9]