Hacker News new | past | comments | ask | show | jobs | submit login

A secure hash function is a cryptographic primitive. Its goal is to resist collisions, particularly preimages (predictable collisions), while being as fast as possible. To steal Schneier's words, hash functions are the glue that binds most cryptosystems (like SSL/TLS or PGP).

A password storage function is a cryptosystem built out of crypto primitives. The primitives are designed to be fast, but the cryptosystem should be slow. One of the goals of a password storage function is to find a reasonable, flexible way to slow down fast crypto primitives.

So the problem here is just terminology; you're conflating password storage functions with hash functions.

And now you have another perspective on why "salted SHA256" is an evil password storage function: it's simply using a raw hash function, rather than building a password storage function out of them.

Also: you can't really "build tables" out of any password storage function with a nonce ("salt"); defeating "tables" is as simple as adding a public random number to each password. I'm writing this because it's worth remembering that "building tables" is just one of many attacks against a password storage function, and it is not the most important one.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: