Objetivos didácticos
¿Cómo puede alguien enviarte un mensaje secreto usando una clave que todo el mundo conoce? Esa paradoja es RSA, el algoritmo que protege todavía hoy las comunicaciones en internet. Este lab de bachillerato/universidad recorre el camino completo: desde el sencillo cifrado César hasta la generación de claves públicas y privadas, pasando por toda la aritmética modular y la teoría de números que hacen posible la magia.
Qué se aprende
El alumno construye RSA ladrillo a ladrillo, sin saltar ningún paso: primero rompe César para entender por qué hace falta algo mejor, luego descubre la aritmética modular y la función φ de Euler, y finalmente usa el Pequeño Teorema de Fermat para ver por qué elevar a e cifra y elevar a d descifra.
Por el camino se trabaja la idea de la función inversa (decodificación frente a codificación).
- Se explora el cifrado César con un disco interactivo: cifrar, descifrar y contar sus 25 claves posibles.
- Se trabaja la suma y multiplicación módulo m, incluyendo el inverso multiplicativo (5·x ≡ 1 mod 11).
- Se calcula φ(n) en tres variantes: φ(15) con una cuadrícula 3×5, φ(77) = 6×10, φ(125) = 5³ − 5².
- Se deduce la fórmula φ(pq) = (p−1)(q−1) a partir de los ejemplos anteriores.
- Se descubre el Teorema de Fermat: a^10 ≡ 1 mod 11 para todo a no múltiplo de 11; y que sus múltiplos (20, 30, 40) también funcionan.
- Se generan las claves RSA paso a paso: elegir
ecoprimo con φ(n), calculardcomo inverso deemódulo φ(n), y distinguir clave pública (e, n) de clave privada d. - Se cifra y descifra un mensaje concreto (m = 2, n = 55) con exponenciación rápida por cuadrados sucesivos.
- Se exploran combinaciones válidas de pares (e, d) y se razona por qué obtener d a partir de n es inviable sin conocer p y q.
- La sala final introduce la codificación por bloques de k−1 bits para mensajes reales.
Ideas matemáticas clave
- Funciones inversas: hay operaciones que se pueden deshacer.
- Aritmética modular: la suma y el producto son cíclicos; los inversos multiplicativos existen cuando los factores son coprimos.
- Función φ de Euler: φ(pq) = (p−1)(q−1) cuenta los enteros menores que n coprimos con n.
- Pequeño Teorema de Fermat / Teorema de Euler: a^φ(n) ≡ 1 mod n; permite invertir la exponenciación modulando el exponente.
- Par de claves RSA: e·d ≡ 1 mod φ(n) garantiza que (mᵉ)ᵈ ≡ m (mod n).
- Seguridad por factorización: conociendo solo n y e es imposible calcular φ(n) — y por tanto d — sin factorizar n, problema intratable para números de cientos de dígitos.
- Exponenciación rápida: elevar al cuadrado sucesivamente reduce O(n) multiplicaciones a O(log n).
Contenidos por salas
Sala 1 · Criptografía: mensajes secretos
Presentación del laboratorio: qué es la criptografía, por qué un ataque de fuerza bruta puede romper claves débiles y cómo la aritmética modular hace posible RSA.
Tareas para el alumno
- Leer la introducción y comprender el reto que plantea la fuerza bruta.
- Avanzar para empezar el recorrido sala a sala.
Sala 2 · El cifrado César
Disco interactivo de dos anillos concéntricos (letras). Al girar el disco interior con los botones + y − se aplica el desplazamiento; el alumno escribe un mensaje y ve cómo se cifra letra a letra.
Tareas para el alumno
- Girar el disco al desplazamiento deseado.
- Escribir un mensaje y observar el texto cifrado que aparece.
Sala 3 · ¿Cuántas claves tiene César?
El alumno recibe el texto cifrado "MJQQT RZSIT" y debe girar el disco hasta encontrar el mensaje original. Luego responde cuántas claves distintas tiene el cifrado César.
Tareas para el alumno
- Girar el disco hasta descifrar "MJQQT RZSIT".
- Responder cuántas claves distintas tiene César (25).
Sala 4 · Desplazamiento inverso
HOLA cifrado con desplazamiento 15 produce WDAP. El alumno debe encontrar el desplazamiento inverso que devuelve WDAP a HOLA, introduciendo la idea de operación inversa en aritmética modular.
Tareas para el alumno
- Calcular el desplazamiento que descifra WDAP → HOLA (respuesta: 11).
Sala 5 · Suma módulo m
Explorador interactivo con sliders para dos sumandos y un selector de módulo. El módulo 12 visualiza la suma como en un reloj analógico.
Tareas para el alumno
- Mover los sliders y cambiar el módulo para explorar distintas sumas.
- Responder cuánto es 8 + 6 mod 11 (respuesta: 3).
Sala 6 · Multiplicación módulo m
Explorador de multiplicación modular. Se introduce el concepto de inverso multiplicativo: el número x tal que a·x ≡ 1 (mod m).
Tareas para el alumno
- Explorar productos modulares con distintas bases y módulos.
- Hallar el inverso multiplicativo de 5 módulo 11 (respuesta: 9, pues 5·9 = 45 ≡ 1 mod 11).
Sala 7 · La función φ de Euler
φ(n) cuenta los enteros entre 1 y n coprimos con n. Se visualiza con una cuadrícula 3×5 para n = 15 = 3×5, coloreando los múltiplos de 3 y de 5.
Tareas para el alumno
- Observar qué casillas quedan sin marcar en la cuadrícula 3×5.
- Calcular φ(15) contando los coprimos (respuesta: 8).
Sala 8 · Calcula φ(77)
Aplicación directa de la fórmula φ(p·q) = (p−1)(q−1) para n = 77 = 7×11.
Tareas para el alumno
- Calcular φ(77) usando los factores primos 7 y 11 (respuesta: 60).
Sala 9 · Calcula φ(125)
Caso de potencia de primo: 125 = 5³. Solo los múltiplos de 5 comparten factor con 125, por lo que φ(125) = 125 − 25 = 100.
Tareas para el alumno
- Contar los múltiplos de 5 entre 1 y 125.
- Calcular φ(125) (respuesta: 100).
Sala 10 · Fórmula general de φ(pq)
Recapitulación con el ejemplo p=3, q=5: se razona por inclusión-exclusión que pq − q − p + 1 = (p−1)(q−1). El alumno elige la fórmula correcta entre cuatro opciones.
Tareas para el alumno
- Revisar el razonamiento de inclusión-exclusión del ejemplo.
- Seleccionar la fórmula correcta para φ(p·q): (p−1)(q−1).
Sala 11 · Fermat descubierto
Explorador interactivo de potencias módulo 11: el alumno ajusta la base y el exponente y descubre que existe un exponente que siempre da 1 (el Pequeño Teorema de Fermat).
Tareas para el alumno
- Probar distintas bases con exponente 10 mod 11.
- Identificar el "exponente mágico" que siempre produce 1 (respuesta: 10).
Sala 12 · Múltiplos del orden
Ya se sabe que exp = 10 siempre da 1 mod 11. El alumno debe marcar, entre una lista de exponentes, aquellos que también funcionan (los múltiplos de 10).
Tareas para el alumno
- Seleccionar de la lista los exponentes que dan a^exp ≡ 1 mod 11 para cualquier base.
- Identificar el patrón: son 20, 30 y 40 (múltiplos de 10).
Sala 13 · Cifrar y descifrar con Fermat
Como 7×3 = 21 ≡ 1 mod 10, elevar a 7 cifra y elevar a 3 descifra módulo 11. El alumno lo comprueba con un slider interactivo y verifica que cifrar luego descifrar devuelve el mensaje original.
Tareas para el alumno
- Usar el explorador para cifrar un número con exponente 7 mod 11.
- Aplicar el exponente 3 al resultado y verificar que se recupera el original.
Sala 14 · De Fermat a RSA
Sala explicativa que generaliza Fermat a números compuestos usando el teorema de Euler: a^φ(n) ≡ 1 (mod n). Con n = 91 = 7×13, φ = 72, e = 5, d = 29, se muestra que e·d ≡ 1 mod φ(n) garantiza el par cifrado/descifrado.
Tareas para el alumno
- Leer la generalización de Fermat al caso RSA con p=7, q=13.
- Verificar que 5·29 = 145 ≡ 1 mod 72.
Sala 15 · La clave pública e
Con φ(n) = 40 = 2³×5, el alumno debe elegir e coprimo con 40 entre los candidatos {2, 3, 5, 8, 10, 40}. Se aplica la condición mcd(e, 40) = 1.
Tareas para el alumno
- Descartar los valores pares y múltiplos de 5.
- Seleccionar el único valor válido como clave pública e (respuesta: 3).
Sala 16 · La clave privada d
Dado e = 3 y φ(n) = 40, el alumno calcula d tal que 3·d ≡ 1 mod 40 probando valores sucesivos (3×27 = 81 = 2×40 + 1).
Tareas para el alumno
- Probar valores de d hasta que 3·d mod 40 = 1.
- Introducir el resultado (respuesta: 27).
Sala 17 · Las claves RSA
Resumen visual del par de claves obtenido con p=5, q=11: clave pública (e=3, n=55) que se comparte con todos, y clave privada (d=27, n=55) que solo conoce el titular.
Tareas para el alumno
- Observar la distinción entre clave pública y clave privada.
- Avanzar con el par de claves ya generado para el bloque de cifrado.
Sala 18 · Cifrar con RSA
Aplicación de la fórmula de cifrado c = m^e mod n con m=2, e=3, n=55. Primer contacto numérico con el paso de cifrado RSA.
Tareas para el alumno
- Calcular c = 2³ mod 55 (respuesta: 8).
Sala 19 · Exponenciación rápida
Para calcular 8^27 mod 55 se usa la técnica de cuadrados sucesivos: 8² = 64 ≡ 9, 8⁴ = 9² = 81 ≡ 26 … El alumno calcula el paso intermedio 8⁴ mod 55.
Tareas para el alumno
- Seguir el método de cuadrados sucesivos.
- Calcular 8⁴ mod 55 (respuesta: 26).
Sala 20 · Descifrar con RSA
Con 27 = 16+8+2+1, se descompone 8^27 como producto de potencias conocidas (8¹, 8², 8⁸, 8¹⁶ mod 55). El alumno elige la operación correcta (multiplicar, no sumar) y calcula el resultado.
Tareas para el alumno
- Elegir entre "sumar" o "multiplicar" las potencias (correcto: multiplicar).
- Calcular 8²⁷ mod 55 (respuesta: 2, el mensaje original).
Sala 21 · ¡El ciclo completo!
Animación del ciclo RSA completo con m=2, e=3, d=27, n=55: cifrar → c=8, descifrar → m=2. Muestra por qué funciona la identidad m^(e·d) ≡ m (mod n) por el teorema de Euler.
Tareas para el alumno
- Ver la animación del ciclo cifrado-descifrado completo.
- Verificar que el mensaje descifrado coincide con el original.
Sala 22 · ¿Por qué es seguro RSA?
Explicación del fundamento de seguridad: para obtener d hay que calcular φ(n), lo que requiere factorizar n. Para n de ~617 dígitos, los algoritmos clásicos tardarían más que la edad del universo.
Tareas para el alumno
- Leer el argumento de seguridad y la comparación 55 (fácil) vs. número de 617 dígitos (inviable).
Sala 23 · Explorador de claves RSA
Herramienta libre: el alumno elige p y q entre varias opciones (11/13/17 y 17/19/23) y ve todos los pares (e, d) válidos para esos primos, con la tabla k·φ(n)+1 = e×d.
Tareas para el alumno
- Seleccionar distintas combinaciones de p y q.
- Observar cuántos pares de claves válidos genera cada combinación.
Sala 24 · Combinaciones de claves válidas
Con p=3, q=11, n=33, φ=20, el alumno marca todos los pares (e, d) de una lista que forman claves RSA válidas (condición: mcd(e, 20)=1 y e·d ≡ 1 mod 20).
Tareas para el alumno
- Comprobar el gcd para cada e candidato.
- Calcular e·d mod 20 y marcar los pares que dan 1: (3,7), (9,9), (13,17), (19,19).
Sala 25 · Práctica final: descubre la clave privada
Reto completo con p=7, q=29, n=203, φ=168, e=5, m=2. El alumno debe calcular d tal que 5·d ≡ 1 mod 168, cifrar m y verificar que el descifrado devuelve el mensaje original.
Tareas para el alumno
- Calcular d como inverso de 5 módulo 168 (respuesta: 101).
- Verificar el ciclo cifrado-descifrado con los valores obtenidos.
Sala 26 · ¿Por qué es difícil obtener d?
El atacante conoce n y e pero no φ(n). Pregunta de opción múltiple: ¿por qué no puede aplicar directamente el algoritmo de Euclides extendido para calcular d?
Tareas para el alumno
- Leer el planteamiento del atacante.
- Seleccionar la razón correcta: φ(n) es difícil de calcular sin conocer p y q.
Sala 27 · Codificación por bloques
En la práctica real no se cifra letra a letra: el mensaje completo se convierte a bits y se divide en bloques uniformes, cada uno menor que n (demo con la palabra "HOLA"). Se pregunta qué tamaño de bloque usar si n tiene k bits.
Tareas para el alumno
- Observar la demo de bloques con la palabra "HOLA".
- Elegir el tamaño correcto de bloque: k−1 bits, para garantizar que el bloque sea siempre menor que n.
Salas para proyectar
Las más vistosas para mostrar y discutir en clase.