Cifrado Afín (Affine)

Revisado por el equipo editorial de Let's Cipher Lectura: ~8 min Nivel: Intermedio

Definición directa

El cifrado Afín es una sustitución monoalfabética que cifra cada letra con la fórmula C = (a·P + b) mod 26, donde a debe ser coprimo con 26 y b es un desplazamiento. Es la generalización matemática del cifrado César.

  1. Elige a coprimo con 26 (p.ej. 5) y b entre 0–25 (p.ej. 8).
  2. Por cada letra P: calcula (a·P + b) mod 26 → convierte a letra cifrada.
  3. Para descifrar: calcula a⁻¹ (mod 26) y aplica a⁻¹·(C − b) mod 26.

¿Qué tiene en común cifrar un mensaje espartano con un módulo matemático y proteger las claves públicas de la banca moderna? La respuesta es: la misma idea que aplica el cifrado Afín — solo que el César no tuvo el valor de usar el operador mod de verdad.

¿Qué es el Cifrado Afín? El cifrado afín es un método de criptografía que usa la fórmula C = (a·P + b) mod 26 para transformar letras en otras.

  • Tipo: Sustitución monoalfabética
  • Fórmula: C = (a·P + b) mod 26
  • Claves posibles: 312
  • Seguridad: Baja

Comparativa rápida — Afín vs otros cifrados

Afín vs César

  • ✔ César = Afín con a=1 (caso particular)
  • ✔ Afín añade multiplicación: más variabilidad
  • ✔ César: 25 claves / Afín: 312 claves posibles
  • ✔ Ambos monoalfabéticos: misma debilidad en frecuencias

Afín vs Vigenère

  • ✔ Vigenère: poli-alfabético, clave de texto variable
  • ✔ Afín: mono-alfabético, misma letra siempre igual cifrado
  • ✔ Vigenère oculta frecuencias; Afín no
  • ✔ Vigenère: mucho más resistente que Afín

Afín vs RSA (conceptual)

  • ✔ Afín: C = (a·P + b) mod 26
  • ✔ RSA: C = Mᵉ mod n (exp. modular)
  • ✔ Ambos usan álgebra modular como núcleo
  • ✔ RSA: 2048+ bits vs 26 valores del Afín

Herramienta de Cifrado y Descifrado Afín

Prueba: escribe HOLA con a=5 y b=8
Opciones

Valores permitidos de a: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25.

b acepta negativos; se normaliza módulo 26.

¿Qué es el cifrado Afín?

El cifrado Afín es una sustitución monoalfabética que generaliza al Cifrado César. Cada letra del alfabeto (mapeada a un índice 0..25) se transforma mediante una función lineal módulo 26 dependiente de dos parámetros importantes: a (la pendiente o factor de multiplicación) y b (el desplazamiento).

La idea es: convertir letras → números, aplicar la transformación afín y convertir de vuelta a letras. Si a y 26 no son coprimos, la función no es invertible y no se puede descifrar.

Fórmulas

Cifrado:     C = (a·P + b) mod 26
Descifrado:  P = a⁻¹·(C - b) mod 26

Condición:   a debe ser coprimo con 26 (gcd(a,26)=1) para que exista a⁻¹.
Válidos:     a ∈ {1,3,5,7,9,11,15,17,19,21,23,25},  b ∈ {0..25}
  

Aquí a⁻¹ es el inverso modular de a en ℤ26: el número tal que a·a⁻¹ ≡ 1 (mod 26).

Cómo funciona

  • Parámetros iniciales: Elige un valor a (coprimo con 26) y un b (entre 0 y 25).
  • Preparación del texto: Normaliza el texto removiendo tildes y definiendo qué hacer con caracteres locales como la "Ñ".
  • Conversión numérica: Convierte cada letra de la A a la Z en su equivalente matemático (A=0, B=1... Z=25).
  • Aplicación matemática: Multiplica y suma el valor numérico usando C = (a·P + b) mod 26, y finalmente transforma ese número de nuevo a letra.

¿Para descifrar? Primero calcula el inverso modular a⁻¹ empleando el Algoritmo de Euclides Extendido y luego revierte todo con P = a⁻¹·(C - b) mod 26.

Ejemplo

Ejemplo rápido con tabla

Parámetros: a=5, b=8 ⇒ Fórmula: (5·x + 8) mod 26
Texto plano: HOLA

