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

CRIPTOGRAFIA CIFRADO DE HILL

Integrante Grupo algebra, Facultad de Ingeniería y Ciencias Básicas- Ingeniería


Industrial

Juan Sebastián González Amaya ()


Fabio Alejandro Ríos (1511981296)

POLITECNICO GRAN COLOMBIANO


Criptografía con matrices, el cifrado de Hill
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 mundial ya 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.
Un parentisis para continuar:
Lester S. Hill
Fecha de nacimiento: 1891 nueva york
Fallecimiento: 1961 bronxville, nueva york
Educación: Columbia college of Columbia university in the city of new york,
universidad yale
Lester S. Hill (1891-1961) fue un matemático y educador estadounidense que
estaba interesado en las aplicaciones de las matemáticas a
las comunicaciones . Recibió una licenciatura de Columbia College (1911) y un
doctorado. de la Universidad de Yale (1926). Enseñó en la Universidad de
Montana , la Universidad de Princeton , la Universidad de Maine , la
Universidad de Yale y Hunter College . Entre sus contribuciones notables
estaba el cifrado de Hill . También desarrolló métodos para detectar errores en
números de código telegrafiados y escribió dos libros.
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.

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
.

.
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.
En consecuencia, el álgebra lineal que ha servido para desarrollar el cifrado de
Hill, también sirve para romper su código.

.
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
1.- Raúl Ibáñez, Arthur Cayley, explorador victoriano del territorio
matemático, RBA, 2017 (pendiente de publicación).
2.- Marie-José Pestel, Paul Kichilov, de la gravure à la anamorphose, Tangente
Hors-serie 23: Maths et arts plastiques, p. 142-147.
3.- Lester S. Hill, Cryptography in an Algebraic Alphabet, The American
Mathematical Monthly, vol. 36, n. 6 (1929). p. 306-312.
4.- Jorge Ramió Aguirre, Seguridad Informática y criptografía (libro electrónico),
Universidad Politécnica de Madrid, 2006.
5.- OnlineMSchool, Online calculadoras para solucionar problemas
matemáticas
6.- Calculadora de los números enteros modulares
Sobre el autor: Raúl Ibáñez es profesor del Departamento de Matemáticas de
la UPV/EHU y colaborador de la Cátedra de Cultura Científica
1.2 A partir de la consulta anterior, con sus propias palabras, describa el paso a paso para
cifrar la palabra DEDICACIÓN empleando la matriz clave 1 -10
0 1 y la asignación
numérica que aparece en el siguiente recuadro (en él, el símbolo “_” representa el espacio
entre las palabras).

DEDICACION

LA palabra dedicación en números es igual a esto.

3, 4, 3, 8, 2, 0, 2, 8, 15, 13

Seria una matriz de 2x2

(3,4) (3,8) (2,0) (2,8) (15,13)

(1 -10) = 3 = 23
(0 – 1 ) 4 25

(1 -10) = 3 = 11
(0 – 1 ) 8 21

(1 -10) = 2 = 2
(0 – 1 ) 0 0

(1 -10) = 2 = 2
(0 – 1 ) 8 = 21

(1 -10) = 15 = 9
(0 – 1 ) 13 21

En este caso estoy empleando el método de hill

Es decir, se consideran los números enteros 0, 1, 2,… , 28 y el resto se identifica con estos de
forma cíclica. Así, el 29 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 28, – 2 es igual 27, 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 29 de forma natural, es decir, al operar dos números enteros (módulo 29) el
resultado se considera también módulo 29.

Al multiplicar la matriz de 2x2 con los términos cifrados de DEDICACION nos da como resultado
los números
(23,25), (11,21), (2,0), (2,21), (9,21)
Esto quiere decir que el mensaje cifrado es:

wylucacuju

Actividad 2
2.1 Suponga que se intercepta el mensaje
HIQ.KON.CBSCTOÑKCFÑS.BRHLQSWLY _IHKPFIYD y que de él se sabe lo siguiente.a. Las tres
primeras letras del mensaje oculto son "EL_" y las tres últimas son "R __" b. La matriz clave es
de la formaa b c7 4 32 1 1.c. El determinante de la matriz clave es 1.2.2 A partir de esta
información, responda y realice lo que se muestra a continuación,según corresponda.2.2.1
¿Es posible descifrar el mensaje con la información dada?
Justifique su respuesta con las explicaciones y procesos necesarios.2.2.2 Si la respuesta al ítem
anterior fue afirmativa, descifre el mensaje oculto

7,8,17,28,10,15,13,28,2,1,19,2,20,15,14,10,2,5,14,19,28,1,18,7,11,17,19,23,11,25,27,8,7,10,16,
5,8,25,3

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