1.2. Background (Contesto)
1.2. Background (Contesto)
Come definito in [RFC4226], l'algoritmo HOTP si basa sull'algoritmo HMAC-SHA-1 (come specificato in [RFC2104]) e applicato a un valore di contatore crescente che rappresenta il messaggio nel calcolo HMAC.
Fondamentalmente, l'output del calcolo HMAC-SHA-1 viene troncato per ottenere valori user-friendly:
HOTP(K,C) = Truncate(HMAC-SHA-1(K,C))
dove Truncate rappresenta la funzione che può convertire un valore HMAC-SHA-1 in un valore HOTP. K e C rappresentano il segreto condiviso e il valore del contatore; vedere [RFC4226] per definizioni dettagliate.
TOTP è la variante basata sul tempo di questo algoritmo, dove un valore T, derivato da un riferimento temporale e da un passo temporale, sostituisce il contatore C nel calcolo HOTP.
Le implementazioni TOTP POSSONO utilizzare funzioni HMAC-SHA-256 o HMAC-SHA-512, basate sulle funzioni hash SHA-256 o SHA-512 [SHA2], invece della funzione HMAC-SHA-1 che è stata specificata per il calcolo HOTP in [RFC4226].