Post
Topic
Board Service Announcements
Re: [ANN] bitaddress.org Safe JavaScript Bitcoin address/private key
by
maxmint
on 01/12/2013, 12:18:27 UTC
v2.6.2 support input of a private key in base6 format which shall be defined as:
99 characters (1,2,3,4,5,0) where 1=1 and 6=0

This allows you to create a private key with physical randomness with 99 rolls of a die. Use 3 dice and do 33 rolls.
Then enter the 99 character string into the wallet details tab of bitaddress.org and you've got yourself a truly randomly generated bitcoin wallet.

When using 99 rolls, the highest base6 number one could come up would be this:
Code:
555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555

This results in this hex private key:
Code:
F0BB8A1BBDE9163B9E053E8F918BF8E4D34034D7FFFFFFFFFFFFFFFFFFFFFFFF

I'm quoting from the Bitcoin wiki:
Quote
Nearly every 256-bit number is a valid private key. Specifically, any 256-bit number between 0x1 and 0xFFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFE BAAE DCE6 AF48 A03B BFD2 5E8C D036 4141 is a valid private key.

Now there's quite a large amount of numbers between
the highest dice generated number at F0BB8A1BBDE9163B9E053E8F918BF8E4D34034D7FFFFFFFFFFFFFFFFFFFFFFFF
and
the upper limit at FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141

It seems the 99-rolls dice method is not using the full range of possible private keys, leaving the upper 5.96% of possible keys untouched.

I don't think that's a real problem because the pool of dice generated possible private keys is still huge. But I would prefer a dice method that covers the full range of possible private keys. 100 rolls should be enough, but that could produce number that are too large.
Is there any easy solution to this?

In any case, I love the principle of rolling my own private keys and not being dependent on software RNGs.