There's three different password hashing algorithms being discussed here:
| Algorithm | Cryptographic primitive | Crypto-currency that uses it| Miner speed |
|-----------|-------------------------|-----------------------------|---------------|
| PBKDF2 | SHA-256 | Bitcoin uses SHA-256 | 7 Thash/sec |
| | | | |
| Bcrypt | Whirlpool cipher | (none) | n/a |
| | with 4kB key setup | | |
| | | | |
| Scrypt | Salsa/20 BlockMix | LiteCoin | 100 Mhash/sec |
The difficulty of hashing comes from how much memory has to be accessed.
- SHA-256 is meant to be fast. It uses little memory
- BCrypt's expensive key setup randomly uses 4KB of memory while it sets up the key
- In litecoin, the scrypt paramters of
N=1024, r=1, p=1
causes scrypt to require 128 * 1 * 1024 = 128 KB
of memory
An important point is that these ASIC miners are dedicated to litecoin, and to those specific LitCoin scrypt parameters. That means that you, using the default scrypt parameters:
require:
Using some rough math, based on experience with scrypt, with those real-world password parameters, one of those expensive boxes would be able to do:
6,100 hash/s = 0.006 Mhash/s
Five orders of magnitude slower; but still a concern. My lone Intel i5-2500 can do 5 hash/sec
with those parameters. That custom hardware is over 1,000x faster.
Ideally your scrypt is tuned so that it takes about 500ms on your hardware. On my hardware that is accomplished with:
For a memory footprint of 36 MB. For one of the miners, it would be able to do 1,205 hash/s - 200 times faster than my lone PC.
tl;dr: You do have to worry about miners. Fortunately correct horse battery staple
keeps your passwords out of reach of everyone.