Sunteți pe pagina 1din 7

Metodologa del Criptosistema de Hill

Mota, Adolfo; Muoz, Rodolfo; Ornelas, Luis; Sandoval, Gabriel;


Tllez, Carlos.
motanavarro3@outlook.com

/*Esto es el prrafo introductorio, el equivalente al abstract


para lo que tenemos que entregar considerando la falta de
experimentacin */
Presentamos el algoritmo del encriptado de Hill, el primer sistema
criptogrfico de carcter polialfabtico y motivo por el cul fue
utilizado ampliamente en la poca previa a la Segunda Guerra
Mundial. Adems de explicarlo procederemos a implementarlo en el
programa computacional Matlab demostrando paso a paso el proceso
de cifrado del mensaje.

Introduccin //ttulo, va en mayor tamao de fuente


Desde que los humanos tuvieron la necesidad ocultar informacin a
otros, la capacidad emple en la solucin a este problema. El
desarrollo de mtodos que ocultan al mensaje fsicamente o en su
interpretacin, llegando a requerir de varios elementos para su
posible entendimiento fue tomando formalidad cuando se le aproxim
a las matemticas y la lgica.
Previo al Sistema de Hill. //subttulo, mismo tamao pero
resaltado de alguna manera
Instaurada en Esparta durante el siglo V a.C. como un sistema
criptogrfico, tenemos a la Esctala. Consista de dos varas con
las mismas dimensiones, una empleada por el emisor y la otra en
posesin del receptor. Al enrollar un listn uniformemente por la
vara se obtena una superficie donde escribir el mensaje, si el
listn se despegaba de la vara entonces se vera como una tira con
algunos rayones a lo largo de esta y solamente al acomodarlo en
una vara de las mismas dimensiones (la que tena el receptor del
mensaje) y en la misma disposicin de la tira al momento de
escribirle es que se poda leer el texto. Un particular detalle de
este sistema es que se poda llegar replicar la vara en sus
medidas y por tanto el mensaje era descubierto.1
Siglos despus, durante el imperio de Julio Csar se extendi un
sistema homnimo de carcter monogrfico (esto nos dice que a cada
letra le era asignado un solo valor de encriptacin) el cul
consista en desplazar el abecedario una determinada cantidad de
veces sobre s mismo, obteniendo as una relacin entre los pares
de letras que se formaban. Este sistema tena el defecto de ser
muy simple, bastaba con emplear algo de tiempo resolviendo los
pocos posibles mensajes ocultos en el cdigo.1
//Insertar imagen de modelo lineal de sustitucin
(https://www.google.com.mx/search?q=Caesar+cipher&safe=images&sour
ce=lnms&tbm=isch&sa=X&ved=0ahUKEwjj5eXpnOjTAhXLy1QKHZEpBIoQ_AUIBig
B&biw=1366&bih=638#imgrc=0mNET9EN_jC4EM:)

Surge en el siglo XV otro interesante mtodo, aunque inventado por


Leon Alberti, se le atribuy el nombre de Cifrado de Vigenere
por la creencia de que haba sido inventado por Blaise de Vigenere
debido a su labor de perfeccionar este sistema y no se desminti
la idea sino hasta el siglo XIX. Este fue el primer sistema
poligrfico (se genera ms de un proceso de encriptado, lo que
permite que a una letra se le pueda asignar ms de una
correspondiente) y por tal motivo se mantuvo vigente durante
siglos. Incluso en 1917 la revista Scientific American describi
el sistema como un cifrado imposible de romper aunque algunos
pudieron romperlo en diversos momentos desde su invencin.1
// Insertar tabla de vigenere
(https://www.google.com.mx/search?q=escitala&safe=off&source=lnms&
tbm=isch&sa=X&ved=0ahUKEwjj-
IWJnejTAhXJylQKHQz9Au0Q_AUICigB&biw=1366&bih=638)

El criptosistema de Hill //subttulo


Es un sistema poligrfico desarrollado por Lester S. Hill en 1929.
Tiene la cualidad de utilizar el lgebra lineal como base de
desarrollo, al transformar el mensaje en vectores y matrices
asignndole a cada letra un valor numrico. Todo el proceso
requiere una llave para transformar el mensaje y el cdigo. Al
tratarse de nmeros en una matriz, la llave poda ser
prcticamente imposible de averiguar.
Debido a esa misma complejidad, el mtodo era difcilmente
empleado para uso cotidiano. Fue hasta que Hill invent una
mquina basada en engranes y cadenas, que el trabajo matemtico
del cifrado pas a ser realizado en tiempo real y entonces tom
ms protagonismo dicho sistema.

Metodologa
Resulta elemental para el proyecto, a la hora de experimentar e
interpretar los resultados, conocer el algoritmo para encriptar lo
que se conoce como mensaje original o sin formato (plaintext). Lo
que bsicamente se logra teniendo los conocimientos en lgebra
lineal sobre inversin de matrices y el operador modulo.

El sistema funciona a partir de la asignacin de un valor numrico


a cada letra del abecedario
Utilicemos el abecedario estndar de 26 letras.
A B C D E F G H I J K L M

0 1 2 3 4 5 6 7 8 9 10 11 12

N O P Q R S T U V W X Y Z

13 14 15 16 17 18 19 20 21 22 23 24 25

Tabla 1.2?

Como podemos ver, el primer paso es crear la equivalencia


numrica lineal del abecedario, esto nos permite entender la
trascendencia que tuvo el cifrado de Csar.
Ya que se tiene esta regla de conversin se procede a
desarrollar una matriz llave. Es muy importante saber que las
matrices llave deben ser cuadradas (Mnn), esto es que tengan la
misma cantidad de columnas como de filas y contendr elementos
de mdulo F -en este caso 26- que son todos los nmeros
naturales debajo de F empezando por 0.
Mod F (N {0 (F-1)} )
Por ltimo, la matriz llave debe de ser invertible. Esto es
crucial para terminar el proceso, pues cualquier matriz
cuadrada que cumpla con las condiciones anteriores puede
modificar el mensaje, pero solo una matriz invertible puede
regresar el mensaje encriptado a su forma original. Una matriz
resulta invertible si su determinante no es cero ni factor
comn de la base del mdulo.

Si det A-1 =/= 0 v cmdf -> modf

Teniendo la llave, se procede a segmentar el mensaje en grupos


de n caracteres determinados por la dimensin de la matriz. Se
sabe ya que la multiplicacin de matrices es posible slo si
la cantidad de columnas de la primer matriz y la cantidad de
filas de las segunda son iguales. Cada segmento del mensaje o
grupo de letras se va a determinar como un vector, estos
vectores sern organizados a manera de vector columna para
poder realizar el producto matricial.

A*B= AB <-> (Ann v Amn) ^ (Bnn v Bnx)


Todas las operaciones aritmticas se realizan en la forma
mdulo 26, es decir que se va a repetir el conteo en la manera
modf= [(mxy / f ) (N {m / f })f ] donde f es la base del
mdulo, mxy es cada elemento del producto de las matrices, y N
la parte de enteros del cociente inicial, esto nos deja con el
residuo de la divisin
//EDITAR vvvvvv

Dado un mensaje a encriptar debemos tomar bloques del mensaje de "d" caracteres y
aplicar:
Teniendo ya un mensaje que deseemos encriptar, se debe descomponer este en bloques
de x caracteres, donde x es igual a la cantidad de filas de la matriz llave. Esto es debido a la
condicin del producto de matrices que dice que se pueden multiplicar matrices cuando la
cantidad de columnas de la primera es igual a la cantidad de filas de la segunda, resultando
una matriz con el nmero de filas de la primera y el nmero de columnas de la segunda.
Amn * Bno = ABmo [5]
Lo que sigue es transformar cada uno de los caracteres al equivalente numrico en relacin
a su posicin en el abecedario, resultando para cada letra un valor entre 0 y x-1 donde x es
el nmero de caracteres que enlistaremos. (Vase tabla 1.2)

Ejemplo:
Le daremos contexto a todo lo explicado anteriormente.

Nuestro mensaje ser la palabra LINEAL.


Utilizaremos la matriz llave:

Con el fin de cifrar el mensaje sin formato "LINEAL" debemos encriptar cada uno de los seis
caracteres de "LINEAL". Debido a que utilizamos una matriz llave A33 tendremos que dividir
el mensaje en grupos de 3 caracteres.
A cada carcter se le asigna el valor numrico de modulo 26 que le corresponde. Dicho de
otra manera: el conjunto {L, I, N} ser el vector O1= [L, I, N] mod26 = [11, 8, 13] y el conjunto
{E, A, L} ser el vector O2 = [E, A, L] mod26 = [4, 0, 11]
//El modelo sera as, obviamente utilizaremos la palabra LINEAL, entonces
P1=LIN= [11,

Teniendo la matriz llave y todos los vectores resultantes del mensaje original.
Procedemos a hacer la multiplicacin de cada una

El primer bloque "COD" se codificara como "WLP"

El segundo bloque "IGO" se codificara como "GSE"

Luego 'CODIGO' encriptado equivale a 'WLPGSE'.

Observar que las dos "O" se codificaran de forma diferente.

Para desencriptar el mtodo es idntico al anterior pero usando la matriz inversa de


la usada para encriptar.

Para ver si es invertible calculo el determinante de A


5 (23 13 3 11) 17 (9 13 3 2) + 20 (9 11 23 2) =

1215 1734 + 1060 = 503

503 = 9 mod 26

La matriz A es invertible en mdulo 26 ya que 26 y 9 son coprimos

Para hallar la inversa de la matriz mdulo 26, utilizamos la

formula

Donde CT es la matriz de cofactores de A transpuesta

Hay que tener en cuenta que debe realizarse en modulo 26

Por tanto para el ejemplo la inversa de 9 (mod 26) es 3 (mod 26) ya que

9 (mod 26) 3 (mod 26) = 27 mod 26 = 1 (mod 26)

Por lo tanto 3 es la inversa multiplicativa de 9 en modulo 26

Para calcular C hay que calcular los cofactores de A


REFERENCIAS:

1. Holden, J. (2017) The Mathematics of Secrets. Cryptography from Caesar cipher to


digital encryption. New Jersey: Princeton University Press.

2. Bauer, Craig P. (2013) Secret history: The story of cryptology. Florida: CRC Press.

3. Baumslag et al. (2015) A Course in Mathematical Cryptography. Berln: De Gruyter.

4. Dooley, J. F. (2013) A brief History of Criptology and Criptographic Algorithms.


Springer.

5. Lay, Lay & McDonald (2016) Linear Algebra and its Applications. E.U.A: Pearson.

S-ar putea să vă placă și