Criptometria
Criptometria
Criptometria
.
Supongamos que el mensaje que se quiere enviar encriptado es
.
Aunque la transformación lineal de la terna (2, 21, 0) es inicialmente (44, 84, 2),
como estamos trabajando con enteros módulo 27, esta terna se convierte en (17,
3, 2), ya que 44 = 1 x 27 + 17 y 84 = 3 x 27 + 3. E igual para el resto.
3
.
4
.
Por lo tanto, el mensaje numérico cifrado es “17, 3, 2, 11, 25, 3, 25, 21, 4, 17, 5, 22,
6, 23, 2, 24, 10, 3, 1, 0, 5, 24, 3, 23, 12, 8, 8”, que al transformar de nuevo los
números en sus correspondientes letras, se convierte en el mensaje cifrado
«QDCLYDYUEQFVGWCXKDBAFXDWMII”.
Y este es el mensaje que se envía para que no sea comprendido por el “enemigo”
aunque este lo intercepte en el camino.
5
Imágenes de la patente US
1.845.947 presentada por Lester S. Hill y Louis Weisner, quienes diseñaron una máquina
que implementaba el cifrado de Hill de orden 6
Para poder descodificar los mensajes cifrados mediante el método de Hill se
necesita que la matriz de la transformación lineal utilizada, la clave, sea una
matriz inversible. La matriz de nuestro ejemplo lo es, puesto que su determinante
es no nulo, |A| = 22. Además, la matriz inversa de A, que es la necesaria para
descodificar un mensaje cifrado, es
6
.
Pero ojo, estamos trabajando con los enteros módulo 27 y vamos a transformar la
matriz inversa anterior en una matriz con números enteros módulo 27. Para
empezar se necesita el inverso del número 22. Se ve fácilmente que 22 16 = 352,
que es igual a 1, módulo 27, luego 1/22 = 16. Y la matriz inversa se transforma,
módulo 27, en
.
Expliquemos ahora el proceso de descodificación de un mensaje. Imaginemos
que el receptor recibe el siguiente mensaje
“EHAHTDINRKQOPUSKVLKMUFÑG”,
.
9
.
En consecuencia, la secuencia de ternas numéricas original asociada al anterior
mensaje codificado es (3, 8, 22), (21, 11, 6), (0, 13, 3), (15, 11, 0), (19, 12, 0), (20,
4, 12), (0, 20, 8), (2, 0, 19). Y traduciendo los números a sus correspondientes
letras del alfabeto se obtiene que el mensaje original enviado es
Máquina de
cifrado M-94 utilizada por el ejército de los Estados Unidos de América entre los años
1922 y 1945, que consta de 25 discos con las letras del alfabeto. Imagen de la
página Cipher MachinesSin embargo, el cifrado de Hill no es seguro. Utilizando
métodos de álgebra lineal en un “ataque con texto claro conocido” puede
romperse el código y descubrir la matriz clave de encriptado. Un ataque con texto
claro conocido significa que el analista que quiere romper el código dispone de un
ejemplo de “texto en claro”, es decir, de un mensaje original, con el
correspondiente mensaje cifrado.
Veamos cómo se puede romper este código. Supongamos que estamos utilizando
la matriz clave anterior A = (1 2 3 / 0 4 5 / 1 0 6), y que el analista “enemigo” ha
conseguido obtener tanto un mensaje original como el correspondiente mensaje
cifrado. Por ejemplo, el primero de los utilizados en esta entrada del Cuaderno de
Cultura Científica.
(2, 21, 0), (3, 4, 18), (13, 15, 3), (4, 2, 21), (11, 20, 21), (18, 0, 2), (8, 4, 13), (20, 8,
5), (8, 2, 0)
11
(17, 3, 2), (11, 25, 3), (25, 21, 4), (17, 5, 22), (6, 23, 2), (24, 10, 3), (1, 0, 5), (24, 3,
23), (12, 8, 8)
Para romper el código se utiliza el “método de Gauss Jordan” (pero módulo 27)
con la matriz asociada al mensaje original y la matriz del mensaje cifrado:
.
Aunque esta última parte de la presente entrada es muy interesante, debido a que
nos muestra una aplicación del método de Gauss Jordan, también es un poco
técnica, por lo que las personas que lo deseen pueden saltársela y considerar
simplemente que es posible romper el cifrado de Hill, mediante técnicas de
álgebra lineal.
Como el elemento que está en la primera fila y la primera columna tiene que ser
un 1, para conseguir la matriz identidad, y resulta que es un 2, debemos dividir
por 2 (módulo 27) la primera fila. Ya hemos comentado al principio que el
inverso de 2 (módulo 27) es 14, luego dividir por 2 es igual a multiplicar por 14
(módulo 27).
a) “2ª fila” se sustituye por “2ª fila” – 3 x “1ª fila” (módulo 27)
b) “3ª fila” se sustituye por “3ª fila” – 13 x “1ª fila” (módulo 27)
c) “4ª fila” se sustituye por “4ª fila” – 4 x “1ª fila” (módulo 27)
d) “5ª fila” se sustituye por “5ª fila” – 11 x “1ª fila” (módulo 27)
e) “6ª fila” se sustituye por “6ª fila” – 18 x “1ª fila” (módulo 27)
y así podría seguirse con el resto, aunque no necesitamos las tres últimas filas
para conseguir nuestro objetivo. En cualquier caso, después de las sustituciones
anteriores, la matriz se ha transformado en la siguiente matriz
13
.
Ahora queremos conseguir un 1 en la posición que se corresponde con la segunda
fila y la segunda columna, de nuevo buscando conseguir la matriz identidad en la
parte de la izquierda. Como en esa posición está el 13, debemos buscar su inverso
módulo 27, que resulta que es 25 (ya que 13 x 25 = 325, que tomando módulo 27,
es igual a 1). Es decir, hay que multiplicar la segunda fila por 25, de manera que
esta segunda fila (0 13 18 : 26 7 0) se transforma, al multiplicarla por 25 (módulo
27) en (0 1 18 : 2 13 0). Y ahora buscamos obtener ceros en la segunda posición de
las demás filas mediante las siguientes sustituciones (método de Gauss Jordan):
f) “1ª fila” se sustituye por “1ª fila” – 24 x “2ª fila” (módulo 27)
g) “4ª fila” se sustituye por “4ª fila” – 14 x “2ª fila” (módulo 27)
h) “5ª fila” se sustituye por “5ª fila” – 26 x “2ª fila” (módulo 27)
.
El siguiente paso sería conseguir un 1 en la posición que se corresponde con la
tercera fila y la tercera columna, una vez más buscando conseguir la matriz
identidad en la parte de la izquierda. Sin embargo, en este momento nos
encontramos con una primera anomalía por trabajar módulo 27, y es que los
números enteros módulo 27 admiten “divisores de cero”, como el 3 y el 9, ya que
el producto de 3 por 9 es igual a 0 (módulo 27), y estos no tienen inverso.
i) “2ª fila” se sustituye por “2ª fila” – 18 x “6ª fila” (módulo 27)
.
Luego, tras el método de Gauss Jordan (módulo 27), en la parte de la derecha de
la matriz, correspondiéndose con la matriz identidad de la izquierda, nos queda
la siguiente matriz
.
que es la matriz traspuesta (es decir, se cambian las filas por columnas, y al revés)
de la matriz clave utilizada en el ejemplo que hemos visto de encriptación de Hill.
16
.
Una forma de evitar lo anterior, es modificar el algoritmo del cifrado de Hill para
que la matriz clave no sea fija, sino que sea dinámica.
Bibliografía