Вы находитесь на странице: 1из 16

Criptografía con matrices, el cifrado de

Hill
 Por César Tomé
 11ENE2017

Hace no mucho tiempo me encontraba yo buscando un ejemplo sencillo de


aplicación de las transformaciones lineales que me permitiera explicarlas de una
forma práctica e interesante, cuando descubrí el cifrado de Hill.

No es la primera vez que en la sección Matemoción del Cuaderno de Cultura


Científica hablamos de criptografía. En la entrada Códigos secretos en la primera
guerra mundialya repasamos algunos de los métodos de encriptación clásicos, como
son el cifrado de César, el atbash hebreo, el cifrado francmasón, el cifrado de Polibio,
el método de Francis Bacon, el cifrado Vigenère y la cifra ADFGVX.

“La matriz rusa, multiplicación de una matriz por una matriz columna”, del
artista franco-ruso Paul Kichilov

El cifrado de Hill fue inventado, basándose en el álgebra lineal, por el matemático


norteamericano Lester S. Hill en 1929, y aparece explicado en su
artículo Cryptography in an Algebraic Alphabet, publicado en The American
Mathematical Monthly.
Es un sistema criptográfico de sustitución polialfabético, es decir, un mismo signo,
en este caso una misma letra, puede ser representado en un mismo mensaje con más
de un carácter. Así, en el ejemplo que vamos a analizar a continuación, la letra A del
mensaje original aparece representada en el mensaje codificado de tres formas
distintas, como C, K e I.

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.

Como en la correspondencia anterior, entre letras/signos y números, solamente


aparecen 27 números, hay que trabajar con los números enteros “módulo 27”. Es
decir, se consideran los números enteros 0, 1, 2,… , 26 y el resto se identifica con
estos de forma cíclica. Así, el 27 es igual a 0, el 28 a 1, el 29 a 2, etcétera, y lo mismo
con los números negativos, de forma que – 1 es igual 26, – 2 es igual 25, etcétera.
Además, se reducen las operaciones aritméticas (suma, resta, multiplicación y
división) al conjunto de los números enteros módulo 27 de forma natural, es decir,
al operar dos números enteros (módulo 27) el resultado se considera también
módulo 27. Por ejemplo, si se realiza la multiplicación de los números 6 y 13, módulo
27, el resultado dará 24 (módulo 27), puesto que 6  13 = 78 y 78 = 2  27 + 24. O el
inverso de 2, es decir, el número a tal que 2  a es igual a 1 (módulo 27), es 14, puesto
que 2  14 = 28, que es igual a 1, módulo 27.

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:
.

Supongamos que el mensaje que se quiere enviar encriptado es

“CUADERNO DE CULTURA CIENTIFICA”,

cuya transcripción numérica, teniendo en cuanta la tabla de sustitución anterior, es


“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”. Como
la transformación lineal es de orden 3, vamos a agrupar los números en grupos de
tres, en ternas, sobre las que luego aplicaremos la transformación lineal, (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).

A continuación, vamos a transformar las ternas de números anteriores, mediante la


transformación lineal dada por la clave, en nuevas ternas, que serán el mensaje
numérico cifrado. ¡Ojo!, que en la transformación lineal no hay que olvidar que
seguimos trabajando con los números enteros módulo 27.
.

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

Expliquemos ahora el proceso de descodificación de un mensaje. Imaginemos que el


receptor recibe el siguiente mensaje

“EHAHTDINRKQOPUSKVLKMUFÑG”,

y quiere conocer su significado. Para descodificar el mensaje hay que utilizar el


mismo método anterior, el cifrado de Hill, pero utilizando como clave la matriz
inversa A-1(módulo 27) de la matriz A de codificación.
Por lo tanto, se empieza de nuevo transformando el mensaje en la sucesión de ternas
numéricas asociada, (4, 7, 0), (7, 20, 3), (8, 13, 18), (10, 17, 15), (16, 21, 19), (10, 22,
11), (10, 12, 21), (5, 14, 6). Y entonces se transforman mediante la transformación
lineal con matriz A-1, es decir, Y = A-1 ∙ X.

.
.

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

“DIVULGANDO LAS MATEMATICAS”.


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 Machines

Sin 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.

MENSAJE ORIGINAL: “CUADERNO DE CULTURA CIENTIFICA”

(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)

MENSAJE CIFRADO: “QDCLYDYUEQFVGWCXKDBAFXDWMII”


(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.

El método de Gauss Jordan consiste realizar una serie de operaciones sobre la


anterior matriz, que está dividida en dos partes, la correspondiente al mensaje
original y la del mensaje cifrado, para conseguir que en la parte de la izquierda quede
la matriz identidad (1 0 0 / 0 1 0 / 0 0 1) en tres de las filas, para considerar entonces
la parte correspondiente de la derecha, como se mostrará después. Esas operaciones
consisten en sustituir cada fila de la matriz por el resultado de sumarle/restarle a esa
fila una combinación lineal de algunas de las otras filas.

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).

Al multiplicar la primera fila (2 21 0 : 17 3 2) por 14 (módulo 27) se transforma en (1


24 0 : 22 15 1). Ahora, para conseguir un 0 en la primera posición de cada fila se
realiza las siguientes sustituciones (método de Gauss Jordan):

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)

quedando ahora la matriz como sigue

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.

En consecuencia, no se puede conseguir un 1 en la tercera columna de las filas 3, 4 y


5. Y al multiplicarlas por 9 se anulan todos sus elementos, luego esas tres filas no nos
interesan.

Por lo tanto, vamos a intentar conseguir un 1 en la tercera columna de la fila 6, para


lo cual tenemos que multiplicar por el inverso de 2, que como ya sabemos es 14. Y al
fila 6 pasa de (0 0 2 : 6 10 12) a (0 0 1 : 3 5 6), al multiplicarla por 14.

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)

y la matriz queda finalmente, después de todo este proceso de Gauss Jordan,

.
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.

Вам также может понравиться