Se supone que PBKDF2 es seguro como una función de derivación clave , que más o menos significa que conocer algunos de los resultados Los bytes no dejan información útil para adivinar los otros bytes de salida. Si produce 20 bytes con PBKDF2 pero el atacante conoce 12 de ellos, aún no puede adivinar los 8 restantes con mayor probabilidad que la suerte pura (es decir, 2 -64 , ya que 8 bytes son 64 bits).
Tenga en cuenta, sin embargo, que la "P" en PBKDF2 significa "contraseña", y la principal debilidad de cualquier cosa relacionada con las contraseñas es que las contraseñas son, en la práctica, adivinables a través de ataques de diccionario. Si bien tener una salida parcial no proporciona información inmediata sobre los otros bytes de salida, puede servir como una prueba rápida para una enumeración brutal de posibles contraseñas.
Un ataque de diccionario "normal" en PBKDF2 supone una situación en la que la contraseña se expandió en una clave de cifrado simétrica, utilizada para cifrar una parte de los datos. El atacante "intenta" contraseñas, cada vez que calcula la clave correspondiente, luego intenta descifrar los datos y ve si el resultado "tiene sentido". Si el atacante conoce algunos de los bytes producidos por PBKDF2, entonces puede omitir el paso de "descifrado tiene sentido", lo que le ayuda un poco.