Cifrado multiplicativo
Con la clave 5, HELLO se convierte en JUDDS: cada letra se multiplica por su clave módulo 26 y, para descifrar, se usa su inverso, 21. Las claves que comparten un factor con 26 se rechazan, así el mensaje siempre se puede recuperar. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto
- HELLO
- Clave entera multiplicativa
- 5
- Modo de cálculo
- Encrypt
- Resultado
- JUDDS
- Entrada
- HELLO
- Clave mód
- 5
- Inverso de clave
- 21
El cifrado multiplicativo es un sistema monoalfabético clásico que multiplica el índice de cada letra por una clave entera secreta módulo veintiséis: la A del texto plano se mapea a cero, la B a uno, y así hasta la Z a veinticinco; luego C es k por P módulo veintiséis al cifrar, y el inverso modular de k restaura el original al descifrar.
Cómo funcionan la clave coprima y la multiplicación modular
El cifrado multiplicativo se entiende mejor como un cifrado César en el que la suma se sustituye por la multiplicación en el anillo de enteros módulo veintiséis. Escriba cada letra latina como un entero desde cero para A hasta veinticinco para Z. El cifrado multiplica ese índice por su clave secreta k y reduce módulo veintiséis; el descifrado multiplica por el inverso modular de k, el residuo único k inverso tal que k por k inverso es congruente con uno módulo veintiséis.
Ese inverso existe si y solo si el máximo común divisor del valor absoluto de k y veintiséis es uno —equivalente a que k sea impar y no múltiplo de trece. Los residuos positivos válidos son uno, tres, cinco, siete, nueve, once, quince, diecisiete, diecinueve, veintiuno, veintitrés y veinticinco; cualquier clave par o múltiplo de trece comparte un factor con veintiséis y se rechaza.
Se conserva el caso: una H mayúscula multiplicada por cinco se convierte en J, y una h minúscula en j, lo que mantiene legibles las frases de ejemplo en las demos. Los caracteres que no son letras —espacios, comas, dígitos dentro del cuerpo del mensaje, emoji— pasan sin cambios.
Qué puede hacer con ella
Verificación de CTF y puzzles
Los autores de desafíos comprueban el cifrado y descifrado multiplicativo para una clave coprima publicada sin mantener un script offline separado.
Demos de cripto histórica
Museos y demos de blogs muestran por qué solo las claves coprimas con veintiséis dan mapas reversibles cifrando en vivo frases de visitantes en el navegador.
Preguntas frecuentes
¿Qué es el cifrado multiplicativo?
El descifrado multiplica por el inverso modular de k.
¿Por qué la clave debe ser coprima con 26?
Solo cuando gcd(|key|, 26) = 1 la multiplicación por k es biyectiva mod 26, de modo que cada letra del cifrado mapea exactamente a una letra del plano. Los factores compartidos colapsan el alfabeto.
¿Qué claves son válidas?
Cualquier entero cuyo valor absoluto sea coprimo con 26. Residuos positivos mod 26: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25. Las claves pares y los múltiplos de 13 se rechazan.
¿Se cifran espacios y puntuación?
No. Solo A–Z y a–z se multiplican mod 26. Los demás caracteres pasan sin cambios.
¿El cifrado multiplicativo es gratis?
La herramienta del navegador es gratuita y se ejecuta en local.
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/multiplicative \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"HELLO","key":5}'const res = await fetch("https://api.kit.forhosting.com/enc/multiplicative", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "HELLO",
"key": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/multiplicative",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "HELLO",
"key": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/multiplicative", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"HELLO","key":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"HELLO","key":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/multiplicative", 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": "HELLO",
"key": 5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.multiplicative",
"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.
Límites
max_chars | 100000 |
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
Introduzca el texto que desea proteger o recuperar, una clave entera como cinco o diecisiete, y un modo encrypt o decrypt; la herramienta multiplica las letras conservando el caso, deja intactos espacios y puntuación, y rechaza cualquier clave que comparta un factor con veintiséis —números pares y múltiplos de trece— con un error invalid_input claro, de modo que un mapa no biyectivo nunca colapse el alfabeto en silencio. Como el mapeo es aritmética modular pura y determinista —sin red, sin semillas aleatorias, sin dependencia del reloj— el ejecutor gratuito del navegador y la API prepaga devuelven el mismo JSON, incluida la clave reducida módulo veintiséis y su inverso, cada vez que lo invoca para hojas de clase, práctica CTF o demos de cifrado histórico.
Cómo funcionan la clave coprima y la multiplicación modular
El texto vacío y las claves ausentes también se rechazan para que la API nunca devuelva una transformación identidad que parezca exitosa pero no enseñe nada sobre aritmética modular.
Cómo llamar a la API y qué recibe de vuelta
Text debe ser una cadena no vacía de como máximo cien mil caracteres. Envíe un cuerpo JSON con dos campos obligatorios, text como cadena no vacía y key como entero, más un mode opcional que por omisión es encrypt. Los alias aceptados para text incluyen input, value, data, message, plaintext y ciphertext; key también acepta k, multiplier, a, secret y factor; mode acepta operation, op, direction y action, y reconoce sinónimos habituales como encode o decode. La clave puede enviarse como número JSON o como cadena de enteros pura; los números fraccionarios y las cadenas no numéricas producen invalid_input y nunca se cobran. En éxito la respuesta repite el text de entrada original, informa key como el entero que envió, key_mod como esa clave reducida al rango de cero a veinticinco, key_inverse como el inverso modular usado para descifrar, mode como encrypt o decrypt, result y text como la cadena transformada, letters_processed y non_letters como conteos, length como el recuento de caracteres de salida, formula como un mnemónico modular breve, y message como un resumen en una línea en inglés. El precio es un fijo de $0.002 por petición exitosa con unidad item y precio marginal unitario cero.
Consejos prácticos, límites y búsquedas relacionadas
Las comprobaciones de ida y vuelta son la mejor prueba de cordura: cifre una frase, descifre el resultado con la misma clave y confirme que el flujo de letras coincide con la entrada original sensible al caso. Esta página apunta a quienes buscan un cifrado multiplicativo, un cifrador de inverso modular o un cifrado de letras con clave coprima en línea; no es AES, no es RSA, no es el cifrado afín completo con offset aditivo, y no es ROT13. Prefiera esta capacidad cuando necesite criptografía monoalfabética clásica transparente con una clave puramente multiplicativa para educación o puzzles; si necesita secreto real, use en su lugar un cifrado autenticado moderno. Mantenga las cargas por debajo del máximo publicado de cien mil caracteres para que la memoria del Worker se mantenga acotada. Al enseñar, empareje ejemplos: HELLO con clave cinco se cifra a JUDDS; el mismo texto cifrado con mode decrypt y clave cinco recupera HELLO; y la clave dos o la trece demuestran la ruta dura de invalid_input cuando la clave comparte un factor con veintiséis. Las tareas fallidas que devuelven invalid_input no consumen saldo prepago, lo que mantiene baratos los scripts exploratorios cuando los clientes prueban claves pares o múltiplos de trece.
Casos de integración
Laboratorios de aritmética modular en clase
Los estudiantes multiplican índices de letras a mano, calculan inversos modulares y comparan letra a letra con la salida determinista de la API y el campo key_inverse.