Passa al contenuto principale

7. HKDF- and SHA-Based HMACs (HKDF e HMAC basati su SHA)

Di seguito sono riportate brevi descrizioni e puntatori a descrizioni più complete e codice per (1) HMAC basati su SHA e (2) una funzione di derivazione di chiavi extract-and-expand basata su HMAC. Sia HKDF che HMAC sono stati ideati da Hugo Krawczyk.

7.1. HMAC basati su SHA (SHA-Based HMACs)

HMAC è un metodo per calcolare un MAC con chiave (Message Authentication Code) utilizzando una funzione hash come descritto in [RFC2104]. Utilizza una chiave per mescolare con il testo di input per produrre l'hash finale.

Il codice di esempio è fornito anche nella Sezione 8.3 di seguito, per eseguire HMAC basato su uno qualsiasi degli algoritmi SHA descritti qui. Il codice di esempio trovato in [RFC2104] è stato scritto in termini di una dimensione di testo specificata. Poiché SHA è definito in termini di un numero arbitrario di bit, il codice HMAC di esempio è stato scritto per consentire all'input di testo di HMAC di avere un numero arbitrario di ottetti e bit. È fornita anche un'interfaccia a lunghezza fissa.

7.2. HKDF

HKDF è una specifica funzione di derivazione di chiavi (Key Derivation Function, KDF), cioè una funzione di materiale di chiave iniziale da cui il KDF deriva una o più chiavi segrete crittograficamente forti. HKDF, che è descritto in [RFC5869], è basato su HMAC.

Il codice di esempio per HKDF è fornito nella Sezione 8.4 di seguito.