Rainbow Table - Rainbow Tables

Rainbow Tables

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. Consequently, the final values in each chain will be identical. A final postprocessing pass can sort the chains in the table and remove any "duplicate" chains that have the same final value as other chains. New chains are then generated to fill out the table. These chains are not collision-free (they may overlap briefly) but they will not merge, drastically reducing the overall number of collisions.

Using sequences of reduction functions changes how lookup is done: because the hash value of interest may be found at any location in the chain, it's necessary to generate k different chains. The first chain assumes the hash value is in the last hash position and just applies Rk; the next chain assumes the hash value is in the second-to-last hash position and applies Rk−1, then H, then Rk; and so on until the last chain, which applies all the reduction functions, alternating with H. This creates a new way of producing a false alarm: if we "guess" the position of the hash value wrong, we may needlessly evaluate a chain.

Although rainbow tables have to follow more chains, they make up for this by having fewer tables: simple hash chain tables cannot grow beyond a certain size without rapidly becoming inefficient due to merging chains; to deal with this, they maintain multiple tables, and each lookup must search through each table. Rainbow tables can achieve similar performance with tables that are k times larger, allowing them to perform a factor of k fewer lookups.

Read more about this topic:  Rainbow Table

Famous quotes containing the words rainbow and/or tables:

    The novel is a perfect medium for revealing to us the changing rainbow of our living relationships. The novel can help us to live, as nothing else can: no didactic Scripture, anyhow. If the novelist keeps his thumb out of the pan.
    —D.H. (David Herbert)

    The word unto the prophet spoken
    Was writ on tables yet unbroken;
    The word by seers or sibyls told,
    In groves of oak, or fanes of gold,
    Still floats upon the morning wind,
    Still whispers to the willing mind.
    Ralph Waldo Emerson (1803–1882)