Cifrado Hill 3×3
Con la clave 6,24,1,13,16,10,20,17,15, la palabra ACT se cifra como POH: cada bloque de tres letras se multiplica por la matriz módulo 26, así que cada letra cifrada depende de tres letras originales. Incluye la matriz inversa para descifrar. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- ACT
- Key
- 6,24,1,13,16,10,20,17,15
- Modo de cálculo
- Encrypt
- Resultado
- POH
- Det
- 25
- Det. inverso
- 25
- Longitud
- 3
El cifrado Hill 3×3 es una sustitución poligráfica clásica inventada por Lester S. Hill que multiplica bloques sucesivos de tres letras por una matriz clave entera de tres por tres módulo veintiséis. El cifrado transforma vectores de texto claro en criptograma con C igual a K por P mod 26; el descifrado multiplica por la inversa modular de K cuando el determinante es coprimo con veintiséis. A diferencia de mapas monoalfabéticos como César o Atbash, cada letra del criptograma depende de tres letras del claro, lo que debilita el análisis de frecuencias de una sola letra y convierte el cifrado en un paso didáctico habitual hacia el álgebra lineal sobre anillos modulares. Se usa en deberes de criptoanálisis, calentamientos de CTF, demostraciones de álgebra lineal y libros de acertijos que necesitan un cifrado por bloques reversible con clave numérica corta. Esta capacidad acepta texto no vacío, una clave de nueve números en orden por filas y un modo opcional de cifrado o descifrado; devuelve el flujo de letras transformado más el determinante, la matriz inversa, el relleno y el número de bloques.
Reglas de validación, matrices invertibles y errores habituales
La regla de producto decisiva es que la matriz clave sea invertible módulo veintiséis: el mcd del determinante reducido mod 26 con veintiséis debe ser uno para que exista una matriz inversa modular. Si det de K es par o comparte el factor trece con veintiséis, el mapa no es biyectivo y el descifrado sería imposible; la herramienta informa de una matriz clave no invertible en lugar de devolver un revolcado unidireccional.
Dígitos, espacios y puntuación del cuerpo se ignoran en vez de cifrarse, de modo que solo el flujo de letras forma la cuadrícula de bloques; si no quedan letras tras el filtrado, la petición falla. No trate la salida como cifrado de confidencialidad: el espacio de claves de matrices modulares pequeñas es minúsculo con estándares actuales, los ataques de texto claro conocido recuperan K con pocos triples emparejados, y la página de producto no debe vender Hill como control de seguridad para contraseñas, tokens o datos personales.
Prefiera esta landing cuando la intención de búsqueda sea cifrado Hill 3x3, Hill cifrar descifrar matriz o cifrado poligráfico tres por tres; afín y multiplicativo resuelven mapas modulares de una letra, Playfair resuelve digrafos en cuadrado y Base64 es codificación, así que siguen siendo herramientas distintas. Al descifrar use los mismos nueve números de clave que generaron el criptograma y la misma convención de relleno; una matriz incorrecta produce un mapa lineal distinto que no coincidirá con el texto original.
Dónde se usa la versión 3×3 y sus límites
Use el cifrado Hill 3×3 gratuito en el navegador para comprobar deberes, diapositivas sobre matrices en Z veintiséis, práctica de CTF y cifrados o descifrados puntuales sin escribir la inversa modular de matrices en cada lenguaje. Un flujo típico de aula muestra que los cifrados monoalfabéticos son mapas uno a uno, introduce la multiplicación por bloques con una matriz invertible fija, calcula det a mano y comprueba que solo los determinantes coprimos descifran. Los manuales de soporte pueden revertir notas ligeramente ofuscadas que el personal escribió con claves docentes conocidas.
Los sitios de acertijos pueden precalcular respuestas y revelarlas bajo demanda con mode decrypt. Combínela con análisis de frecuencias u otras herramientas clásicas solo cuando un paso didáctico posterior necesite otra familia de cifrado: mantenga la landing Hill tres por tres con su propia intención SEO en torno a la sustitución poligráfica por matriz de nueve números.
Qué puede hacer con ella
Deberes de álgebra lineal y criptoanálisis
El alumnado cifra frases cortas con una matriz 3×3 conocida, calcula det e inversa mod 26 y descifra criptogramas de compañeros sin instalar un CAS.
Calentamientos de CTF y libros de acertijos
Los autores de retos entregan una clave de nueve números y un bloque Hill; los solucionadores recuperan el claro con mode decrypt si la matriz es invertible.
Preguntas frecuentes
¿Cómo cifro texto con el cifrado Hill 3×3?
El campo result de la respuesta contiene las letras del criptograma en mayúsculas.
¿Cómo descifro un criptograma Hill?
Envíe el criptograma como text, los mismos nueve números de clave usados al cifrar y mode decrypt (o decode). El result es el flujo de letras reconstruido cuando la clave es invertible y coincide.
¿Qué ocurre si la matriz clave no es invertible?
El mapa Hill solo es biyectivo cuando gcd(det(K) mod 26, 26) vale 1.
¿Es gratuito el cifrado Hill 3×3?
La herramienta del navegador se ejecuta gratis en su dispositivo.
¿Es el cifrado Hill un cifrado seguro?
No. Hill es un cifrado poligráfico clásico para acertijos y enseñanza de álgebra lineal, no para confidencialidad. Nunca lo use para contraseñas ni datos sensibles.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/enc/hill-3x3 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"ACT","key":"6,24,1,13,16,10,20,17,15"}'const res = await fetch("https://api.kit.forhosting.com/enc/hill-3x3", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "ACT",
"key": "6,24,1,13,16,10,20,17,15"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/hill-3x3",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "ACT",
"key": "6,24,1,13,16,10,20,17,15"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/hill-3x3", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"ACT","key":"6,24,1,13,16,10,20,17,15"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"ACT","key":"6,24,1,13,16,10,20,17,15"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/hill-3x3", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "ACT",
"key": "6,24,1,13,16,10,20,17,15"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.hill_3x3",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Cuando la matriz clave no es invertible módulo veintiséis, la petición falla con invalid_input y un mensaje claro de matriz no invertible.
Cómo funciona el mapa Hill 3×3 y qué contiene la respuesta
El cifrado trata cada letra latina como un número de cero a veinticinco, agrupa el flujo en triples sucesivos, multiplica cada vector columna por la matriz clave K de tres por tres y reduce cada coordenada módulo veintiséis antes de devolver letras mayúsculas. Solo participan A–Z y a–z: se convierten a mayúsculas y se eliminan los no letras para que el alineado de bloques sea determinista con espacios y puntuación. Si el recuento de letras no es múltiplo de tres, el motor rellena con la letra X al final, convención clásica de enseñanza para el último bloque incompleto. El descifrado recupera el texto claro calculando la matriz inversa modular de K tal que K por su inversa es la identidad mod 26, y luego multiplica cada triple del criptograma por esa inversa. Envíe JSON con el campo de cadena obligatorio text en cualquier mensaje no vacío, la clave obligatoria con nueve enteros en orden por filas como cadena separada por comas, un array plano de nueve números o un array anidado tres por tres, y el modo opcional con valor predeterminado encrypt. Los alias input, value, s, message, plaintext y ciphertext valen para el cuerpo; matrix, key_matrix, k y key_numbers para la clave; op, action, direction y operation para el modo. En caso de éxito la respuesta incluye result con el criptograma o el claro en mayúsculas, mode normalizado a encrypt o decrypt, key como matriz tres por tres reducida mod 26, key_flat con las nueve entradas, key_inv como matriz inversa usada al descifrar, det y det_inv para el determinante y su inversa mod 26, length igual al recuento original de caracteres, letters_used tras el relleno, el recuento de padding, blocks igual a letters_used entre tres, y method igual a hill_3x3 para que los clientes enramen sin adivinar la forma. Entradas idénticas producen siempre el mismo JSON porque el camino es aritmética modular pura, sin red, sin semilla aleatoria y sin reloj de pared.
Reglas de validación, matrices invertibles y errores habituales
Un text ausente, no cadena o vacío eleva invalid_input y no se cobra en la API de prepago tras el rechazo del motor. Una clave con menos o más de nueve enteros, entradas no enteras, flotantes o tokens vacíos también falla con invalid_input.
Uso de la API, precio, aula y límites prácticos
Emplee la API prepago de KIT cuando un backend, función serverless, plataforma de tutoría o SDK necesite un contrato estable bajo saldo a $0.002 por ítem correcto; los fallos de validación no consumen saldo tras el rechazo. Quienes publiquen SDK pueden mapear el campo result a un botón de copiar mientras key, key_inv, det y method hacen autoexplicativos los ejemplos OpenAPI. Mantenga las cargas en tamaños de texto ordinarios adecuados a una llamada item en un isolate Worker; esta herramienta es para mensajes y fragmentos, no para binarios multi-megabyte.
Casos de integración
Pipelines y fixtures de CI
Scripts y pruebas de integración continua fijan salidas Hill deterministas y el error de matriz no invertible para detectar fallos de inversa o determinante al instante.