Monederos BIP32 HD: HMAC frente a "simplemente" Hashing the Seed

En Mastering Bitcoin (2da edición) de A. Antonopoulus en la página 106, hay una buena ilustración que muestra cómo se genera la base para una billetera BIP32 HD:

ingrese la descripción de la imagen aquí

Así que aquí está la única cosa que no entiendo al respecto:

En el medio de la imagen está la parte donde la semilla se HMAC y se estira a 512 bits. ¿Por qué se necesita un HMAC en lugar de simplemente tomar un hash de la semilla (SHA512)?

Según tengo entendido, la diferencia entre un hash y un HMAC es que el HMAC ofrece algún tipo de no repudio, es decir, que solo aquellos que pueden crear un HMAC válido son los que conocen una clave específica (así como una firma). Sin embargo, esta característica es inútil en el caso de uso dado.

Entonces, ¿por qué HMAC-SHA512 en lugar de SHA512? ¿La idea es aumentar artificialmente la carga de trabajo necesaria para la generación de una billetera HD para limitar las posibilidades de un ataque de fuerza bruta?

Respuestas (1)

Encontré esta respuesta de David Schwartz bajo las etiquetas de criptografía en stackexchange, puede responder a su pregunta: HMAC . Básicamente establece que HMAC es más pequeño en tamaño y requiere menos CPU para calcular.

Gracias Juan por tu respuesta. Aunque creo que hay un malentendido. Parece que cuando David Schwartz dice "HMAC es más pequeño y requiere menos CPU", no está comparando HMAC con hashes. En cambio, está comparando la criptografía simétrica (HMAC) con la criptografía asimétrica (firmas). --- En otras palabras: creo que es bastante seguro decir que los HMAC son en realidad "más pesados" que solo hashes, sobre todo porque la creación de un HMAC en realidad implica hash en su proceso (de hecho, dos veces).
@Dalit De hecho, la respuesta de John aquí es incorrecta.