La página de ayuda de seguridad de KeePass habla sobre la prevención de ataques de diccionario
Para generar la clave final de 256 bits que se usa para el cifrado de bloque, KeePass primero escribe la contraseña del usuario usando SHA-256, cifra el resultado N veces usando el algoritmo del Estándar de cifrado avanzado (AES) (llamado transformación de clave desde ahora), y luego lo vuelve a hacer hash usando SHA-256. Para AES, se utiliza una clave aleatoria de 256 bits, que se almacena en el archivo de base de datos. Como las transformaciones de AES no son precalculables (la clave es aleatoria), un atacante también tiene que realizar todos los cifrados, de lo contrario, no podrá probar y ver si la clave actual es correcta.
La "seguridad contra ataques de diccionario" aparentemente se encuentra en el tiempo necesario para las N rondas de cifrado. Ahora la pregunta:
¿El tiempo necesario para calcular N iteraciones de AES realmente N veces el tiempo necesario para un solo cifrado AES, o existe un esquema conocido y más eficiente para calcular AES ^ N (texto claro)?