Criptografía aplicada
Cifrados, hashes, claves, intercambio y firmas, construidos y rotos a mano.
13 aulas · 7 horas de práctica · en el navegador, sin instalar nada
Temario
- César y sustitución — Desplazar el alfabeto es el cifrado más viejo que existe, y por eso es el mejor lugar para aprender a romper uno: por fuerza bruta y por frecuencia de letras.
- XOR y el one-time pad — El único cifrado del que se puede demostrar matemáticamente que es irrompible, y la única regla que si se rompe lo tira todo abajo: usar la clave una sola vez.
- Bloques y modos: ECB contra CBC — Un cifrado de bloque de juguete para ver por qué ECB deja ver patrones —el famoso pingüino— y cómo encadenar los bloques con CBC los hace desaparecer.
- Taller — Romper el César — Un mensaje cifrado con César y una clave desconocida: lo rompés por fuerza bruta, lo confirmás por frecuencia de letras, y armás un informe que solo confía en la clave cuando los dos métodos coinciden.
- Hashes en serio — Dos propiedades más allá del efecto avalancha, varios algoritmos con hashlib, y la paradoja del cumpleaños: por qué una colisión aparece muchísimo antes de lo que parece.
- HMAC — Un hash solo no prueba quién lo mandó: HMAC combina un hash con una clave secreta de la forma correcta, y compararlo a mano abre una puerta que nadie nota.
- Aleatoriedad — El módulo `random` es determinista a propósito —y por eso nunca sirve para una clave, un token o una contraseña. Para eso existe `secrets`.
- Aritmética modular y Diffie-Hellman — Dos personas acuerdan un secreto compartido gritando números en público, sin que nadie que escuche pueda reconstruirlo — mientras el módulo sea lo bastante grande.
- Taller — El intercambio de claves — Ana y Bruno acuerdan un secreto por Diffie-Hellman, lo usan para cifrar un mensaje con XOR, y Eve —que escuchó todo el canal— lo rompe porque el módulo elegido es demasiado chico.
- RSA de juguete — Multiplicar dos primos es instantáneo; factorizar el resultado, si son lo bastante grandes, no. Toda la seguridad de RSA vive en esa diferencia.
- Firmas digitales y certificados — RSA al revés: firmar con la clave privada y verificar con la pública. Y el problema que las firmas solas no resuelven — saber de quién es esa clave pública.
- Contraseñas y derivación de claves — Un hash rápido es exactamente lo que NO se quiere para una contraseña: cuanto más cuesta calcularlo, más caro sale para quien intenta adivinar millones.
- Taller — Las firmas — Un par de claves RSA, documentos firmados, un detector que encuentra cuál fue alterado, y una mini autoridad certificante que rechaza tanto un certificado tocado como uno directamente trucho.