Entorno de práctica para la Parte 2 — Criptografía aplicada (clases 046–065). Cuatro retos que muestran, en la práctica, por qué ciertas construcciones criptográficas son inseguras. No necesita Docker ni dependencias: todo es Python puro (stdlib).
🎓 Intenta resolver cada reto por tu cuenta antes de mirar
soluciones/. Las soluciones están comentadas y explican la debilidad.
| # | Reto | Debilidad que enseña | Clases |
|---|---|---|---|
| 1 | XOR de clave repetida | Un "cifrado" XOR con clave corta se rompe por análisis de frecuencia | 048 |
| 2 | RSA con primos cercanos | Si p y q son cercanos, n se factoriza con Fermat en milisegundos |
049 |
| 3 | Hashes MD5 sin sal | MD5 sin sal + contraseñas débiles = crackeo instantáneo | 051, 057 |
| 4 | Detección de AES-ECB | ECB filtra patrones: mismo bloque de texto → mismo bloque cifrado | 047 |
cd labs/cripto
# (opcional) regenerar los datos de los retos de forma determinista:
python _generar_retos.py
# resuelve tú; cuando quieras comprobar, corre la solución:
python soluciones/sol1_xor.py
python soluciones/sol2_rsa.py
python soluciones/sol3_hashes.py
python soluciones/sol4_ecb.py
0x20 es el carácter
más frecuente).n = p·q con p ≈ q. Escribe n = a² − b²; empieza en a = ⌈√n⌉ y sube.diccionario.txt y compara. (Con Hashcat sería hashcat -m 0).FLAG{...} y la clave.n y descifra el Reto 2. Aceptación: obtienes p, q y la flag.