El cifrado de Hill es un cifrado de sustitución de poligramas basado en álgebra lineal y aritmética modular . Inventado por el matemático estadounidense Lester Hill en 1929. Fue el primer cifrado que hizo posible en la práctica (aunque con dificultad) operar simultáneamente con más de tres caracteres. El cifrado de Hill no ha encontrado aplicación práctica en criptografía debido a la débil resistencia al cracking ya la falta de una descripción de los algoritmos para generar grandes matrices directas e inversas.
El cifrado de Hill se describió por primera vez en el artículo "Criptografía en un alfabeto algebraico" [1] , publicado en The American Mathematical Monthly en junio-julio de 1929. En agosto de ese año, Hill amplió el tema y pronunció un discurso sobre criptografía ante la American Mathematical Society en Boulder, Colorado [2] . Su conferencia más tarde condujo a un segundo artículo, "Sobre ciertos aparatos de criptografía de transformación lineal" [3] , que se publicó en The American Mathematical Monthly en marzo de 1931. David Kahn , en su Code Breakers , describió el cifrado de Hill y su lugar en la historia de la criptografía [4] de la siguiente manera:
Hill fue uno de los que desarrollaron un método general y poderoso. Además, el cifrado de Hill transfirió por primera vez la criptografía mediante poligramas a la categoría de disciplinas prácticas.
Texto original (inglés)[ mostrarocultar] Pero solo Hill ideó un método de poder y generalidad. Además, su procedimiento de criptografía poligráfica es práctico por primera vez.El cifrado de Hill es un cifrado de poligrama que puede usar bloques grandes usando álgebra lineal. A cada letra del alfabeto se le asigna un número módulo 26. Para el alfabeto latino, a menudo se usa el esquema más simple: A = 0, B = 1, ..., Z = 25, pero esta no es una propiedad esencial del cifrado. . Un bloque de n letras se trata como un vector n - dimensional y se multiplica módulo 26 por una matriz n × n . Si se usa un número mayor que 26 como base del módulo, entonces se puede usar un esquema numérico diferente para hacer coincidir las letras de los números y agregar espacios y puntuación [5] . Los elementos de la matriz son la clave. La matriz debe ser invertible para que la operación de descifrado sea posible [6] [7] .
Para n = 3, el sistema se puede describir de la siguiente manera:
o en forma matricial:
o
donde y son vectores de columna de altura 3 que representan el texto sin formato y el texto cifrado, respectivamente, y es una matriz de 3 × 3 que representa la clave de cifrado. Las operaciones se realizan módulo 26.
Para descifrar el mensaje, se requiere obtener la matriz de clave inversa . Existen métodos estándar para calcular matrices inversas (ver formas de encontrar una matriz inversa ), pero no todas las matrices tienen una inversa (ver matriz inversa ). Una matriz tendrá una inversa si y solo si su determinante es distinto de cero y no tiene divisores comunes con el módulo base [8] . Si el determinante de una matriz es cero o tiene un divisor común con el módulo base, entonces esa matriz no se puede usar en un cifrado de Hill, y se debe elegir otra matriz (de lo contrario, el texto cifrado será indescifrable). Sin embargo, las matrices que satisfacen las condiciones anteriores existen en abundancia [6] .
En general, el algoritmo de cifrado se puede expresar de la siguiente manera [6] [9] :
Cifrado: .
Descifrado: .
En el siguiente ejemplo [7] , se utilizan letras latinas de la A a la Z, los valores numéricos correspondientes se dan en la tabla.
A | B | C | D | mi | F | GRAMO | H | yo | j | k | L | METRO | norte | O | PAGS | q | R | S | T | tu | V | W | X | Y | Z |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | una | 2 | 3 | cuatro | 5 | 6 | 7 | ocho | 9 | diez | once | 12 | 13 | catorce | quince | dieciséis | 17 | Dieciocho | 19 | veinte | 21 | 22 | 23 | 24 | 25 |
Considere el mensaje "ACT" y la siguiente clave (GYBNQKURP en forma literal):
Esta matriz es invertible, ya que su determinante no es igual a cero y no tiene divisores comunes con el módulo base. El peligro de que el determinante de la matriz clave tenga divisores comunes con la base del módulo puede eliminarse eligiendo un número primo como base del módulo. Por ejemplo, en una variante más conveniente del cifrado de Hill, se agregan 3 caracteres adicionales ( espacio , punto y signo de interrogación) al alfabeto para aumentar la base del módulo a 29 [5] .
Dado que la letra "A" corresponde al número 0, "C" - 2, "T" - 19, el mensaje es un vector
Entonces el vector encriptado será
El vector corresponde al texto cifrado "POH". Ahora supongamos que nuestro mensaje fuera "CAT":
Ahora el vector encriptado será
Este vector corresponde al texto cifrado "FIN". Se puede ver que cada letra del texto cifrado ha cambiado. El cifrado de Hill logró la difusión según Shannon , y un cifrado de Hill n -dimensional puede lograr la difusión de n caracteres a la vez.
DescifradoMatriz de clave inversa:
Tomemos el texto cifrado del ejemplo "POH" anterior:
Este vector corresponde al mensaje "ACT".
El cifrado Hill estándar es vulnerable a un ataque de texto sin formato elegido porque utiliza operaciones lineales. Un criptoanalista que intercepte el par símbolo del mensaje/símbolo del texto cifrado podrá componer un sistema de ecuaciones lineales , que normalmente no es difícil de resolver. Si resulta que el sistema no tiene solución, solo necesita agregar algunos pares más de caracteres de mensaje/carácter de texto cifrado. Tales cálculos por medio de algoritmos de álgebra lineal convencionales requieren muy poco tiempo. En este sentido, para aumentar la fuerza criptográfica , habría que añadirle algunas operaciones no lineales. La combinación de operaciones lineales, como en el cifrado de Hill, y pasos no lineales condujo a la creación de una red de permutación-permutación (como la red de Feistel ). Por lo tanto, desde cierto punto de vista, los cifrados de bloques modernos pueden considerarse como un tipo de cifrados de poligramas [7] [8] .
Longitud de claveLa longitud de la clave es el logaritmo binario del número de todas las claves posibles. Hay matrices de n × n . Por lo tanto, es el límite superior de la longitud de la clave para un cifrado de Hill que utiliza matrices n × n . Este es solo un límite superior, ya que no todas las matrices son invertibles, y solo esas matrices pueden ser una clave. El número de matrices invertibles se puede calcular utilizando el teorema chino del resto . Una matriz es invertible módulo 26 si y solo si es invertible módulo 2 y módulo 13 [8] .
El número de matrices n × n invertibles módulo 2 y 13 es igual al orden del grupo lineal GL( n , Z 2 ) y GL( n , Z 13 ) respectivamente:
El número de matrices invertibles módulo 26 es igual al producto de estos números:
Además, sería prudente evitar demasiados ceros en la matriz clave, ya que reducen la difusión. Como resultado, resulta que el espacio de claves efectivo del cifrado estándar de Hill es de aproximadamente . Para un cifrado Hill de 5×5, esto sería de aproximadamente 114 bits. Obviamente, la fuerza bruta no es el ataque más eficaz contra el cifrado de Hill [7] .
Cuando se trabaja con dos caracteres a la vez, el cifrado de Hill no proporciona ninguna ventaja específica sobre el cifrado de Playfair e incluso es inferior en términos de fuerza criptográfica y facilidad de cálculo en papel. A medida que aumenta el tamaño de la clave, el cifrado rápidamente se vuelve inaccesible para los cálculos humanos en papel. El cifrado Hill de dimensión 6 se implementó mecánicamente. Hill y un socio recibieron una patente para un dispositivo ( Patente de EE. UU. 1,845,947 ) que realizaba una multiplicación de matrices de 6 × 6 módulo 26 utilizando un sistema de engranajes y cadenas. La ubicación de los engranajes (y, por lo tanto, la clave) no se podía cambiar para un dispositivo en particular, por lo que se recomendó el triple cifrado por razones de seguridad. Esta combinación fue muy fuerte para 1929 y muestra que Hill ciertamente entendió los conceptos de confusión y difusión. Sin embargo, el dispositivo era bastante lento, por lo que en la Segunda Guerra Mundial , las máquinas de Hill se usaron solo para cifrar el código de tres caracteres de las señales de radio [10] .