Академический Документы
Профессиональный Документы
Культура Документы
Hill
Por César Tomé
11ENE2017
“La matriz rusa, multiplicación de una matriz por una matriz columna”, del
artista franco-ruso Paul Kichilov
Expliquemos en qué consiste el cifrado de Hill. En primer lugar, se asocia cada letra
del alfabeto con un número. La forma más sencilla de hacerlo es con la asociación
natural ordenada, aunque podrían realizarse otras asociaciones diferentes. Además,
en este ejemplo solamente vamos a utilizar las 27 letras del alfabeto, pero también
podrían añadirse otros símbolos usuales, como el espacio en blanco “_”, el punto “.”
o la coma “,”, la interrogación “?”, las 10 cifras básicas, etcétera.
En el cifrado de Hill se utiliza una matriz cuadrada de números A como clave, la cual
determina la transformación lineal Y = A ∙ X, donde Y, X son vectores columna
y A y Xse multiplican con la multiplicación de matrices (véase la siguiente imagen).
Veamos un ejemplo. Consideremos la matriz cuadrada 3 x 3 (aunque en general
pueden considerarse matrices cuadradas de cualquier tamaño) siguiente y la
correspondiente transformación lineal Y = A ∙ X:
.
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.
.
.
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.
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
.
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
“EHAHTDINRKQOPUSKVLKMUFÑG”,
.
.
(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)
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
.
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)
Y para obtener la matriz identidad en la parte de la izquierda solo nos falta convertir
el 18 que está en la tercera columna de la segunda fila en un cero, para lo cual
realizamos la siguiente sustitución
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.