Qué clave usar en HMAC

4

Necesito usar HMAC en un determinado mensaje para garantizar la integridad, pero no puedo averiguar cuáles son los requisitos para que la clave se proporcione como entrada al algoritmo de hash.

En particular, tengo que hacer esto en Java y, como quiero usar HMAC con SHA256, debo tener una clave de al menos 32 bytes, según el RFC de HMAC. Por el momento (para las pruebas) estoy generando la clave con SecureRandom ("NativePRNG"), una implementación de Java de un generador de números aleatorios criptográficamente sólido. ¿Es esto suficiente para la llave?

    
pregunta markusian 15.11.2013 - 13:58
fuente

1 respuesta

3

La clave debe ser del mismo tamaño que la salida de hash. En su caso, está utilizando SHA-256, por lo que debe usar una clave de 256 bits (lo que equivale a los 32 bytes que menciona).

El algoritmo HMAC es realmente bastante flexible, por lo que puede usar una clave de cualquier tamaño. Sin embargo, si solo usa una clave de 128 bits, entonces no tiene sentido usar un hash de 256 bits; También puede utilizar un hash de 128 bits como MD5.

SecureRandom en Java es bastante adecuado para generar claves para este propósito.

    
respondido por el paj28 15.11.2013 - 15:20
fuente

Lea otras preguntas en las etiquetas