Let's say that you had to give a wallet encrypted with Armory to the NSA, and you knew the NSA would spend their entire budget for one year on trying to crack your wallet and steal your bitcoins. All their employees would devote 100% of their time to this project, and all their computing resources would be used for this project. What's your estimate of the probability that they would succeed in stealing your bitcoins? Does that change if you were forced to create your wallet using Bitcoin-QT? (QT doesn't give options for encryption settings like Armory does, so many password guessing would be significantly faster with a QT wallet?).
It depends on the password size and the key-stretching settings. Let's make some assumptions:
- You use default Armory settings, which means it takes about 0.25 sec per guess on an i5-2500K CPU
- The NSA has no real advantages or shortcuts -- no SHA512 shortcuts, no clue what your password is or might be
- The password is 12 characters long, including all uppercase, lowercase, numbers and special symbols... so the password has an alphabet of approximately 70 letters.
- Since passwords are usually chosen by humans (and not proper randomness), let's assume that your password is good but doesn't have full 12 characters of entropy. Let's say 9 characters of real randomness spread across the 12 characters of password. (this is actually a tad optimistic, but we can scale the results based on any change in assumptions)
- Armory's key-stretching is designed to be GPU-resistant, since it requires 4-32MB of dedicated RAM per process/thread doing password checking. GPUs normally get something like 1,000x speedup at password guessing, but we'll assume 10x here.
Then to guess the password on a single GPU, it would require:
709 * 0.25sec / 10(GPUadvantage) = 1,008,840,175,000,000 seconds = 31,990,112 yearsOkay, so 32 million years on a single strong GPU. If we assume that they have 1,000,000 GPUs to throw at it, then it's 32 years to break that encryption using all of their resources for an entire generation of humans. It's actually a bit longer if they don't know how many characters it is and have to search through passwords shorter than 12 letters. That's fairly prohibitive, and requires the agency to divert
all resources to you.
If you up it to 16 characters with approximately 12 characters of entropy, then it goes from 32 years to 11,000,000 years. At most points in this process, they have better things to do with their resources than attempt this. In fact, they'd be much more likely to just go searching your house for paper backups or sticky notes that might just have the password on it, and then give up if they can't find it.