Você está na página 1de 7

ALGORITMO HILL

CONTENIDO

1. Planteamiento del Problema ...................................................................................................... 1


2. Marco Teórico ........................................................................................................................... 1
2.1. Cifrado Hill. ......................................................................................................................... 1
3. Bibliografía ............................................................................................................................... 5
1. Planteamiento del Problema

La criptografía es de gran interés en la actualidad, debido a la creciente evolución del


internet y otras tecnologías. El gran intercambio de información a través de:
transacciones bancarias, comercio, educación en línea, archivos, imágenes digitales,
audio entre otras, han estimulado la creación de políticas de seguridad para intercambiar
de forma segura dicha información. Entre los algoritmos populares para el cifrado se
encuentran los basados en: cálculo matricial, teorema Chino de los restos y en
secuencias canónicas [1]. En particular, este trabajo se enfoca en la implementación
del algoritmo Hill en MATLAB para cifrado/descifrado de imágenes digitales, con el
propósito de analizar sus principales características.

2. Marco Teórico

2.1. Cifrado Hill.

Este algoritmo fue propuesto por el matemático Lester Hill en el año de 1929 [1]. Este
algoritmo se base en algebra lineal y sigue las siguientes reglas [2]:

1. Asignar un valor numérico a cada letra del alfabeto a utilizar iniciando en cero.
2. La clave (K) a utilizar debe constar de tantas letras como se desee siempre que
sea posible colocar los equivalentes numéricos de cada una de ellas en una
matriz de orden NxN.
3. El Texto en claro (Mcla) se divide en diagramas, trigramas o N gramas
necesarios, tal que sus equivalentes numéricos sean colocados en matrices de
Nx1.
4. El cifrado se obtiene multiplicando las matrices K*Mcla, en otras palabras,
Cifrado(Nx1) = K(NxN) * Mcla(Nx1).
5. El mensaje en claro se recupera llevando a cabo el proceso inverso del cifrado,
es decir, Mcla(Nx1) = K-1(NxN)*Cifrado(Nx1). Vale notar, que la matriz clave
K, de ser invertible. Adicionalmente, todas las operaciones tanto en el
cifrado/descifrado deben ser realizadas en la forma módulo n, donde n es el
tamaño del alfabeto utilizado.

Por ejemplo, para el mensaje Mcla = CONSUL con clave K=FORTALEZA, se procede
a cifrar dicho mensaje siguiendo las reglas antes mencionadas [2].

1
Proceso de Cifrado

Regla 1

Seleccionar un alfabeto (modulo=27, en este ejemplo) para el cifrado/descifrado usando


el algoritmo Hill.

Figura 1.- Alfabeto Español – Mayúsculas [3].

Regla 2

Se obtienen los equivalentes numéricos de la clave a utilizar que en este caso


corresponde a F = 5, O = 15, R = 18, T = 20, A = 0, L = 11, E = 4, Z = 26, A = 0 y se
colocan en una matriz de 3×3 como sigue

5 15 18
𝐾 = (20 0 11)
4 26 0

Regla 3

Del Mcla proporcionado se obtienen dos trigramas; el primero formado por las letras
CON siendo sus equivalentes numéricos 2, 15 y 13, y el segundo trigrama SUL
equivalente a 19, 21 y 11 respectivamente, los cuales se convierten en dos matrices
como sigue
2 19
𝑀1 = (15) 𝑀2 = (21)
13 11

Regla 4

Se obtiene el Cifrado realizando la multiplicación de matrices: K*M1 y K*M2

5 15 18 2 469 10 𝐾
𝐾 ∗ 𝑀1 = (20 0 11) (15) = (183) = (21) 𝑚𝑜𝑑 27 = (𝑈 ) → 𝐶1
4 26 0 13 398 20 𝑇

5 15 18 19 608 14 Ñ
𝐾 ∗ 𝑀2 = (20 0 11) (21) = (501) = (15) 𝑚𝑜𝑑 27 = (𝑂) → 𝐶2
4 26 0 11 622 1 𝐵

Por lo que, el Cifrado es KUTÑOB.

2
Proceso de Descifrado

El descifrado del algoritmo Hill se lo realiza siguiente la Regla 5 descrita anteriormente.


Primeramente, se debe encontrar la matriz inversa de K (clave), para posteriormente
realizar el descifrado. Cabe mencionar que, si esta matriz no es invertible, el texto en
claro no podrá se recuperado satisfactoriamente.

