Hashing passwords for storage, or using similar cryptographic functions to generate cypto keys from passwords, was problematic for a long time. Hashing functions were first created to be computationally efficient and so attacking them meant that it was quite easy to reproduce them. This led to functions that took significant computational effort. Typical of these was PBKDF2 (Password-Based Key Derivation Function 2). Implementations of PBKDF2 have used many thousands of iterations of the function to compute their results meaning that an attackers ability to employ brute force was severely impaired.
However, research just issued shows that it is possible to precompute certain elements of the PBKDF2 function and hence avoid up to 50% of the CPU intensive operations. This represents a significant dent in the protection afforded by PBKDF2.