Non capisco come si possa usare HMAC nell'algoritmo scrypt. Per quale scopo lo scrypt usa HMAC?
Non capisco come si possa usare HMAC nell'algoritmo scrypt. Per quale scopo lo scrypt usa HMAC?
La funzione scrypt utilizza una funzione di derivazione chiave (KDF) in un modo che è costoso in termini di entrambe le CPU tempo e memoria. Lo fa in un modo che consente un compromesso tempo / memoria, in cui le implementazioni che utilizzano meno memoria richiedono più tempo di CPU.
Il KDF utilizzato in scrypt è PBKDF2 . La funzione pseudo-casuale sottostante (PRF) utilizzata in PBKDF2 è selezionabile dall'utente, ma deve assumere due parametri. Come tale, un hash HMAC è ideale, grazie ai suoi due parametri di input (messaggio, chiave) ed è sicuro come PRF crittografico.
La risposta immediata alla tua domanda è che scrypt richiede un hash HMAC perché PBKDF2 richiede un PRF con due input e un hash HMAC è un tipo di funzione comunemente scelto per questo, quindi era logico che scrypt prendesse quell'opzione. La specifica dello scrypt definisce HMAC-SHA256 come PRF.