I understand why a hashing algorithm should be slow but is the method that makes it slow important to the strength of the hash? Everything I've read says that the algorithm should be computationally slow - hash the thing over thousands of iterations or concatenating it with huge strings to slow it down. This seems like it would put unnecessary strain on the CPU. Couldn't you just hash the password once with a good random salt and then just pause the thread for a set amount of time?
Take the 2-minute tour
×
Information Security Stack Exchange is a question and answer site for Information security professionals. It's 100% free, no registration required.
|
The goal isn't to make the hash slow for you to compute. The goal is to make the hash slow for an attacker to compute. An attacker with fast hardware and a copy of the hash and salt, giving him the ability to mount an offline attack, to be specific. The attacker need not pause a thread during his computations just because you added that to your software. He is going to compute the hashes as quickly and efficiently as he possibly can. Therefore, in order to make it computationally hard for him, with all of his fast hardware and his efficient hashing software, the hash must be computationally hard for you to compute as well. |
|||||||||||||||||||||
|