Nelle tabelle hash che risolvono le collisioni mediante sondaggio lineare, al fine di garantire la prestazione prevista , è sia necessario che sufficiente che la funzione hash provenga da una famiglia indipendente da 5. (Sufficienza: "Sondaggio lineare con indipendenza costante", Pagh et al. , Necessità: "Sulla k-indipendenza richiesta da Linear Probing e Minwise Indipendenza", Pătraşcu e Thorup )
Comprendo che le famiglie 5 indipendenti più conosciute utilizzano la tabulazione. Scegliere una funzione da una famiglia del genere può essere costoso, quindi vorrei ridurre al minimo il numero di volte che lo faccio, pur continuando a prevenire attacchi di complessità algoritmica come descritto in "Denial of Service tramite attacchi di complessità algoritmica" di Crosby e Wallach . Sono meno preoccupato per gli attacchi di cronometraggio (cioè avversari con cronometri). Quali sono le conseguenze del riutilizzo della stessa funzione:
- Quando si coltiva una tabella hash troppo piena?
- Quando si restringe una tabella hash che non è abbastanza piena?
- Quando si ricostruisce una tabella hash con troppi bit "eliminati" impostati?
- In tabelle hash diverse che possono contenere alcune chiavi in comune?
- In tabelle hash diverse che non contengono chiavi in comune?