🔐 Criptografía · Álgebra Lineal

Método de Hill

Proceso de Encriptación de un Mensaje — Mapa Conceptual

01PASO
📝 Definir el Mensaje Original (Texto Plano)
Se escribe el mensaje que queremos cifrar. Solo se usan letras del alfabeto (A–Z). Si el mensaje tiene un número impar de letras según el tamaño de bloque elegido, se agrega una letra de relleno como la X.
// Ejemplo de mensaje
Mensaje: "HOLA"
// Longitud = 4 → bloques de 2 → OK ✓
Texto plano Solo letras A-Z Relleno con X si es necesario
02PASO
🔢 Convertir Letras a Números
Cada letra se reemplaza por su posición en el alfabeto usando la asignación A=0, B=1, C=2 … Z=25. Así convertimos el texto en valores numéricos con los que podemos operar matemáticamente.
H = 7   O = 14   L = 11   A = 0
// Vector resultado: [7, 14, 11, 0]
A=0, B=1 … Z=25 Vector numérico
03PASO
🔑 Elegir la Matriz Clave (K)
Se selecciona una matriz cuadrada n×n que actúa como clave secreta. Es fundamental verificar que su determinante sea coprimo con 26, es decir, que mcd(det(K), 26) = 1. De lo contrario, no tendrá inversa modular y no se podrá descifrar.
[
3
3
2
5
]
det(K) = (3×5) − (3×2) = 9
mcd(9, 26) = 1✓ Válida
Clave secreta det(K) coprimo con 26 n×n donde n = tamaño del bloque
04PASO
📦 Dividir en Bloques de Tamaño n
El vector numérico se divide en grupos de n elementos, donde n es el tamaño de la matriz clave. Cada grupo se organiza como un vector columna para poder multiplicarlo por la matriz.
Vector: [7, 14, 11, 0]
Bloque 1: [7, 14] → columna
Bloque 2: [11, 0] → columna
n = tamaño de la matriz Bloques = vectores columna
05PASO
✖️ Multiplicar: K × Bloque (mod 26)
Se realiza la multiplicación matricial entre la clave K y cada bloque. El resultado se reduce en módulo 26 para mantener los valores dentro del rango del alfabeto (0–25). Este paso es el núcleo del método.
// Bloque 1: K × [7, 14]
[ 3×7 + 3×14 ] = [63] → 63 mod 26 = 11 = L
[ 2×7 + 5×14 ] = [84] → 84 mod 26 = 6 = G

// Bloque 2: K × [11, 0]
[ 3×11 + 3×0 ] = [33] → 33 mod 26 = 7 = H
[ 2×11 + 5×0 ] = [22] → 22 mod 26 = 22 = W
Multiplicación de matrices Aritmética modular mod 26 Resultado en rango [0, 25]
06PASO
Convertir los Números al Mensaje Cifrado
Los valores numéricos resultantes se vuelven a convertir en letras usando la misma tabla (0=A … 25=Z). La concatenación de todas las letras da como resultado el mensaje cifrado final.
11 → L   6 → G   7 → H   22 → W
// Mensaje cifrado:
"HOLA" → cifrado → "LGHW"
Números → Letras Mensaje cifrado listo Solo descifrable con K⁻¹

⟶ Resultado Final del Proceso

"HOLA"
🔑 ✕ K
"LGHW"

Texto Plano  →  [Números]  →  [Bloques]  →  K × Bloque mod 26  →  [Números]  →  Texto Cifrado