Es un poco fetiche. Por lo que sabemos actualmente, no hay ninguna razón para creer que el uso de los primeros cuatro bytes de la salida HMAC no sería igual de seguro.
Sin embargo, la falta de razón para creer no implica que nadie crea. Algunas personas "sienten" que el truncamiento sistemático puede ayudar al atacante de una manera completamente no especificada. Con un montón de handwaving, uno podría argumentar que el truncamiento dinámico hará que la tarea sea un poco más difícil para un atacante que intenta un ataque de fuerza bruta en la clave secreta, con la ayuda de un FPGA o ASIC dedicado:
-
Como los 20 bytes de salida pueden ser necesarios, el atacante debe calcular un HMAC / SHA-1 completo; si solo se usaron los primeros cuatro bytes, entonces un circuito dedicado desenrollado podría omitir algunos pasos en las últimas rondas SHA-1 (estamos hablando de una optimización de, en el mejor de los casos, del 3% aquí).
-
El "truncamiento dinámico" implica algún tipo de búsqueda dependiente de los datos, lo que puede ser costoso en el área del hardware (de nuevo, esto es casi insignificante en relación con todos los agregadores de 32 bits en SHA-1).
Pero estas no son, realmente, buenas razones. Por lo tanto, el punto principal del "truncamiento dinámico" es ser algún tipo de vudú criptográfico que pueda sorprender al neófito y, por lo tanto, posiblemente ayude a la aceptación . Especificar un buen algoritmo no es suficiente; los implementadores también deben estar convencidos de usarlo y, para eso, algunos gestos de aspecto mágico pueden hacer maravillas.