Suppose we have a BLE-related value with 7 bytes of entropy. One byte is 8 bits, so 7 bytes is 7 * 8 = 56 bits. For this calculation, treat that as a uniform search space with 2^56 possible values. If an attacker must try every candidate in the worst case, the attacker performs 2^56 guesses. This assumes all 56 bits are independent, random, and usable; fixed, reserved, or predictable bits would reduce the real entropy.

Here 2^56 means 2 raised to the 56th power. It is 72,057,594,037,927,936, which is about 7.21 * 10^16. It is not 10^56. Also, in languages such as C and Python, ^ is a bitwise XOR operator; the mathematical exponent form would be written as 2**56 in Python.

Now assume a deliberately simple machine model:

  • One processor running at 4.0 GHz.
  • The processor can execute 4,000,000,000 cycles per second, assuming one useful candidate-checking cycle stream.
  • Each candidate check costs exactly 3 cycles.
  • The target value is the last candidate tried, so this is the worst case.

Calculation

The search space size is:

2^56 = 72,057,594,037,927,936 guesses

At 3 cycles per guess:

total cycles = 72,057,594,037,927,936 * 3
             = 216,172,782,113,783,808 cycles

A 4.0 GHz processor performs 4,000,000,000 cycles per second, so:

time = 216,172,782,113,783,808 / 4,000,000,000
     = 54,043,195.52844595 seconds

Converting seconds to years using 365.25 days per year:

years = 54,043,195.52844595 / 31,557,600
      = 1.712525525656 years

Another way to sanity-check the same result is to compute guesses per second first:

guesses_per_second = 4,000,000,000 / 3
                   = 1,333,333,333.33 guesses/second

time = 72,057,594,037,927,936 / 1,333,333,333.33
     = 54,043,195.52844595 seconds
     = 1.712525525656 years
Quantity Value
Entropy 7 bytes = 56 bits
Search space 2^56 = 72,057,594,037,927,936 guesses
Cost per guess 3 CPU cycles
Processor speed 4.0 GHz = 4,000,000,000 cycles per second
Implied guessing rate 1,333,333,333.33 guesses per second
Worst-case time 54,043,195.52844595 seconds, about 625.5 days
Worst-case time in years 1.712525525656 years
Average-case time 0.856262762828 years, or about 312.75 days, if the value is equally likely to be anywhere in the search order

In this model, the worst-case cracking time is about 1.71 years. The average case is about 0.86 years, assuming the target value is uniformly random and the attacker searches in a fixed order.

Important Caveat

The assumption 3 cycles per candidate is not realistic for most real cracking scenarios. It implies about 1.33 billion guesses per second on this one processor. With a 2^56 space, that toy rate still gives a worst-case time of about 1.71 years. Real systems often add costs that are much larger than a few CPU cycles. Password systems usually store hashes, and good password storage uses slow password-hashing algorithms such as bcrypt, scrypt, Argon2, or PBKDF2. BLE-related attacks may also require protocol messages, radio timing, pairing attempts, or device responses; if the check cannot be done fully offline, those costs can dominate.

Real cracking time depends on many details:

  • The password-hashing or verification algorithm, if the value is checked through one.
  • The configured work factor or memory cost.
  • Whether the attack is online or offline.
  • Rate limits, lockouts, pairing attempt limits, radio timing, and monitoring for online attacks.
  • CPU, GPU, FPGA, or ASIC hardware available to the attacker.
  • Whether all 56 bits are truly random or whether some bits are fixed, biased, or predictable.

The formula is still useful as a first-principles estimate:

worst_case_seconds = (number_of_guesses * cycles_per_guess) / cycles_per_second

For this specific input:

worst_case_seconds = (2^56 * 3) / (4 * 10^9)
                   = 54,043,195.52844595 seconds
                   = 1.712525525656 years