Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I found this article on SO, but the answer was short, and the subject was closed,

What i don't understand, is:
Which one of the two limits memory usage to avoid custom Hardware to break the password?

Edit: there is an excellent discussion for beginners like me here:

share|improve this question
up vote 4 down vote accepted

The scrypt function is specifically designed to hinder such attempts by raising the resource demands of the algorithm. Specifically, the algorithm is designed to use a large amount of memory compared to other password-based KDFs, making the size and the cost of a hardware implementation much more expensive, and therefore limiting the amount of paralleling an attacker can use (for a given amount of financial resources).

It means that some hashing algorithms use few memory, so that specific, custom hardware can be created to brute-force it. Since they use few memory, those hardware aren't that expansive, and can be done, at some extent.

When you require a large ammount of memory, you assure it won't fit in those L1, L2 and even L3 caches of the processor, so external memory (slower) will be accessed. And also means that a custom hardware will require a large ammount of memory, for each processor, and that is very expensive, specially if it is fast...

edit Yes, including PBKDF2....

edit 2: also read the accepted answer on this:

share|improve this answer
but other KDFs, it means PBKDF2 too? – Abdelouahab Pp Jun 7 '13 at 18:30
according to , scrypt would be better than bcrypt, that would be better than pbkdf2. But scrypt isn't widely used, so it might have some weakness not yet discovered... – woliveirajr Jun 7 '13 at 18:37
@AbdelouahabPp edited again my answer... – woliveirajr Jun 7 '13 at 18:39
it uses salsa/20 and some other things... take a look at – woliveirajr Jun 7 '13 at 19:31
let us continue this discussion in chat – woliveirajr Jun 7 '13 at 19:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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