Cifrado afín
Codifica y decodifica con E(x) = (ax + b) mod 26. Introduce a y b, y la herramienta comprueba que a pueda deshacerse, halla su inverso modular y desarrolla cada letra; si no conoces la clave, el modo de decodificación prueba las 312 y las ordena según cómo de parecidos al inglés resultan los textos.
No debe tener factores en común con 26: elige uno de los 12 valores de abajo.
Cualquier número entero; se toma módulo 26.
Desarrollo para esta clave
Codificación: E(x) = (5x + 8) mod 26
Decodificación: D(y) = 21(y − 8) mod 26
21 es el inverso de 5 porque 5 × 21 = 105, que es 1 más que un múltiplo de 26.
Cada a válida y su inverso
| a | 1 | 3 | 5 | 7 | 9 | 11 | 15 | 17 | 19 | 21 | 23 | 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| a⁻¹ | 1 | 9 | 21 | 15 | 3 | 19 | 7 | 23 | 11 | 5 | 17 | 25 |
Letra por letra: las primeras 12 letras
| Letra | x | a·x + b | mod 26 | Resultado |
|---|---|---|---|---|
| A | 0 | 8 | 8 | I |
| F | 5 | 33 | 7 | H |
| F | 5 | 33 | 7 | H |
| I | 8 | 48 | 22 | W |
| N | 13 | 73 | 21 | V |
| E | 4 | 28 | 2 | C |
| C | 2 | 18 | 18 | S |
| I | 8 | 48 | 22 | W |
| P | 15 | 83 | 5 | F |
| H | 7 | 43 | 17 | R |
| E | 4 | 28 | 2 | C |
| R | 17 | 93 | 15 | P |
Cómo usar el cifrado afín
- 1. Elige un modo e introduce tu texto. Codificar convierte el texto sin cifrar en texto cifrado; Decodificar lo revierte.
- 2. Define la clave. Introduce a, el multiplicador, y b, el desplazamiento. a debe ser uno de los 12 valores que figuran bajo los campos: haz clic en uno para usarlo. b puede ser cualquier número entero; se reduce módulo 26.
- 3. Lee el desarrollo. El panel bajo el resultado da las dos fórmulas para tu clave, el inverso de a y la aritmética de cada letra.
- 4. ¿Sin clave? Prueba todas. En el modo Decodificar, marca Probar las 312 claves. Los resultados se ordenan según cuánto se parecen sus recuentos de letras a los del inglés, y Usar esta clave carga cualquiera de ellos.
La fórmula del cifrado afín
Numera las letras desde cero: A = 0, B = 1 … Z = 25. Para cifrar una letra x, multiplícala por a, suma b y quédate con el resto de dividir entre 26: E(x) = (a·x + b) mod 26. Para descifrar una letra y, deshaz esos pasos en orden inverso: resta b y después multiplica por a⁻¹, el inverso modular de a: D(y) = a⁻¹·(y − b) mod 26. El inverso es el número que, multiplicado por a, deja un resto de 1. Para a = 5 es 21, porque 5 × 21 = 105 = 4 × 26 + 1.
Por qué solo funcionan 12 valores de a
Multiplicar por a nunca debe enviar dos letras al mismo lugar, o la decodificación tendría dos respuestas. Eso ocurre siempre que a comparte un factor con 26 = 2 × 13. Con a = 2, por ejemplo, A (0) y N (13) caen ambas en b, porque 2 × 13 = 26, que es 0 módulo 26. Así que a debe ser impar y no puede ser 13, lo que deja los doce números de abajo: exactamente los que tienen inverso módulo 26. Con 26 opciones para b, resultan 12 × 26 = 312 claves, una de las cuales (a = 1, b = 0) no cambia nada.
| a | 1 | 3 | 5 | 7 | 9 | 11 | 15 | 17 | 19 | 21 | 23 | 25 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| a⁻¹ | 1 | 9 | 21 | 15 | 3 | 19 | 7 | 23 | 11 | 5 | 17 | 25 |
Ejemplo desarrollado: a = 5, b = 8
Con a = 5 y b = 8, AFFINE CIPHER se cifra como IHHWVC SWFRCP, el ejemplo de la herramienta. Las letras de AFFINE, desarrolladas:
| Letra | x | 5x + 8 | mod 26 | Resultado |
|---|---|---|---|---|
| A | 0 | 8 | 8 | I |
| F | 5 | 33 | 7 | H |
| I | 8 | 48 | 22 | W |
| N | 13 | 73 | 21 | V |
| E | 4 | 28 | 2 | C |
Para decodificar, la herramienta multiplica por a⁻¹ = 21. La I (8) se convierte en 21 × (8 − 8) = 0, que es A; la H (7) se convierte en 21 × (7 − 8) = −21, que es 5 módulo 26, que es F. Los valores negativos son normales en este paso: mod 26 solo significa sumar o restar 26 hasta que el número quede entre 0 y 25.
Dos cifrados conocidos son cifrados afines disfrazados. Con a = 1 la fórmula es x + b, un desplazamiento César de b; con a = 25 y b = 25 es el cifrado Atbash, el alfabeto leído al revés.
Cómo romper un cifrado afín
Con solo 311 claves que cambian algo, el ataque más directo es probarlas todas, lo que la opción de fuerza bruta hace en una fracción de segundo. Lo difícil es reconocer la respuesta, así que la herramienta ordena cada resultado con una comparación de chi cuadrado de sus recuentos de letras con los del inglés habitual. Con una frase o más, la clave correcta aparece en primer lugar; con una frase corta puede que no: para IHHWVC SWFRCP solo, la clave verdadera (5, 8) queda en cuarto lugar, así que recorre la lista en lugar de fiarte de la primera línea.
Los criptoanalistas pueden hacerlo mejor con álgebra. El cifrado afín es una sustitución monoalfabética (cada letra se convierte siempre en la misma letra), así que el análisis de frecuencias sugiere qué letras cifradas representan la E y la T, y dos suposiciones así dan dos ecuaciones. Con la clave anterior, E (4) se convierte en C (2) y T (19) en Z (25), de modo que 4a + b ≡ 2 y 19a + b ≡ 25 (mod 26). Al restar la primera de la segunda resulta 15a ≡ 23; al multiplicar por 7, el inverso de 15, resulta a ≡ 161 ≡ 5, y después b ≡ 2 − 20 ≡ 8. Dos letras de texto sin cifrar conocido recuperan toda la clave.
Preguntas frecuentes
- ¿Qué es un cifrado afín?
- Un cifrado de sustitución que convierte el número x de cada letra en (a·x + b) mod 26, de modo que cada letra se multiplica por a y después se desplaza b. La clave es el par (a, b). Como una letra dada siempre se convierte en la misma letra cifrada, es monoalfabético: un pariente de aspecto más sólido del cifrado César, y no más difícil de romper.
- ¿Por qué a debe ser coprimo con 26?
- La decodificación multiplica por el inverso de a módulo 26, y ese inverso solo existe cuando a y 26 no comparten ningún factor. Si lo comparten, dos letras distintas se cifran como la misma letra y el mensaje no puede leerse de vuelta con certeza. Eso descarta todos los números pares y el 13, y deja 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23 y 25.
- ¿Cómo hallo el inverso modular de a?
- Busca el número entre 1 y 25 que, multiplicado por a, deja un resto de 1 al dividirlo entre 26. Para a = 7 es 15, porque 7 × 15 = 105 = 4 × 26 + 1. Con solo doce casos, lo más rápido es leerlos en la tabla de arriba; para módulos grandes, el algoritmo de Euclides extendido halla el inverso directamente.
- ¿Cuántas claves tiene el cifrado afín?
- 312: doce opciones de a por 26 opciones de b. Una de ellas, a = 1 con b = 0, deja el texto sin cambios, así que 311 cifran realmente. Son pocas como para probar todas las claves a mano en una tarde, y por ordenador en un instante.
- ¿Es el cifrado César un tipo de cifrado afín?
- Sí. Si a = 1, la fórmula se convierte en x + b, que es un desplazamiento César de b; ROT13 es a = 1, b = 13. Atbash también es afín, con a = 25 y b = 25. Ambos están entre las 312 claves que prueba la fuerza bruta.
- ¿Es seguro el cifrado afín?
- No. Cae ante la fuerza bruta, ante el análisis de frecuencias y ante tan solo dos letras de texto sin cifrar conocido, como muestra el álgebra de arriba. Es una práctica excelente de aritmética modular, pero cualquier cosa importante necesita un cifrado moderno.