3. Chiavi (Keys)
La chiave di HMAC può avere lunghezza arbitraria (le chiavi di lunghezza superiore a B byte vengono prima sottoposte a hash mediante H). Tuttavia, le chiavi di lunghezza inferiore a L byte sono fortemente sconsigliate, poiché riducono la robustezza di sicurezza della funzione. Le chiavi di lunghezza superiore a L byte sono accettabili, ma tale lunghezza aggiuntiva non aumenta in modo significativo la forza della funzione. (Una chiave più lunga può essere desiderabile se si ritiene che la casualità della chiave sia debole.)
La chiave deve essere scelta in modo casuale (oppure utilizzando un generatore di numeri pseudo-casuali crittograficamente forte inizializzato con un seme casuale), e deve essere rinnovata periodicamente. (Gli attacchi attuali non forniscono una frequenza di rinnovo specifica raccomandata, poiché gli attacchi sono praticamente impossibili da eseguire. Tuttavia, il rinnovo periodico delle chiavi è una pratica di sicurezza fondamentale che aiuta a difendersi da potenziali debolezze della funzione e della chiave, e limita i danni in caso di compromissione di una chiave.)