2

I use KeePassXC on a Linux distribution for managing my passwords.

For the sake of the argument, let's assume that the file is publicly accessible, and the entire world's number 1 priority for the next 100 years is to try to decrypt my kdbx file. No more Facebook, no more extra activities, the whole manpower of the world (Including individuals, corporations, organizations and so on) is suddenly dedicated to this in the best of their ability and knowledge, 18 hours a day, for the next 100 years.

Let's also assume, for the sake of the argument, that me and my computer are out of the equation (no Rubber-hose cryptanalysis, no system hacking, etc), all the world has it's the kdbx file, the protocol info (below) and some hints about the password.

Details: Encryption Algorithm: AES 256 Bit Key Derivation function: Argon2 (KDBX4) Transform rounds: 11, Memory usage 64 MiB Parallelism 4 Threads, (Benchmarked for 1 second delay). Only Password, no key file.

Password: 49 characters, that don't include words in the dictionary (perhaps just accidentally, 3-letter words), however, not even randomly generated.

The question is: how likely is it that the file is decrypted within 100 years?

5
  • 2
    That sounds like a math problem, not a security or crypto question. Regardless, the answer is %0.0000... Jan 13, 2019 at 3:33
  • 4
    I'm voting to close this question as off-topic because these are completely unrealistic assumptions - and the basis of proper risk analysis is to have realistic assumptions. Additionally "number 1 priority for the next 100 years" does not say how much priority the rest will have: will humanity starve, fail to reproduce or just fail to develop faster computers which might tackle the problem faster. Or more likely they will use rubber-hose analysis which you specifically excluded. Or they simply will not care about your data at all. Jan 13, 2019 at 6:46
  • Even if you had all particles in the observable universe working as computers trying to crack your 49 character randomly chosen (all printables) password, it will take more than 100 years!
    – daygoor
    Jan 13, 2019 at 6:59
  • This question can't really be answered because experts have been saying that the technological singularity is expected within the next 100 years, some saying it might even happen in a few decades from now. If everyone on earth focused on technological advancement to crack your passwords and algorithms, that singularity might even happen much faster and with much higher probability. As a result, a super-intelligence might be able to find flaws in KeePass and its math.
    – reed
    Jan 13, 2019 at 12:18
  • Yes, the assumptions here are completely unrealistic, but I think it's useful for every professional working with crypto to go through a thought exercise like this so that they get an intuition for just how big the numbers involved in cryptography are. Personally, I had this eureka moment while watching this YouTube video: How Secure Is 256 Bit Security?. Jan 13, 2019 at 14:59

2 Answers 2

0

