Slow bcrypt
#1
Hi, when i benchmark bcrypt i get these speeds: (2080ti)

Hashmode: 3200 - bcrypt $2*$, Blowfish (Unix) (Iterations: 32)
Speed.#1.........:    27791 H/s (38.16ms) @ Accel:16 Loops:4 Thr:8 Vec:1

But when i try to crack a hash with pipe:

Hash.Type........: bcrypt $2*$, Blowfish (Unix)
Time.Started.....: Mon Apr 15 11:00:47 2019 (3 mins, 1 sec)
Time.Estimated...: Mon Apr 15 11:03:48 2019 (0 secs)
Guess.Base.......: Pipe
Speed.#1.........:      779 H/s (39.55ms) @ Accel:16 Loops:4 Thr:8 Vec:1

Without pipe:

Time.Estimated...: Mon Apr 15 11:53:06 2019 (48 mins, 16 secs)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:      897 H/s (37.65ms) @ Accel:16 Loops:4 Thr:8 Vec:1

I have also tried with prince, same speeds, is there any way to make bcrypt run faster?
why is the benchmark going for 27791 H/s and a single hash going at 897 H/s ?
Reply
#2
the cost factor is encoded in the hash

The example hash for instance starts with "$2a$05$" (hashcat -m 3200 --example-hashes) and therefore has an exponent of 5 (cost factor) and therefore uses 2^5 = 32 iterations.

Every hash can use different settings (cost factor, exponent) and therefore the speed changes significantly.
Reply
#3
Thank you for the super fast reply philsmd
so i cannot tune arround this, it is hardcoded in the hash and no matter what i do it will run at this speed right?
Reply
#4
you can't change the iteration count (cost settings) without making the hash uncrackable. Therefore, technically you could change it, but it won't crack for sure with wrong settings.

btw. you didn't mention what your settings are, is it 5 (=> 2^5 = 32) too ? pipe in theory could change the speed a little bit, but if the password generator on the left side is very slow or the hashing algorithm on the right not slow/hard enough, the speed might be a little bit slower than expected.

btw. also do not forget to use -w 3 or even -w 4 to reach maximum speed (like the default settings in the benchmark are using) ... and for other hash types that do have both pure and optimized OpenCL kernels (NOT applicable for bcrypt), you should also use -O (again, not needed/meaningful for -m 3200 = bcrypt)
Reply
#5
Yes i have tried many different optimizations and all clean only with the -O and without it, no big difference on the speed.
im probably going to have to forget this one and move on Sad
Reply