Capisco come funzionano le tabelle di compromesso della memoria del tempo di Hellman creando catene di risultati di hash e di riduzione e memorizzando l'ultimo risultato dopo un certo numero di operazioni. poiché la funzione di riduzione mappa dallo spazio hash (crapton di caratteri) nello spazio della password (diciamo fino a 10 caratteri), è ovvio che avremo una tonnellata di collisioni.
Le tabelle arcobaleno cercano di risolvere questo problema utilizzando più funzioni di riduzione. Non capisco come o perché questo aiuti.
Questo articolo di wikipedia sembra provare a far luce, ma non riesco a capire cosa sta cercando di dire.
Rainbow tables effectively solve the problem of collisions with ordinary hash chains by replacing the single reduction function R with a sequence of related reduction functions R1 through Rk. In this way, for two chains to collide and merge they must hit the same value on the same iteration.