I discovered the newer OpenSSH format for storing SSH private keys (
ssh-keygen -o) uses bcrypt to generate the symmetric key to encrypt the private key. I understand that the
-a option is used to adjust the bcrypt work factor. However, I don't understand the exact relationship between the work factor and the given value.
-a 200 takes about 5 seconds on my CPU, while this benchmark maxes out with a work factor of 20 taking over a minute. The work factor is a logarithmic scale, and I doubt my laptop is really >2^10 times faster than this person's laptop.
-a does not directly translate to the bcrypt work factor. So what is the relationship?
The reason I want to know is to extrapolate a "worst-case" cracking rate for my chosen
-a value based on this benchmark of a top-end (for 2017) cracking rig (which guesses ~100k hashes/sec across 8 GPUs, using a bcrypt work factor of 5 for the tests).