# Security implications of using a high entropy password with a low iteration count for a key derivation function

This question is related to my other question, but also this entropy calculation question as well as this article about PBKDF2. It may also be considered as a duplicate of this question, although in our current case the password's entropy isn't as high.

If a low iteration count is used, it can allow for fast brute-forcing, but what if the entropy of the password is high enough (50 bits? 100bits? more?)? Would it still matter this much?

Would there even be a way of determining a minimum entropy?
A limited charset like "0123456789ABCD" would surely hinder reaching high levels of entropy, but given a long enough length, it's rather hard for me to guess if it could still be considered safe or not.

• Entropy is not a measure of your character set, it is a measure of the number of possibilities and their probabilities. A long string does not guarantee high entropy. The character set and the length of the string don't matter much - that just addresses the encoding, at most they are an upper limit of entropy.
– tylo
Sep 10, 2019 at 6:43
• if you use a high enough entropy password, such as 36 random digits, even a single iteration of a hash is enough (we use 24 digits for 80-bit password security at work) Sep 11, 2019 at 0:17

## 1 Answer

If a low iteration count is used, it can allow for fast brute-forcing, but what if the entropy of the password is high enough (50 bits? 100bits? more?)? Would it still matter this much?

If the entropy of the process used to choose the password is high enough, then it doesn't matter how cheaply an attacker can test a guess for what the password might be. Provided the hash is uniquely salted for each user, if your password selection process has 128 bits of entropy, nobody will ever guess the password. (The story is more complicated if the hash is not salted, but suffice it to say that 256 bits of entropy is enough.)

Would there even be a way of determining a minimum entropy?

Study the process, not any particular password. For example, if your process is that you roll a d6 enough times to draw a ten-word diceware password from a 7776-word list, this process has 128 bits of entropy.

A limited charset like "0123456789ABCD" would surely hinder reaching high levels of entropy, but given a long enough length, it's rather hard for me to guess if it could still be considered safe or not.

From a 14-character alphabet like that, if you choose each character independently and uniformly at random, to attain 128 bits of entropy it suffices to use $$\lceil\log_{14} 2^{128}\rceil = \lceil128\log 2/\!\log 14\rceil = 34$$ characters. (For 256 bits of entropy, 68 characters.)