Necesito proteger una clave privada RSA-4096 con una clave derivada de un algoritmo KDF.
En lugar de ocultar cualquier aspecto del algoritmo, me gustaría ajustarlo de modo que la derivación clave sea una prueba de trabajo lo suficientemente grande como para hacer que sea imposible forzar una contraseña decente de 10 caracteres alfanuméricos
El usuario ejecuta la derivación de clave en el hardware promedio.
El atacante tiene hardware dedicado de última generación y conoce todos los detalles de la derivación de la clave , excepto la contraseña. Eso incluye:
- la clave RSA cifrada
- la clave RSA pública
- la especificación de seguridad de la contraseña
- el código fuente del algoritmo KDF
- la sal
- el número de iteraciones utilizadas
- cualquier otro parámetro que pueda ser requerido
¿Cuáles serían las recomendaciones para el algoritmo KDF (PBKDF2 vs bcrypt vs scrypt) y sus parámetros?
¿Cómo cambiaría eso si la contraseña también incluye caracteres en mayúsculas / minúsculas y caracteres especiales?
¿Cómo cambiaría eso si el usuario ejecuta la derivación de la clave en un teléfono móvil promedio?