Letra Número (x) Cálculo (5x + 8) mod 26 Resultado
H 7 (5·7 + 8) = 43 ≡ 17 R
O 14 (5·14 + 8) = 78 ≡ 0 A
L 11 (5·11 + 8) = 63 ≡ 11 L
A 0 (5·0 + 8) = 8 ≡ 8 I

Resultado cifrado: RALI

Nota: Para descifrar este ejemplo, el inverso modular es a⁻¹=21.

Reto: ¿puedes romper este cifrado Afín?

Texto cifrado interceptado: RCTVP
Solo sabes que se usó un cifrado Afín estándar con parámetros desconocidos. Pero hay una pista: la letra más frecuente del español es la E (posición 4)

Mostrar solución →

Solo hay 312 claves posibles. Probando a=5, b=8:

R → 17: a⁻¹·(17−8) mod 26 = 21·9 mod 26 = 189 mod 26 = 7H

C → 2: 21·(2−8) mod 26 = 21·(−26) mod 26 ≡ 21·0 mod 26 = 0 → Hmm…

Prueba a=7, b=3:

R(17): a⁻¹=15 → 15·(17−3) mod 26 = 15·14 mod 26 = 210 mod 26 = 2 → C

→ Con (a=7, b=3): RCTVP descifra a CIFRA

El mensaje era CIFRA. ¿Usaste análisis de frecuencia o fuerza bruta?

¿Por qué el cifrado Afín es importante?

Imagina que eres un matemático árabe del siglo IX. Has estudiado a Euclides, dominas la aritmética modular y sabes una cosa que los griegos y romanos nunca entendieron: que el número 26 no es un límite — es un módulo. No desplazas letras de 3 en 3 como hacía César. Tú las multiplicas. Cada letra del mensajes es ahora un punto en un círculo algebraico que sólo puede cerrarse si tu factor es coprimo con el módulo. Acabas de inventar el cifrado Afín — sin saberlo, también acabas de sentar las bases conceptuales de lo que 1.000 años después sería RSA.

El álgebra modular fue formalizada por Al-Kindi (s. IX, Basřa) en su obra Risāla fī istikhraj al-muwāshšahāt al-muʿammā (Manuscrito sobre el descifrado de mensajes criptográficos, ~850 d.C.) — el primer tratado criptoanalítico de la historia. Fuente: David Kahn, The Codebreakers, Cap. 3 (1967).

Generalización pura de César

César usa a=1: suma desplazamiento, nada más. Atbash usa a=25, b=25: reflejo. El Afín unifica todos los cifrados de sustitución lineal en un solo modelo algebraico. Es el primer paso hacia la criptografía moderna.

ADN conceptual de RSA

RSA cifra con C = Mᵉ mod n. El Afín cifra con C = (a·P + b) mod 26. Ambos se basan en operaciones en álgebra modular, la condición de invertibilidad (coprimalidad / factores primos) y el concepto de inverso matemático como clave.

Usado en docencia universitaria

El Afín es el primer ejemplo que se enseña en cursos de algebra abstracta aplicada, teoría de números y criptografía en universidades de todo el mundo. Es el puente entre el álgebra elemental y la seguridad informática moderna.

La fórmula afín en el mundo real

Aunque el Afín como cifrado está obsoleto, la función afín f(x) = ax + b mod m impregna la informática moderna:

Contexto Uso de la función afín
Números pseudoaleatorios (LCG) Xₙ₊₁ = (a·Xₙ + c) mod m — mismo patrón matemático
Tablas hash (hash lineal) h(k) = (a·k + b) mod p — resolución de colisiones
Direccionamiento de memoria Mapeos lineales de páginas en sistemas operativos
Criptografía moderna (base conceptual) RSA, curvas elípticas — todos extienden la aritmética modular

El Afín no protege datos reales — pero la matemática que usa sí lo hace. Dominar su fórmula es dominar el lenguaje de la criptografía moderna.

Ataques clásicos

  • Frecuencia + pares plano/cifrado: con dos pares (P₁,C₁), (P₂,C₂) se resuelve el sistema y se recuperan a y b.
  • Fuerza bruta: el espacio de claves es pequeño (12 valores posibles de a × 26 de b = 312 combinaciones).
  • Idioma: probar mapeos probables (p. ej., que E del plano vaya a una letra frecuente del cifrado) acelera la ruptura.

