Comprendo cómo funcionan las tablas de compensación de tiempo-memoria de Hellman al crear cadenas de resultados de función de reducción y hash y al almacenar el último resultado después de varias operaciones. ya que la función de reducción asigna desde el espacio hash (crapton de caracteres) al espacio de contraseña (digamos hasta 10 caracteres), es obvio que vamos a tener un montón de colisiones.
Las tablas arco iris intentan resolver esto mediante el uso de múltiples funciones de reducción. No entiendo cómo o por qué eso ayuda.
Este artículo de wikipedia parece intentar ponerle algo de luz, pero simplemente no puedo entender lo que está tratando de decir.
Las tablas arco iris resuelven efectivamente el problema de las colisiones con cadenas de hash ordinarias reemplazando la función de reducción simple R con una secuencia de funciones de reducción relacionadas R 1 a R k . De esta manera, para que dos cadenas colisionen y se fusionen, deben alcanzar el mismo valor en la misma iteración.