Proceso para invertir una matriz Clave

La matriz inversa de K matemáticamente puede ser expresada como [4]:

𝐾 −1 = 𝐶 𝑇 ∗ (det(𝐾))−1 (1)

donde det representa la operación determinante de una matriz y 𝐶 𝑇 es la matriz de


cofactores de K, esta puede ser expresada por [4]:

𝐶 𝑇 = (𝑖𝑛𝑣(𝐾 𝑇 ) ∗ det(𝐾))𝑇 (2)

donde inv denota la inversa de una matriz. Cabe recalcar que (det(𝐾))−1 en la ecuación
(1) debe realizarse en módulo n (tamaño del alfabeto), para nuestro ejemplo n=27. Este
valor tiene que cumplir la siguiente restricción [4]:

(det(𝐾) 𝑚𝑜𝑑 𝑛)( 𝑎 𝑚𝑜𝑑 𝑛) = 1 (3)

dónde 𝑎 = (det(𝐾))−1 y debe ser un número entero.

Verificación para conocer si una matriz es invertible

Para saber si una matriz clave en el algoritmo Hill es invertible, se puede seguir los
siguientes pasos [2]:

1. Calcular el determinante de la matriz clave en módulo del alfabeto.


2. Verificar que el número resultante del paso 1 tenga como m.c.d. (máximo
común divisor) el número 1.

Para nuestro ejemplo,


Paso 1
det(K) mod 27 = 4
Paso 2
El m.c.d entre los números 4 y 27 es el número 1, por lo que la matriz K es invertible.

3
Ahora, retomando el proceso de descifrado se tiene:

Regla 5

Mcla(Nx1) = 𝐾 −1 (NxN) ∗ Cifrado(Nx1) (2)

Realizando primero las operaciones requeridas para la ecuación (4) se tiene:

5 15 18
𝑑𝑒𝑡 (20 0 11) 𝑚𝑜𝑑 27 = 4
4 26 0

cumpliendo la restricción en (3) se obtiene:

(4 𝑚𝑜𝑑 27)( 𝑎 𝑚𝑜𝑑 27) = 1


de donde a = 7. Ahora calculando la matriz de cofactores de K, a través de (2), se
obtiene:

𝐶 𝑇 = (𝑖𝑛𝑣(𝐴𝑇 ) ∗ det(𝐴))𝑇

𝑇
−0.03 0.005 0.06 −286 44 520
𝑇
𝐶 = (( 0.05 −0.008 −0.008) 8590) = ( 468 −72 −70 )
0.019 0.035 −0.034 165 305 −300

a continuación, la matriz inversa de K, es calculada a partir de (1) como:

−286 44 520 23 9 21
−1
𝐾 = ( 468 −72 −70 ) ∗ 7 𝑚𝑜𝑑 27 = (11 9 2)
165 305 −300 22 23 6

Ahora, siguiendo (2), se tiene:

23 9 21 10 839 2 𝐶
−1
𝐾 ∗ 𝐶1 = (11 9 2 ) (21) = (339) 𝑚𝑜𝑑 27 = (15) = ( 𝑂 )
22 23 6 20 823 13 𝑁

23 9 21 14 478 19 𝑆
−1
𝐾 ∗ 𝐶2 = (11 9 2 ) (15) = (291) 𝑚𝑜𝑑 27 = (21) = (𝑈)
22 23 6 1 659 11 𝐿

Por lo que, el mensaje descifrado es “CONSUL”.

4
3. Bibliografía

[1] Á. R. Matas and A. C. Rojas, “Cifrado de imágenes y Matemáticas,” Rev.


Iberoam. Tecnol. En Educ. Y Educ. En Tecnol., vol. 59, no. 5, pp. 30–37, 2009.
[2] U.N.A.M, “Hill Criptografía.” [Online]. Available:
https://unamcriptografia.wordpress.com/2011/10/05/hill/. [Accessed: 28-Dec-
2017].
[3] R. Alvarez Rueda, “Sistemas de Cifrado Clásicos,” no. I, 2017.
[4] Textos Científicos, “Criptosistema Hill.” [Online]. Available:
https://www.textoscientificos.com/criptografia/hill. [Accessed: 28-Dec-2017].

Você também pode gostar