Herramienta para descodificar/codificar con el cifrado Afín, una función de cifrado por adición y multiplicación que codifica una letra por otra letra de rango (ax + b) módulo 26.
Cifrado Afín - dCode
Etiqueta(s): Cifrado de Sustitución
dCode es gratuito y sus herramientas son una valiosa ayuda en juegos, matemáticas, geocaching, acertijos y problemas para resolver todos los días.
¿Una sugerencia? ¿Un comentario? ¿Un error? ¿Una idea? ¡Escribe en dCode!
El cifrado afín es un método de sustitución monoalfabética en el que cada letra del texto claro se reemplaza por otra letra según una función afín de la forma $ f(x) = A \times x + B \mod 26 $.
$ A $ y $ B $ son dos enteros que forman la clave de cifrado, y $ 26 $ corresponde a la longitud del alfabeto latino estándar.
Para codificar un mensaje con el cifrado afín:
1/ Asociar a cada letra del texto claro su posición numérica $ x $ en el alfabeto. Por defecto, $ A=0, B=1, \dots, Z=25 $; es posible (pero no recomendado) usar $ A=1, \dots, Y=25, Z=0 $ tomando el alfabeto ZABCDEFGHIJKLMNOPQRSTUVWXY
2/ Aplicar la función afín $ y = (A \times x + B) \mod 26 $ para obtener la posición $ y $ de la letra cifrada.
3/ Reemplazar cada letra del texto claro por la letra correspondiente a $ y $ en el alfabeto.
Ejemplo: Cifrar DCODE con los coeficientes $ A=5, B=3 $ y el alfabeto latino/francés ABCDEFGHIJKLMNOPQRSTUVWXYZ.
| Letra clara | $ x $ | $ y $ | Letra cifrada |
| D | $ 3 $ | $ 5 \times 3 + 3 = 18 $ | S |
| C | $ 2 $ | $ 5 \times 2 + 3 = 13 $ | N |
| O | $ 14 $ | $ 5 \times 14 + 3 = 73 \equiv 21 \mod 26 $ | V |
| D | $ 3 $ | $ 18 $ | S |
| E | $ 4 $ | $ 5 \times 4 + 3 = 23 $ | X |
Para descodificar un mensaje cifrado por Afín:
1/ Calcular el inverso modular $ A' $ de $ A $ módulo $ 26 $
2/ Para cada letra cifrada de posición $ y $, calcular $ x = A' \times (y - B) \mod 26 $
3/ Reemplazar cada letra cifrada por la letra correspondiente a $ x $ en el alfabeto.
Ejemplo: Mensaje a descifrar SNVSX con los coeficientes $ (A,B) = (5,3) $.
Un coeficiente $ A' $ para $ A = 5 $ es $ 21 $ (ya que $ 5 \times 21 = 105 \equiv 1 \mod 26 $).
Para la letra S ( $ y = 18 $ ), calcular el valor $ x = A' \times (18-B) = 21 \times (18-3) = 315 \equiv 3 \mod 26 $ y la letra en el rango 3 es D. El mensaje claro es DCODE.
Un mensaje cifrado por Afín tiene un índice de coincidencia cercano al de la lengua del texto claro.
Cualquier referencia a una función afín (línea recta), un gráfico, una abscisa o una ordenada es un indicio (la función $ f(x) = ax + b $ puede representarse en un sistema de coordenadas ortonormales como una función afín clásica; por lo tanto, a partir de un gráfico es posible encontrar el coeficiente director $ a $ y la ordenada en el origen $ b $).
Los cifrados afines agrupan en realidad varios cifrados que son casos particulares:
— El cifrado multiplicativo (multiplicative cipher) es un caso particular del cifrado Afín donde B vale 0.
— El cifrado César es un caso particular del cifrado Afín donde A vale 1 y B es el desplazamiento.
El cifrado afín es a su vez un caso particular del cifrado de Hill, que utiliza una matriz invertible, en lugar de una ecuación de recta, para generar el alfabeto de sustitución.
Sin conocer los coeficientes $ A $ y $ B $, utilizar un ataque de fuerza bruta. Suponiendo que el alfabeto tiene 26 caracteres, entonces el coeficiente $ A $ solo puede tomar 12 valores (los números coprimos con 26) y el coeficiente $ B $ solo puede tomar 16 valores, es decir, un total de 312 combinaciones.
Conociendo letras del texto claro, es posible trazar las letras claras/cifradas en un sistema de coordenadas ortonormales y deducir $ A $ (la pendiente) y $ B $ (la ordenada en el origen).
Para un cifrado afín de función $ y = A x + B $, entonces la función recíproca de descifrado se expresa como $ y' = A' x + B $
Calcular el inverso modular de A, módulo la longitud del alfabeto (ver a continuación los valores precalculados).
B' tiene el mismo valor que B; por esta razón, esta variable no debería llamarse B' sino B.
El valor de A' depende de A pero también de la longitud del alfabeto; si este es clásico, tiene 26 caracteres. Los valores de A' en este caso son los siguientes:
| A = 1 | A' = 1 |
| A = 3 | A' = 9 |
| A = 5 | A' = 21 |
| A = 7 | A' = 15 |
| A = 9 | A' = 3 |
| A = 11 | A' = 19 |
| A = 15 | A' = 7 |
| A = 17 | A' = 23 |
| A = 19 | A' = 11 |
| A = 21 | A' = 5 |
| A = 23 | A' = 17 |
| A = 25 | A' = 25 |
El teorema de Bézout indica que $ A' $ solo existe si $ A $ y $ 26 $ (la longitud del alfabeto) son coprimos. Esto limita $ A $ a los valores $ 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25 $.
Sí, pero esto hace que el descifrado no sea único: una misma letra cifrada puede corresponder a varias letras claras.
Sí, pero todo valor negativo de $ A $ tiene un equivalente positivo módulo 26.
Ejemplo: Un cifrado con un valor de $ A = -1 $ es idéntico a un cifrado con un valor de $ A = 25 $ (ya que $ 25 \equiv -1 \mod 26 $)
No, $ B $ puede ser cualquier entero, pero todos los valores de $ B $ módulo 26 (longitud del alfabeto) son equivalentes. Así, si $ B $ es negativo, existe un valor positivo equivalente de $ B $.
Ejemplo: Un cifrado con $ B = -1 $ es equivalente a un cifrado con $ B = 25 $
En matemáticas, una función afín se define mediante una suma y una multiplicación de la variable (a menudo $ x $) y se escribe $ f(x) = ax + b $. El cifrado afín es similar a la función $ f $ porque utiliza los valores $ a $ y $ b $ como coeficientes y la variable $ x $ es la letra a cifrar.
La función afín es una función lineal porque su gráfica es una línea recta.
No se conocen ni una fecha ni un autor para el cifrado afín.
dCode conserva la propiedad del código fuente "Cifrado Afín". Cualquier algoritmo para "Cifrado Afín", subprograma o fragmento o script (convertidor, solucionador, cifrado / descifrar, codificar / decodificar, cifrar / descifrar, descifrar, traducir), o todas las funciones "Cifrado Afín" (calcular, convertir, resolver, descifrar / cifrar, descifrar / cifrar, decodificar / codificar, traducir) escritas en cualquier lenguaje informático (Python, Java, PHP, C#, Javascript, Matlab, etc.) o cualquier base de datos, o acceso API a "Cifrado Afín" no son públicas (excepto una licencia explícita de código abierto). Lo mismo ocurre con la descarga para uso sin conexión en PC, dispositivos móviles, tabletas, iPhone o Android. aplicación.
Recordatorio: dCode es un recurso educativo y didáctico, accesible online de forma gratuita y para todos.
El contenido de la página "Cifrado Afín" así como sus resultados pueden copiarse y reutilizarse libremente, incluso con fines comerciales, siempre que se cite dCode.fr como fuente (Licencia de distribución libre Creative Commons CC-BY).
La exportación de los resultados es gratuita y se realiza simplemente haciendo clic en los íconos de exportación ⤓ (formato .csv o .txt) o ⧉ copiar y pegar.
Para citar dCode.fr en otro sitio web, utilice el enlace:
En un artículo o libro científico, la cita bibliográfica recomendada es: Cifrado Afín en dCode.fr [sitio web en línea], recuperado el 2026-01-18,