26.12.2014 Views

bachelor

bachelor

bachelor

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2 Attacking the MAC 29<br />

point, then the f function is run over and over again on h′ so as to build a chain<br />

“on top of” h′. If at any point the function outputs a distinguished point, it<br />

is checked in the same manner as before. However, if there is no match once a<br />

distinguished point has been found, h can be guaranteed not to be in the table.<br />

This is because the deterministic properties of the f; if some distinguished point<br />

is reached after h, one can be sure that for past reconstructions of the chain<br />

that, indeed, the chain would end in the same distinguished point.<br />

rejsekort H f74eed6e R ewaisnshw H 491b2cb4 R bveiytoo<br />

(continued)<br />

H 3b7b7c75 R ewaisnshw H 491b2cb4 R bveiytoo<br />

Figure 3.4: A cycle in a Hellman chain. The two hash values that produce the<br />

same reduction are highlighted in red.<br />

Finally, Hellman tables have the undesired property of causing false alarms.<br />

This phenomenon is a corollary of Helman tables’ inherent misfeature of merging.<br />

It can be explained by a chain in the table merging with the temporary<br />

chain that is being constructed when a hash value is tried. The two chains will<br />

have the same end value, but the stored chain will not contain the sought hash.<br />

Therefore one cannot be sure that a preimage can be recovered before the chain<br />

is rebuilt, unless the R(h) is a distinguished point. Applying any number of f<br />

operations to R(h) might lead to merges with some chain in the Hellman table<br />

before the preimage, leading to a false alarm.<br />

3.2.1.2 Rainbow tables<br />

In 2003 Philippe Oechslin presented a new approach for these time-memory<br />

trade-offs that did away with some of the problems of the older algorithm [9]; he<br />

narrowed down the undesired probabilities to the reduction function—Hellman<br />

tables uses the same function for all reductions, and this causes collisions, resulting<br />

in chains merging and cycling. Oechslin proposed a new kind of tables,<br />

namely rainbow tables.<br />

Rainbow tables work like the older TMTO in the sense that they facilitate<br />

reverse lookups in hashes and other one-way functions, but they use different<br />

reduction functions for every column in the table, resulting in merges only if<br />

two plaintexts are the same and appear at the exact same element index of two<br />

chains. For long chains the proability of this happening is minuscle.<br />

To look up values in a rainbow table the attacker would take the reduce the

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!