1. Derivación de clave con PBKDF2 (100.000 vueltas)
Las contraseñas humanas no tienen la longitud binaria uniforme necesaria para una clave simétrica. Utilizamos PBKDF2 (Password-Based Key Derivation Function 2) con función pseudoaleatoria HMAC-SHA-256, 100.000 iteraciones y una sal criptográfica única de 16 bytes generada con crypto.getRandomValues(). Esto mitiga ataques de diccionario y tablas arcoíris.