-1

Im finding it difficult to understand reverse look up tables and how it works, and the concept of hash chains. This is apart of a computer security model i am taking. So i understand that brute force, dictionary attack and look up table take up a lot of time, and store all options and then search through all the database. however reverse look up tables addresses this problem, and sacrifices time for storage. But how this happens i am getting confused. Many thanks

  • 4
    Could you explain more about what your understanding of the reverse lookup tables are? how they are used? Have you talked with your instructor about it (often they have key pieces of information that are necessary for later tests and can help point out existing information in the existing resources for the class)? – user40980 Mar 23 '15 at 16:15
  • So i understand that brute force, dictionary attack and look up table take up a lot of time, and store all options and then search through all the database. however reverse look up tables addresses this problem, and sacrifices time for storage. But how this happens i am getting confused. – John Mar 23 '15 at 16:20
  • Could you put that in your question (and elaborate on it a bit more - given your understanding of this, why don't you understand reverse lookup tables - since your comment appears to be a sufficent answer too)? – user40980 Mar 23 '15 at 16:23
  • I've added that information the question, and i want to understand how it works if that makes sense? how does it sacrifice time for storage and the process off using and creating a reverse look up table – John Mar 23 '15 at 16:26
4

Let's say you want to crack passwords which are stored as MD5 Hashes (This is very old technology). Since brute force takes a real long time, and this function is "non-reversible", then the attack is the Reverse Lookup table.

The idea is that you create a table storing what you enter as input and the hash it generates. After you run your routine with as many inputs you think are valid, you can then attack the password file with a reverse lookup table: you browse your database browsing not by the password but for what Hash matches.

Reverse lookup then, is simply not looking by the same input, but for inputs which generate the same output. For example:

input | Hash generated

admin |  21232f297a57a5a743894a0e4a801fc3

Instead of looking for the admin string, in your table you would be looking by the string which matches the hash 21232f297a57a5a743894a0e4a801fc3.

For more details, look for Raibow tables in the wikipedia, I think you will note that they are not exactly the same, but in the article you can find the difference between both.

How it sacrifices time for storage? The idea is that you would need a full database with the data as similar to the one above, and this is storage. The time per query, is only a B-tree lookup (O(log n)) on the database, since the key could be the hash. This does not mean that to generate the table you don't spend time. It just means that once you have the database, you can query it in a very small time.

Not the answer you're looking for? Browse other questions tagged or ask your own question.