Quién no conoce a Julio César, el famoso dictador de la Republica romana que llevó el territorio romano a la prosperidad durante parte de su gobierno, también conocido por ser el objetivo de las burlas de los habitantes de una pequeña aldea poblada por irreductibles galos que resiste ahora y siempre al invasor…
Julio César. Obra de Nicolas Coustou (Fuente: Wikimedia Commons)
Julio César también fue un gran estratega militar y la conquista de los territorios que se anexionó la hizo gracias, en gran parte, a sus dotes de estratega. Una de las características que tiene que tener un estratega es la habilidad de enviar mensajes a sus tropas y sus aliados sin que sean interceptados por el enemigo.
Suetonio nos cuenta que:
“Si tenía que decir algo confidencial, lo escribía usando el cifrado, esto es, cambiando el orden de las letras del alfabeto, para que ni una palabra pudiera entenderse. Si alguien quiere decodificarlo, y entender su significado, debe sustituir la cuarta letra del alfabeto, es decir, la D por la A, y así con las demás.
Esto quiere decir que cuando Julio César quería mandar un mensaje, utilizaba una tabla de este estilo (adaptada al alfabeto español, para entendernos mejor)
A | B | C | D | E | F | G | H | I | J | K | L | M | N | Ñ | O | P | Q | R | S | T | U | V | W | X | Y | Z |
D | E | F | G | H | I | J | K | L | M | N | Ñ | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
En otras palabras, cuando Julio César quería mandar un mensaje trasladaba cada letra del mensaje 3 posiciones hacia delante en el alfabeto, de manera que el mensaje quedaba totalmente ininteligible a no ser que el enemigo supiera qué era lo que realmente se había hecho. A esta manera de transformar un mensaje en algo ininteligible, o cifrar por traslación, se le llama cifrado César.
Llevar a cabo un cifrado de este tipo no es más que la realización explícita de un formalismo matemático muy interesante que todo el mundo conoce y usa a diario de manera inconsciente: la aritmética modular o aritmética del reloj.
¿Por qué se le llama aritmética del reloj? Si tenéis un reloj analógico, de los de manecillas de toda la vida, se puede ver inmediatamente. La corona del reloj tiene 12 números (romanos o arábigos, da igual), cada número marca una hora, por lo que una vuelta completa de la manecilla pequeña implica que han pasado 12 horas. Sin embargo, el día tiene 24 horas así que pasada la hora 12, vendrá la hora 13, la hora 14 y así sucesivamente hasta llegar a la hora 24, pero en nuestro reloj volverá a marcar la hora 1, hora 2, hasta llegar a la hora 12 otra vez.
Reloj analógico (para contar las horas)
¿Quiere esto decir que 13=1, 14=2 y 24=12? Si, pero, como siempre, hay un pero y es que esto es sólo cierto cuando hablamos de aritmética modular, por lo que lo correcto sería escribir, por ejemplo
13 ≡ 1 (mód. 12)
que se lee “13 es congruente con 1 en módulo 12”.
Esto quiere decir que si en lugar de usar módulo 12, usáramos módulo 7, tendríamos que 13 ≡ 6 (mód. 7)
¿Y cómo se calcula? En aritmética modular estamos interesados en conocer, de forma general expresiones del tipo:
a ≡ b (mód. m)
es decir, dado un valor a queremos saber cuanto vale b en módulo m. Lo podemos hacer de dos maneras:
- “A mano lenta”: imaginándonos un reloj que tiene tantas horas como las que indica m y empezando a mover la manecilla hasta dar una vuelta completa (o las que hagan falta) y una vez terminadas las vueltas completas, contar cuantas “horas” nos quedan hasta contar a horas. En el caso del reloj de 12 horas (módulo 12) si nos dicen que calculemos el valor de 16 en módulo 12, daremos una vuelta completa al reloj y luego contaremos 4 horas más, ya que 12 (1 vuelta completa) + 4 (horas que faltan hasta llegar a 16) =16.
- “A mano rápida”: dividimos el valor de a entre el valor de m y el resto de la división es el valor de b. En el ejemplo anterior 16 (dividendo) = 12 (divisor) x 1 (cociente) + 4 (resto).
¿Y cómo se relaciona la aritmética modular con el cifrado César? Para dar una respuesta, volvemos a escribir los dos alfabetos de arriba, pero con una línea adicional arriba que indica la posición de la letra en el alfabeto.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
A | B | C | D | E | F | G | H | I | J | K | L | M | N | Ñ | O | P | Q | R | S | T | U | V | W | X | Y | Z |
D | E | F | G | H | I | J | K | L | M | N | Ñ | O | P | Q | R | S | T | U | V | W | X | Y | Z | A | B | C |
Podemos ver que la letra A se corresponde con la D. Si lo transformamos a números la A se corresponde con la letra 0 + 3 = 3, que es la D, la B se corresponde con la letra 1 + 3 = 4, que es la E, la C se corresponde con la letra 2 + 3 = 5, que es la F y así sucesivamente. Escribir cada letra de esta manera es tedioso, así que en matemáticas se usa el concepto de función, que para este caso es algo así:
C(x) = x + 3 (mód. 27)
Llamar a la función C(x) es algo arbitrario. La podíamos haber llamado f(x) o de otra manera, pero usamos la C de César por relacionarla con el cifrado César. La x entre paréntesis indica que lo que va detrás del igual toma un valor diferente para cada x. Si se sustituye x por cualquier número de la tabla se obtiene lo que hemos indicado antes. (mód. 27) indica que C(x) es igual a x + 3, si y sólo si, cuando hacemos los cálculos en módulo 27.
Supongamos que Julio Cesar quiere enviar un mensaje que diga “Hola” a Abraracurcix (el jefe de la aldea de irreductibles galos) pero no quiere que se enteren ni Asterix ni Obelix. También vamos a suponer que Julio César es un grandísimo matemático y no tiene la tabla de correspondencia de letras anterior (sólo las dos primeras filas) porque le basta con la función C(x). Lo que haría es coger letra por letra y aplicarle la función:
- H ocupa la posición 7, por lo tanto C(7) = 7 + 3 (mód 27) = 10 (mód 27) = 10, que se corresponde con la letra K.
- o ocupa la posición 15, por lo tanto C(15) = 15 + 3 (mód 27) = 18 (mód 27) = 18, que se corresponde con la letra R.
- l ocupa la posición 11, por lo tanto C(11) = 11 + 3 (mód 27) = 14 (mód 27) = 14, que se corresponde con la letra Ñ.
- a ocupa la posición 0, por lo tanto C(0) = 0 + 3 (mód 27) = 3 (mód 27) = 3, que se corresponde con la letra D.
Julio César mandaría por tanto el mensaje “Krñd” y, por muy listo que sea, Asterix, no lo descubrirá.
Éste mensaje tiene un problema, ¿Cómo sabe Abraracurcix lo que dice el mensaje? Tiene que encontrar una manera de descifrarlo porque lo único que César le ha dicho es que ha utilizado el cifrado César (la función de antes) y está escrito con un alfabeto de 27 letras. Dado que el valor de C(x) es la letra cifrada que se corresponde con la letra x en el alfabeto ordenado normalmente, Abraracurcix tiene que encontrar el valor de x. Cómo Panoramix el druida le ha enseñado algo de matemáticas, resuelve la ecuación:
C(x) = x + 3 (mód. 27)
x = C(x) – 3 (mód. 27)
además, como nosotros ya sabemos lo que quiere decir “Krñd” suponemos que el mensaje lleva además la palabra “DOLJR”. Aplicando la ecuación, tenemos:
- D ocupa la posición 3, por lo tanto x = 3 – 3 (mód 27) = 0 (mód 27) = 0, que se corresponde con la letra a.
- O ocupa la posición 15, por lo tanto x = 15 – 3 (mód 27) = 12 (mód 27) = 12, que se corresponde con la letra m.
- L ocupa la posición 11, por lo tanto x = 11 – 3 (mód 27) = 8 (mód 27) = 8, que se corresponde con la letra i.
- J ocupa la posición 9, por lo tanto x = 9 – 3 (mód 27) = 6 (mód 27) = 6, que se corresponde con la letra g.
- R ocupa la posición 18, por lo tanto x = 18 – 3 (mód 27) = 15 (mód 27) = 15, que se corresponde con la letra o.
Por lo que Abraracurcix se emociona al saber que está iniciando una nueva amistad al leer el mensaje “Hola amigo”.
Abraracurcix, el jefe, contento después de recibir el mensaje de Julio… (Fuente: asterix.com)
Como podemos ver las matemáticas son muy importantes a la hora de mantener la seguridad de nuestras comunicaciones, ya sean textos o algo más complejo, como nuestras cuentas bancarias cuando hacemos compras por internet. El campo de las matemáticas que estudia esta seguridad es la criptografía y además de la aritmética modular existen muchos otros entes matemáticos implicados, como son los importantísimos números primos, por poner un ejemplo.
No se puede decir que el cifrado César sea el más seguro de todos ya que se pueden utilizar técnicas de criptoanálisis como el análisis de frecuencia, que tiene en cuenta qué letras aparecen con más frecuencia en un idioma. Como siempre, todo es más difícil de lo que parece, pero gracias a eso que algunos despectivamente llaman “algo que no sirve para nada”, en referencia a las matemáticas, estamos más seguros ante cualquier ataque contra la seguridad de la información y podemos mandarnos mensajes a escondidas cuando no queremos que alguien se entere…
¡JUDFLDV SRU SDVDUWH!
Referencias:
Matemáticas, espías y piratas informáticos. Codificación y criptografía. Joan Gómez
Asterix el galo. Goscinny y Uderzo