What is is strength of the key derivation? Specifically, how many milliseconds or microseconds would it take a desktop computer to check a guessed password to see if it is a match? I am aware this varies by computer, so I want a ballpark, and I'd give a 3GHz single core computer as an example, but take your pick.

Assuming there are no significant flaws in the implementation, and the symmetric encryption is of good quality, then I can use your answer combined with knowledge of my password strength to estimate the cost for an attacker to decrypt my Android.

Obviously there are caveats. If the phone is still on, the attacker could follow a procedure to bypass the encryption obstacle (using a freezer, and swapped ROM, or other technique). There may be other caveats worth mentioning.

1 Answer 1


Slide 23 of this presentation claims that the key derivation for "Android Encryption" is PBKDF2 (presumably with HMAC/SHA-1) and 2000 iterations. Since each iteration implies one HMAC call, which itself uses two nest SHA-1 invocations, this amounts to 4000 SHA-1 calls to check one password.

A 2.4 GHz Core2 quad CPU can compute about 48 millions SHA-1 per second (source: me), translating to about 12000 tried passwords per second. If the password is a four-digit PIN code, it will not last long...

With a GPU, you can go to the billions of SHA-1 instances per second. OclHashcat claims measured performance of 27 billions of SHA-1 on a PC with eight big GPU; this would translate to more than 6 millions tried passwords per second with PBKDF2 as used in Android.

  • I have set up encryption my phone (Note II) which includes Android 4.3. It requires that the lock screen be configured with a password. Password requirements are: at least 1 letter, at least 1 number, at least 6 characters. Commented Jan 14, 2014 at 20:10
  • "If the password is a four-digit PIN code" You can delete that sentence, it won't be. (except maybe on older Android versions?) Commented Jan 14, 2014 at 20:11

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .