I have a top level familiarity with Rainbow tables (1 ,2 )
I also understand that salting adds a randomly generated alphanumeric string to each password before it gets hashed and put in a database.
My understanding of Rainbow tables (RTs) is that instead of a Hash table that stores hash/password combinations, an RT stores the first and last entry in a plaintext/hash chain that is created by using a hashing function and a reduction function.
So the user can access the same plaintext/hash combinations as they could in a hash table, but they are instead computed and found somewhere along the chain.
I'm obviously missing a key factor here but my understanding is that if the searchspace within the combined chains is large enough to cover any 24 digit alphanumeric string, then could it not still include all 16 digit passwords + all 8 digit salts (contrived example to help understand theory)?
It makes sense that salts make everyones passwords different, but I don't understand what it is about them that renders a Rainbow table useless.