Quale chiave usare in HMAC

4

Ho bisogno di utilizzare HMAC su un determinato messaggio per garantire l'integrità, ma non riesco a capire quali sono i requisiti per la chiave da fornire come input per l'algoritmo di hash.

In particolare, devo farlo in Java e, poiché voglio usare HMAC con SHA256, ho bisogno di avere una chiave di almeno 32 byte, secondo l'HMAC RFC. Per il momento (per i test) sto generando la chiave con SecureRandom ("NativePRNG"), un'implementazione Java di un generatore di numeri casuali crittograficamente strong. È abbastanza per la chiave?

    
posta markusian 15.11.2013 - 13:58
fonte

1 risposta

3

La chiave dovrebbe avere le stesse dimensioni dell'output hash. Nel tuo caso stai usando SHA-256 quindi dovresti usare una chiave a 256-bit (che equivale a 32-byte che hai menzionato).

L'algoritmo HMAC è davvero molto flessibile, quindi è possibile utilizzare una chiave di qualsiasi dimensione. Tuttavia, se si utilizza solo una chiave a 128 bit, non è necessario utilizzare un hash a 256 bit; potresti anche usare un hash a 128 bit come MD5.

SecureRandom in Java è abbastanza adeguato per generare chiavi per questo scopo.

    
risposta data 15.11.2013 - 15:20
fonte

Leggi altre domande sui tag