Say you have a truly random hexadecimal key formatted as 1234.5678.ABCD, with 48-bit entropy. Assuming the key is stored with no hashing/salting, how fast/easy would it be to brute force it with current hardware? I'm interested in 2 different scenarios:

  • Attacker with $1000 budget
  • Attacker with $1M budget

Bonus points if you can provide sources.


A day, instantly.

48 bits are not an awful lot, also merely generating (which per se does not make a lot of sense) that many keys is very fast. Even a naive single-threaded CPU implementation on a cheapish (not even remotely close to $1000) desktop computer could do that in a day or two.

In order to be meaningful, you must do something with these keys to verify them. It is explicitly mentioned "no hashing/salting" in the question, so one can safely assume that no expensive key derivation (think beecrypt or such) which artificially slows us down needs to be done.
I will therefore assume that you need to decrypt a block of AES and compare the result to a known plaintext.

This article claimed 11Gbps on a CUDA implementation 6 years ago, which would boil down to about 4 days for brute-forcing your 48-bit key. Assume that a rig with a current upper middleclass or high-class GPU is 3-5 times as fast, and we are at approximately one day for your $1000 budget (give or take a few hours, it makes no difference).

A $1M budget attacker could naively just do that same attack with 1000 machines, which would require a minuscule amount of communication between nodes (add some milliseconds) and place him at around 1 1/2 minutes, give or take a few secs.

If you however assume that an attacker with such a budget is serious about the attack, you must assume that something better is used. A HPC cluster comes to mind as the next naive solution, but why not invest in FPGAs?
If you are serious, you can easily get 10 or 100 times as fast than the "simply use 1000 desktop computers" solution for the same money. Let's just assume 100 times faster, and we're at 0.9 seconds. Why assume? Well, because it no longer makes a difference at this point.

Practically, it doesn't matter at all whether an attack takes 9 seconds, 0.9 seconds, or 0.00009 seconds. They all fall under instantly. Anything you can crack in 9 seconds is doomed.

  • 2
    So, beecrypt is like bcrypt but uses bees? ​ ^_^ ​ ​ ​ ​ – user49075 Mar 15 '16 at 11:01
  • @RickyDemer: Yep, I just love bees. They're busy things working from dawn to dusk, too, which would actually make sense for the name, as well. And bumblebees, of course! :-) – Damon Mar 15 '16 at 12:19

Given that 48 bits have 2.81475e14 combinations, and that you can generate a few billion a second, it should not take more than a day. A day = 86400 seconds.

  • 1
    He did not specify what he needs the key for. – Creator Mar 15 '16 at 10:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.