Lately I have been interested in encryption, secure storage, etc and was attempting to grasp how large of a key space 128bit really is. I decided to use very fine sand (as defined by Wikipedia as being 1/16mm diameter) and see how much sand is 2^128 grains.
So I know 2^128 ~ 3.402 * 10^38
And assuming we are translating a 1/16mm diameter grain of sand into a sphere (probably not quite right, but should be sufficient for a volume measurement) ends up translating to ~8000 grains of sand per cubic mm.
There are 10^18 cubic mm in a cubic km and the Earth's volume is 1.08321×10^12 km3 (again, according to Wikipedia).
So (8000 grains per mm3) * 10^18 mm3 / km3 * 1.08321 x 10^12km3/earth = 8.6656 x 10^33 grains of sand / Earth (we are talking completely filled!)
3.402 * 10^38 (size of 128bit key) / 8.6656 x 10^33 grains per Earth = 39,267 earths.
Is that correct? A 128bit key space if converted into one key per one fine grain of sand would fill up 39,267 Earths?
Anyways, just my way of attempting to visualize the daunting task of a brute force attack against a AES-128 key ... Definitely interested in input if I messed up the math somewhere!
So I know 2^128 ~ 3.402 * 10^38
And assuming we are translating a 1/16mm diameter grain of sand into a sphere (probably not quite right, but should be sufficient for a volume measurement) ends up translating to ~8000 grains of sand per cubic mm.
There are 10^18 cubic mm in a cubic km and the Earth's volume is 1.08321×10^12 km3 (again, according to Wikipedia).
So (8000 grains per mm3) * 10^18 mm3 / km3 * 1.08321 x 10^12km3/earth = 8.6656 x 10^33 grains of sand / Earth (we are talking completely filled!)
3.402 * 10^38 (size of 128bit key) / 8.6656 x 10^33 grains per Earth = 39,267 earths.
Is that correct? A 128bit key space if converted into one key per one fine grain of sand would fill up 39,267 Earths?
Anyways, just my way of attempting to visualize the daunting task of a brute force attack against a AES-128 key ... Definitely interested in input if I messed up the math somewhere!