Sigue siendo monoalfabético: conserva patrones de frecuencia global, por eso es vulnerable.

Pros y contras

Pros

  • Generaliza César y es ideal para enseñar aritmética modular e inversos.
  • Parámetros flexibles (a, b) y implementación simple.
  • Perfecto para herramientas interactivas y ejercicios de aula.

Contras

  • Monoalfabético: vulnerable a análisis de frecuencia y a fuerza bruta (espacio de 312 claves).
  • Si a no es coprimo con 26, no hay inverso y el descifrado es imposible.
  • No provee integridad ni autenticidad; solo oculta el orden de letras mediante una función lineal.

Sigue aprendiendo: recursos relacionados

El cifrado Afín es un puente entre la criptografía clásica y la moderna. Estos recursos te ayudarán a ir del nivel "entiendo el Afín" al nivel "entiendo cómo funciona la seguridad digital real":

Afín vs Cifrado César

Aunque el cifrado Afín luce algo intimidante algebraicamente, en realidad es en concepto un primo hermano directo del Cifrado César estándar y del cifrado Atbash.

  • César (Suma pura): Equivalente a un cifrado Afín donde la pendiente carece de impacto iterativo, es decir a = 1. La transformación es C = (1·P + b) mod 26.
  • Atbash (Reflejo invertido): Equivalente a un cifrado afín invertido de fin a principio, donde a = 25 y b = 25. Fórmula base: C = (-1·P - 1) mod 26.
  • Afín (Multiplicación + Suma): Escala el alfabeto entero obligando a saltar posiciones de forma multiplicativa antes de sumarle un orden, proveyendo mucha mayor variabilidad local.

¿Pero es seguro su uso?

En la era digital moderna, categóricamente no. A pesar de combinar sumas y multiplicaciones, el marco en el que trabaja sigue mapeando la misma letra plana por su misma letra cifrada idéntica a lo largo de todo el texto (es monoalfabético). Por lo tanto, no oculta la frecuencia y orden estadístico del idioma original.

Impactos reales hoy

En la actualidad, funciones lineales f(x) = ax + b mod m son aprovechadas en contextos no criptográficos. Subyacen comúnmente en motores encargados de la generación de números pseudoaleatorios rápidos, y también en mapeos de memoria y resolución de colisiones dentro de diccionarios (Tablas Hash).

Cómo descifrar sin conocer la clave

Puesto que estamos ante un reducido espacio de llaves maestras con apenas 312 combinaciones globales posibles (el resultado de multiplicar los 12 coeficientes coprimos de a y los 26 traslados de b), existen rutas clásicas y sumamente sencillas para romperlo:

Análisis de Frecuencia

Similar a cómo asaltaríamos un Cifrado Vigenère, si un interceptador evalúa qué par de letras dominan porcentajes altos en el encriptado, podría deducir audazmente que actúan como "E" y "A" del idioma. Con base en dos posiciones claras, puede resolver la ecuación lineal.

Fuerza Bruta Informática

Las 312 comprobables variaciones representan tan solo milisegundos de tiempo de máquina de cálculo bruto. Resulta en la táctica preferida transformándose en un script automatizado para rastrear iterativamente coincidencias sensatas de diccionario mediante César Múltiple modificado.

Cómo descifrar paso a paso

  1. Obtén la clave: Necesitas los mismos valores de a y b usados para cifrar (ej. a=5, b=8).
  2. Inverso modular: Calcula el inverso multiplicativo de a en módulo 26. (Si a=5, el inverso a⁻¹ es 21).
  3. Letra a número: Toma la primera letra cifrada y conviértela en su valor numérico (A=0, B=1, ... Z=25).
  4. Aplica la fórmula: A ese número réstale b, multiplícalo por a⁻¹, y calcula el módulo 26: (21 · (C - 8)) mod 26.
  5. Número a letra: Convierte el número resultante nuevamente a texto para obtener el texto plano real.

Preguntas frecuentes

¿Qué valores están permitidos para el parámetro "a"?

Debe ser cualquier número que sea coprimo con 26, para asegurar que posea un inverso modular y permita descifrado. Los valores válidos son: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 y 25.

¿El cifrado Afín se considera seguro hoy en día?

Definitivamente no. Es vulnerable al ataque por fuerza bruta (ya que solo cuenta con 312 combinaciones posibles de llaves) y al análisis de frecuencia, por ser monoalfabético.