Una mayor longitud de salida lo hace más fuerte, hasta un cierto punto que ya se ha alcanzado, por un amplio margen, cuando tiene una salida de 128 bits. Ampliarlo más no cambia la seguridad.
Detalles: salvo cualquier debilidad estructural, la seguridad de una función hash depende de su resistencia a los ataques genéricos (también conocida como "suerte": el atacante intenta entradas aleatorias hasta que se encuentra una coincidencia), y esa resistencia Depende del tamaño de salida del hash. Para una función hash con una salida de n bits, se requiere un esfuerzo 2n para que el atacante encuentre una imagen previa (es decir, alguna contraseña, no necesariamente el "real", que coincide con la salida). Los esfuerzos que van más allá de 280 están demasiado lejos de lo técnicamente inviable como para que un atacante pueda imaginarlo. Con 128 bits, ya tiene un margen de 248 , es decir, un factor de casi 300 miles de millones sobre lo que ya era demasiado caro. Sería como hacer alarde de reembolsar la deuda nacional de EE. UU. Sin tener más de $ 0.01 en efectivo.
El tamaño de salida más grande también ayuda contra las colisiones; de nuevo, los ataques genéricos basados en la suerte han costado a 2n/2 (y ahí se ve por qué SHA-1 tiene una salida de 160 bits: para hacer el costo de la colisión de 280 inalcanzable). Sin embargo, las colisiones no son un problema para el hashing de contraseñas. La capacidad de calcular colisiones no le da ninguna ventaja al atacante. Sucede que las colisiones son también inviables con las funciones hash habituales, pero si fueran factibles, no sería un problema.
La verdadera debilidad en el hashing de contraseñas no es el hashing ; es la contraseña . O, más exactamente, la mente humana detrás de la contraseña. Los ataques exitosos en la contraseña con hash son ataques que intentan contraseñas potenciales, no ataques que funcionan en las debilidades estructurales de la función hash, en su caso. Las mitigaciones incluyen hashing lento y salado, que es lo que hace PBKDF2.
Puede almacenar solo 80 bits aproximadamente de salida PBKDF2 (y la sal); Las cosas seguirán siendo seguras. (Por razones puramente estéticas, haz que sean 128 bits: estos informáticos, les encantan los poderes de dos).