HMAC SHA256 - chiave fissa rispetto a chiave dinamica - impatto sulla sicurezza e sulla collisione
Supponiamo di dover applicare un hmac sha256 su diversi messaggi composti da numeri incrementali (Es. da 1 a 1 miliardo). Ha senso in termini di sicurezza applicare una chiave fissa diversa per ogni messaggio?
messaggio 1 tasto X1
messaggio 2 tasto X2
...
messaggio n chiave Xn
L'applicazione di una chiave per ogni messaggio influirà sul tasso di collisione? Se sì, aumenterà o diminuirà la possibilità di collisione?
L'obiettivo è generare token deterministici univoci a partire da valori sequenziali come dominio di origine.
Risposte
No, non è utile cambiare la chiave tra le invocazioni di HMAC.
Ciò non cambierebbe la probabilità prevista di collisione, che rimane circa$n(n-1)/2^{257}$per$n$valori sotto un modello di HMAC-SHA-256 come PRF. Per$n=2^{40}$(oltre un milione di milioni, il miliardo del Regno Unito), è meno di$2^{-177}$, la probabilità di 177 croci consecutive con una moneta normale, che in pratica è trascurabile.
Tale probabilità può essere portata a zero utilizzando la crittografia di un contatore con un cifrario a blocchi.