Este sistema está basado en el álgebra
lineal y ha sido importante en la historia de la criptografía. Fue Inventado
por Lester S. Hill en 1929, y fue el primer sistema criptográfico polialfabético que era práctico para trabajar con más de tres símbolos simultáneamente.
Este sistema es polialfabético pues
puede darse que un mismo caracter en un mensaje a enviar se encripte en dos
caracteres distintos en el mensaje encriptado.
Suponiendo que trabajamos con un
alfabeto de 26 caracteres.
Las letras se numeran en orden
alfabético de forma tal que A=0, B=1, ... ,Z=25
Se elije un entero d que determina bloques
de d elementos que son tratados como un vector de d dimensiones.
Se elije de forma aleatoria una matriz
de d × d elementos los cuales serán la clave a utilizar.
Los elementos de la matriz de d × d
serán enteros entre 0 y 25, además la matriz M debe ser invertible en .
Para la encriptación, el texto es
dividido en bloques de d elementos los cuales se multiplican por la matriz d ×
d
Todas las operaciones aritméticas se
realizan en la forma modulo 26, es decir que 26=0, 27=1, 28=2 etc.
Dado un mensaje a encriptar debemos
tomar bloques del mensaje de "d" caracteres y aplicar:
M×Pi=C, donde C es el código
cifrado para el mensaje Pi
Ejemplo:
Para encriptar el mensaje "CODIGO" debemos encriptar los seis caracteres de "CODIGO" en bloques de 3 caracteres cada uno, el primer bloque
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 método es idéntico
al anterior pero usando la matriz inversa de la usada para encriptar.
Cálculo de la matriz inversa
Antes que nada debemos verificar que la
matriz elegida sea invertible en modulo 26. Hay una forma relativamente
sencilla de averiguar esto a través del cálculo del determinante. Si el
determinante de la matriz es 0 o tiene factores comunes con el módulo (en el
caso de 26 los factores son 2 y 13), entonces la matriz no puede utilizarse. Al
ser 2 uno de los factores de 26 muchas matrices no podrán utilizarse (no
servirán todas en las que su determinante sea 0, un múltiplo de 2 o un múltiplo
de 13)
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 modulo 26
ya que 26 y 9 son coprimos
Donde CT es la matriz de cofactores de A
transpuesta
por lo 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
Ahora aplicamos la formula de la inversa
Esta última es la matriz que utilizamos
para desencriptar
PROGRAMA HILL AQUI
Hola compañeros, Con respecto a su página esta muy completa en cuanto a información lo único que me causo problemas es en la ejecución del algoritmo afin-afin y el ejecutable del algoritmo Hill.
ResponderEliminarCuiden el direccionamiento de cada pagina ya que al abrir las paginas en pestañas diferentes hace que uno se confunda
NOTA: El equipo 2 a tenido problemas con su servidor y pagina por lo cual se tomo la decisión de cambiar la pagina y el nuevo linck de la pagina es:"http://plumaware.com/ulises/index1.html" por favor avísenles a los demás compañeros ya que no se lograron rescatar los mensajes hechos en fechas anteriores. GRACIAS