homechevron_rightProfesionalchevron_rightCriptografía

Cifrado Hill

Esta calculadora usa el código Hill para cifrar/descifrar un bloque de texto

Según la definición de Wikipedia, en la criptografía clásica, el cifrado Hill es un cifrado de sustitución poligráfico basado en el álgebra lineal. Inventado por Lester S. Hill en 1929, fue el primer cifrado poligráfico en el que era práctico (aunque apenas) operar con más de tres símbolos a la vez. La explicación del cifrado que está debajo de la calculadora supone un conocimiento elemental de las matrices.

PLANETCALC, Cifrado Hill

Cifrado Hill

Todos los símbolos que van a ser cifrados deben pertenecer al alfabeto
Texto transformado
 

Cómo funciona

En primer lugar, los símbolos del alfabeto utilizado (el alfabeto como conjunto de símbolos, por ejemplo, el alfabeto de la calculadora anterior incluye símbolos de espacio, coma y punto) se codifican con dígitos, por ejemplo, el número de orden del símbolo en el conjunto. Luego elegimos una matriz de tamaño n x n, que será la clave de la codificación. El texto se divide en bloques de tamaño n, y cada bloque forma un vector de tamaño n. Cada vector se multiplica por una matriz de claves de n x n. Como resultado, el vector de tamaño n es un bloque de texto cifrado. Se utiliza aritmética modular, es decir, todas las operaciones (suma, resta y multiplicación) se realizan en el anillo de números enteros, donde el módulo es m - la longitud del alfabeto. Esto nos permite forzar los resultados para que pertenezcan al mismo alfabeto.

Aunque la clave es la matriz, es conveniente utilizar la frase clave que se transforma en la representación de los dígitos y en la matriz. Obviamente, para crear la matriz de n x n, la longitud de la frase clave debe ser el cuadrado de un número entero, es decir, 4, 9, 16, etc.

La necesidad de descifrar el texto cifrado impone restricciones adicionales a la clave.

Y, para que esto suceda, necesitamos tener el inverso modular de la matriz de la clave en {Z}}_{{m}}^{n} - un anillo de enteros módulo m.

De hecho, si el vector fuente B se multiplica por la matriz A para obtener el vector C, entonces para restaurar el vector B a partir del vector C (descifrar el texto) es necesario multiplicarlo por el inverso modular de la matriz.

BA=C \to CA^{-1}=BAA^{-1}=BE=B

Por lo tanto, tienen las siguientes restricciones:
El determinante de la matriz no debe ser igual a cero y, además, el determinante de la matriz debe tener un inverso multiplicador modular.

Esto último viene impuesto por la fórmula

A^{-1} = \frac{1}{\det A}\cdot C^* \to A^{-1} = (det A)^{-1}\cdot C^*.

donde la operación de división es sustituida por la operación de multiplicación por el inverso multiplicativo modular.

Para tener un inverso multiplicativo modular, el determinante y el módulo (longitud del alfabeto) deben ser números enteros coprimos, véase Inverso Multiplicativo Modular. Para aumentar la probabilidad de esto, el alfabeto se expande de manera que su longitud se convierte en un entero primo. Por eso el alfabeto inglés de la calculadora anterior se expande con espacio, coma y punto hasta 29 símbolos, ya que 29 es un entero primo.

No todas las frases clave están calificadas para ser la clave. Sin embargo, todavía hay más que suficientes.

Creative Commons Attribution/Share-Alike License 3.0 (Unported) PLANETCALC, Cifrado Hill

Comentarios