Cifrado de Hill
Codifica y descodifica el cifrado de Hill, el clásico cifrado poligráfico construido sobre el álgebra lineal. Las letras se agrupan en bloques, se convierten en vectores de números y se multiplican por una matriz clave módulo 26: cifrar es C = K·P, descifrar es P = K⁻¹·C. Elige una clave de 2×2 o 3×3, observa en vivo la matriz, su determinante y su inverso modular, y sigue el desarrollo bloque a bloque. Todo se ejecuta en tu navegador.
Clave (letras)
La clave tiene 4 letras (A=0 … Z=25) que llenan la matriz fila por fila. Una clave de 2×2 cifra las letras por pares (dígrafos).
Introduce texto arriba para ver el resultado aquí.
Matriz clave
Cada bloque de letras se convierte en un vector (A=0 … Z=25) y se multiplica por la matriz clave módulo 26. Una clave solo funciona cuando su determinante es invertible mod 26.
C = K · P (mod 26)
Introduce exactamente 4 letras (A–Z) para llenar la matriz clave.
Cómo usar Cifrado de Hill
- 1
Elige cifrar o descifrar y un tamaño de matriz
Selecciona Cifrar para cifrar o Descifrar para descifrar, luego elige una clave de 2×2 (letras por pares) o una clave de 3×3 (letras en grupos de tres).
- 2
Introduce la clave como letras
Escribe las letras de la clave que llenan la matriz fila por fila — cuatro letras para una clave de 2×2, nueve para una de 3×3. La matriz en vivo muestra el determinante y te dice si la clave es invertible mod 26.
- 3
Escribe o pega tu texto
Introduce tu mensaje y se convierte a medida que escribes. El panel de desarrollo muestra cada bloque como un vector, la multiplicación de matrices y el bloque resultante.
- 4
Revisa la matriz clave y el inverso
Abre el panel de la matriz clave para ver la clave, su determinante y — cuando la clave es válida — la matriz inversa modular usada para descodificar.
- 5
Copia, descarga o comparte
Copia el resultado, descárgalo como archivo de texto o comparte un enlace que vuelve a abrir la herramienta con tu texto, tu clave, tu tamaño y tu dirección exactos, listos para usar.
Entender el cifrado de Hill
¿Qué es el cifrado de Hill?
El cifrado de Hill es un cifrado clásico de sustitución poligráfica inventado por el matemático estadounidense Lester S. Hill en 1929. En lugar de reemplazar una letra cada vez, cifra todo un bloque de letras a la vez tratando el bloque como un vector de números y multiplicándolo por una matriz clave secreta, módulo 26. Fue el primer cifrado práctico capaz de operar sobre más de tres símbolos a la vez, y trajo el álgebra lineal de lleno a la criptografía.
Como cada letra de salida depende de todas las letras de entrada de su bloque, el cifrado de Hill oculta las frecuencias de letras sueltas que delatan a los cifrados más simples. Una clave de 2×2 mezcla las letras por pares, una clave de 3×3 las mezcla en grupos de tres, y matrices mayores mezclan bloques aún más grandes. Esa difusión es la misma idea que subyace a los cifrados de bloque modernos, lo que convierte al cifrado de Hill en un ejemplo didáctico favorito — aunque, al ser un cifrado lineal, es fácil de romper con un poco de texto plano conocido.
Cómo funciona el cifrado de Hill
Primero, convierte las letras en números con A=0, B=1, hasta Z=25. La clave es una matriz n×n de esos números; aquí la escribes como una serie de letras que llenan la matriz fila por fila, así que una clave de 2×2 necesita cuatro letras y una de 3×3 necesita nueve. El texto plano se divide en bloques de n letras, cada uno escrito como un vector columna.
Para cifrar un bloque P, calcula C = K · P (mod 26): multiplica la matriz clave por el vector y reduce cada entrada módulo 26, luego lee los números de vuelta como letras. Para descifrar, necesitas el inverso modular de la matriz clave, K⁻¹, y calcular P = K⁻¹ · C (mod 26). El inverso existe solo cuando el determinante de la matriz es invertible módulo 26 — es decir, cuando no comparte ningún factor común con 26 — que es la regla más importante a la hora de elegir una clave.
Elegir una matriz clave válida
No toda matriz puede ser una clave de Hill. Para que la descodificación funcione, el determinante de la clave, tomado módulo 26, debe ser coprimo con 26. Como 26 = 2 × 13, el determinante debe ser impar y no múltiplo de 13; los valores permitidos son los doce números 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25. Si el determinante es par o igual a 13, no existe ningún inverso modular y el texto cifrado no se puede descodificar de forma única.
La herramienta calcula el determinante por ti y muestra una insignia verde cuando la clave es invertible o una roja cuando no lo es, junto a la matriz inversa que usará para descodificar. Si se rechaza una clave, cambia una o dos letras y observa cómo se actualiza el determinante hasta que aterrice en un valor válido. Esta retroalimentación en vivo convierte la tarea, por lo demás engorrosa, de elegir a mano una clave de Hill en un ejercicio rápido y visual.
Un ejemplo práctico de 2×2
Toma la clave DDCF, que llena la matriz de 2×2 con los números 3, 3 en la fila superior y 2, 5 en la inferior. Su determinante es 3×5 − 3×2 = 9, y como 9 es coprimo con 26 la clave es válida. Ahora cifra HELP. El primer bloque HE es el vector (7, 4): al multiplicar se obtiene (3×7 + 3×4, 2×7 + 5×4) = (33, 34), que se reduce mod 26 a (7, 8) = HI.
El segundo bloque LP es (11, 15), dando (3×11 + 3×15, 2×11 + 5×15) = (78, 97) = (0, 19) = AT. Así que HELP se cifra como HIAT. Para descifrar, la herramienta invierte la clave a (15, 17 / 20, 9) y multiplica cada bloque cifrado por ella, recuperando HELP. Escribe DDCF como clave arriba para ver aparecer cada paso en el panel de desarrollo en vivo.
Un ejemplo práctico de 3×3
El ejemplo clásico de 3×3 usa la clave GYBNQKURP, que llena la matriz con 6, 24, 1 en la primera fila, 13, 16, 10 en la segunda, y 20, 17, 15 en la tercera. Cifrar el trígrafo ACT — el vector (0, 2, 19) — da (67, 222, 319) antes de reducir, que se convierte en (15, 14, 7) módulo 26, o POH.
El determinante de esta matriz es 25 módulo 26, que es coprimo con 26, así que es una clave válida, y su inverso modular es la matriz (8, 5, 10 / 21, 8, 21 / 21, 12, 8). Multiplicar el bloque cifrado POH por ese inverso devuelve ACT. Cambia el selector de tamaño a 3×3 e introduce GYBNQKURP para reproducir este ejemplo de manual y ver la matriz inversa que deriva la herramienta.
Relleno, letras y formato
El cifrado de Hill solo conoce las 26 letras A–Z, así que los espacios, los dígitos y la puntuación se eliminan antes de cifrar y no vuelven cuando descifras. Como el mensaje se procesa en bloques de tamaño fijo, un texto plano cuya longitud no es múltiplo del tamaño de bloque se rellena con la letra X para completar el último bloque; por tanto, un mensaje descifrado puede terminar en una o dos letras extra.
El uso de mayúsculas y minúsculas no se conserva — todo se trata como mayúsculas. Estas limitaciones son inherentes al cifrado clásico y no a esta herramienta, y son parte de por qué el cifrado de Hill, como sus contemporáneos, se usaba para mensajes tácticos cortos en lugar de texto libre. El desglose en vivo muestra exactamente cómo se agrupa y se rellena tu texto en bloques.
Seguridad y criptoanálisis
La fortaleza del cifrado de Hill es también su debilidad fatal: es lineal. Cada bloque cifrado es una función lineal fija del bloque de texto plano, así que un atacante que conozca suficientes pares de bloques texto plano–texto cifrado puede plantear y resolver un sistema de ecuaciones lineales para recuperar directamente la matriz clave. Para una clave n×n, aproximadamente n bloques conocidos suelen bastar, lo que hace que el cifrado caiga rápidamente ante un ataque de texto plano conocido.
Tampoco ofrece difusión entre bloques ni confusión más allá de la mezcla lineal, así que bloques de texto plano idénticos siempre se cifran a bloques cifrados idénticos. Según los estándares modernos no es seguro, y nunca deberías usarlo para proteger información real — recurre en su lugar a un algoritmo verificado como AES. Sin embargo, como ilustración clara y práctica de cómo encajan las matrices, la aritmética modular y el cifrado de bloque, el cifrado de Hill sigue siendo uno de los mejores cifrados clásicos para aprender.
Preguntas frecuentes
¿Qué es el cifrado de Hill?
¿Cómo funciona el cifrado de Hill?
¿Cómo elijo una clave válida para el cifrado de Hill?
¿Puedes mostrar un ejemplo práctico del cifrado de Hill?
¿Cómo se descodifica un cifrado de Hill?
¿Cuál es la diferencia entre un cifrado de Hill de 2×2 y uno de 3×3?
¿Por qué mi clave dice que no es invertible?
¿Qué pasa con los espacios, los números y la puntuación?
¿Es seguro el cifrado de Hill?
¿Quién inventó el cifrado de Hill?
¿Qué es el inverso modular de una matriz?
¿Se sube mi texto a un servidor?
Herramientas relacionadas
Sigue trabajando con estas prácticas herramientas