March, 2026

Exponents are very counterintuitive, they get very big very fast. I find it helpful to always keep this number in mind: the number of atoms in the observable universe is about 2300, actually about 2266 more precisely. So with 256 bits one can count 1/1000-th of the atoms in the Universe. Therefore a brute-force search for a 256-bits key would have to “look under” each 1000-th atom in the universe… that “actually feels” like a safe margin!
I also find it very helpful to know how much hashing the Bitcoin network is currently doing per second, that’s about 270 (and thus 295 per year). Then it makes sense, why 80-bits keys are no longer considered adequate.
Here are some more helpful numbers along these lines:
It is only meaninful to think about an exponential-time algorithm, O(2n), for inputs of small length n < 300. For larger n it becomes kind of meaninless. Same is true for a polynomial-time algorithm, if the runtime is O(n300) it samewise infeasible.
I was once in a group of students helping Don Knuth to clean-up a small local library in the Stanford’s CS department. At the time he was working on SAT solvers for Volume 4 of his The Art of Computer Programming book series. When we were done, I asked him: “What’s your intuition now, do you think P = NP or not?” And his answer was most remarkable. He said he feels P = NP, but the degree of the polynomial would be so large, that it is not tractable in any practical sense. Indeed, if it takes O(n300) time to solve an NP-complete problem, it is well above feasible. So cryptographers would still stay in business ;)