It all comes down to the strength of your password. First, you need to know how many bits of entropy in your password. Keepass will estimate password strength in bits, but I find that the zxcvbn test gives better estimates (I *believe* that website runs zxcvbn locally in your browser and does not upload anything to the site, but would forgive your tin-foil-hattery if you don't want to type your master password into some random website).

According to this Quora post there were estimated to be 2 billion personal computers in the world in 2014. So let's pick 10 billion for the number of personal computers, cell phones, and servers in 2019. possibly off by a factor of 2 or 4 if we assume that all machines are multi-core. Possibly off by more than that if we include all GPUs on the planet. So "plus or minus a few orders of magnitude".

You say your crypto params were chosen for a ~ 1 second delay in key derivation from the password, so calculate:

2^num_bits_of_passwd * 1 [second] / 10 billion [machines guessing]

would give you the expected number of seconds to crack.

As an example calculation, KeePass just generated me a 20 char password which it estimates at 117 bits, so *math*, the crack time is 3.8 x 107 x age of the universe, plus or minus a few orders of magnitude.

4
  • 1
    I just tested that website and the calculation is entirely client side. Also, it's important to take into account the fact that, if the entire world was in on this, you'd get most power from ASICs covering millions of acres of land.
    – forest
    Jan 13, 2019 at 8:53
  • 1
    This just shows how important threat modeling is: imagine 7 billion people trying to do something that they know will never work, because it will take too long. After they do this calculation, they will be like: "Fuck bruteforcing, let's focus on other stuff: vulnerabilities, side-channel attacks, espionage, etc". All things that the OP wrongly excluded from the threat model.
    – reed
    Jan 13, 2019 at 12:25
  • 1
    Yes, the assumptions here are completely unrealistic, but I think it's useful for every professional working with crypto to go through a thought exercise like this so that they get an intuition for just how big the numbers involved in cryptography are. Personally, I had this eureka moment while watching this YouTube video: How Secure Is 256 Bit Security?. Jan 13, 2019 at 14:59
  • 1
    Thanks for the answer! I realized that KeePassXC in fact gives an entropy estimate in bits, I also tried the zxcvbn test ( by typing a modified password), and the entropy estimate in bits is 215, corresponding to "Approx time to crack: centuries". Nice video too. I am aware that if my password was to be revealed, it would most likely be because of other security implications which are extensively more probable, however, as you correctly pointed out, the question was meant as a thought experiment, it was not meant to represent a realistic threat model.
    – Tom
    Jan 13, 2019 at 16:33
0

This question can't really be answered because several experts have been saying that the technological singularity is expected within the next 100 years, some saying it might even happen in a few decades from now. If everyone on earth focused on technological advancement to crack your passwords and algorithms, that singularity might even happen much earlier and with much higher probability. As a result, a super-intelligence might be able to find flaws in KeePass and its math, in ways that we cannot understand. In other words, you can't predict what would happen in 100 years if the whole world focused on this task, because other than being a totally unreasonable scenario, future technological development is too difficult to take into account. Even the development of KeePassXC is impossible to predict: will it still be maintained in 100 years? Changes today happen so fast that what will happen in 100 years is way beyond our comprehension. And just think what would happen if everyone focused on tech and science just to attack you, as you suggested.

Since your question can't be answered, the only relevant thing to point out as far as INFOSEC is concerned is that your threat model is completely wrong. A wrong threat model will lead to wrong questions and a false sense of security. Your threat model, in fact, is literally a joke. Why would the whole world just try to bruteforce your password, and not also try to hack your machine, spy on you, put backdoors in software or hardware, etc.? Especially considering that it would be very easy to hack you with those methods, 100% guaranteed. For example, the KeePassXC developers could put backdoors in the software. Or hardware manufacturers could do the same in their hardware. Or the plumber could put hidden cameras in your house. Or mathematicians could start to lie about AES, saying that it's been cracked and that everybody needs to switch to AES-improved, which is actually a faulty algorithm created on purpose just to hack you. All this would of course be possible and easy if everyone was really targeting you.

At Apple
Tim Cook: From now on, everyone will be trying to bruteforce Tom's password! It will take millions of years, so let's start now, there's no time to lose!
Employee: Mr. Cook, why don't we just exploit the usual backdoor that we have been including in our OS since the 80's?
Tim Cook: No way, that's so unethical! The rule of the game is that we can only try to bruteforce the password. Or crack the algorithms in some way. Because Tom said so!
Employee: Oh, what a fun game! But I just started the script for bruteforcing, now what do I do? Just wait forever?
Tim Cook: No, you lazy ass! In the meantime, go get a math degree so then you can try to crack the encryption! And remember this is a worldwide effort, so remember to tell you mother and your grandma to do the same.

You see why your threat model is literally a joke? In the end, an "overly-secure" password is not more secure than a "normally-secure" password, because nobody is going to waste their time and energy for bruteforcing, without also considering alternative attacks. As shown in Mike Ounsworth's answer, your password is very secure, since a 49-char random password is expected to have more than 128 bits of entropy.

5
  • Thanks for the very interesting reply. I agree with you, of course it's unrealistic! Most intrusions in the world happen because of side-channel attacks, not because the protocol brute-forced. Perhaps I was not clear enough about this, the question is meant as a thought experiment to get an understanding of how secure the protocol itself is to brute-force and possibly how likely it would be that there can be a flaw in the math of the protocol (or KeePassXC implementation), I wanted to isolate this specific scenario from the more broad implications of security.
    – Tom
    Jan 13, 2019 at 16:12
  • The irony in this answer is amusing: you claim that the question has an incorrect threat model (whatever that means), then you give a hand-wavy answer about "artificial superintelligence (ASI) will abruptly trigger runaway technological growth", which is no more concrete that the question you're criticizing. It's certainly common practice in cryptography to estimate brute-forcing effort in terms of worldwide computing power, or energy content of the sun. Clearly nobody will consume the sun to get into my gmail, but it gives an idea of scale. Jan 13, 2019 at 17:19
  • @MikeOunsworth, but the question didn't just ask about computational power. It involved lots of other things, including cracking the algorithms and "people working 18 hours a day" for this goal. Plus, exponential growth and the difficulty of predicting the future are facts. There are reasons to believe that the singularity is possible, of course the probability isn't 100%, but it's not impossible (unlike the OP's threat model, which is 100% impossible). Of course your calculations are useful and very interesting, my answer just focuses on different aspects of the question.
    – reed
    Jan 13, 2019 at 17:36
  • The question is unrealistic when stated as-is, but the threat model could be made more realistic with minor tweaks. For example, imagine OP has an encrypted flash drive with something exceedingly important to the survival of humanity which cannot be feasibly re-discovered independently. If OP dies and all that is left over is the flash drive, then this threat model is a lot easier to believe (at least as a movie plot).
    – forest
    Jan 21, 2019 at 3:30
  • @forest, yeah, I actually hadn't thought about that possibility (OP dying). If he's dead a lot of attacks have to be ruled out: rubber hose, backdoors, etc.
    – reed
    Jan 21, 2019 at 18:28

You must log in to answer this question.

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