Welp, I have plugged away like a busy little beaver, and made a proper dice -> paper wallet app.
**Dice to Bitcoin private key generator**
>How many sides on your dice?:6
Need 100 rolls of 6-sided dice. (258.496250072 bits)
Number of dice rolls so far: 0, need 100 more.
Input some dice rolling results, no space between rolls:)
>333222
Number of dice rolls so far: 6, need 94 more.
Input some dice rolling results, no space between rolls:)
>g
Generating random *insecure* dice rolls for remainder
dice used:
[3, 3, 3, 2, 2, 2, 3, 4, 1, 3, 6, 3, 1, 3, 5]
[1, 6, 5, 1, 6, 2, 1, 3, 3, 5, 1, 1, 1, 1, 2]
[1, 4, 1, 3, 3, 6, 5, 4, 1, 1, 6, 3, 3, 4, 4]
[4, 4, 4, 6, 1, 5, 4, 4, 3, 5, 4, 4, 3, 6, 3]
[1, 5, 1, 2, 6, 3, 2, 3, 6, 3, 1, 4, 5, 3, 4]
[2, 1, 2, 2, 1, 5, 2, 2, 4, 6, 1, 3, 2, 2, 3]
[4, 6, 5, 1]
====== Generated Address Information ============
Bitcoin Address:
1E6dxk14PHR1LyeWf75etHc5FRe56V7VPD
Private Key (Wallet Import Format):
5JszuAC6bzJT9uebYCcUKJpr6Qm47WBhPDqoL9PNSCQyCZg5dxa
Private Key (Hexadecimal 64 char) :
8c2022b93ef466ba3ca44944690e2aaa31c8aff3a7058fff24b432498dd94d33
Public Key (Full 130 character):
0458d4ef6a6853d67d6d8af4c4b96b3a3bea1512d104023c953ba0f33d705af0b4b28187c39a124
47123a2633fda64ec47d7ea4b84d366110d44be58aa369040fc
---------
Bitcoin Address (Compressed):
159qofqiLySCY55RugEz6Qs6eFZzjohU5J
Private Key (Wallet Import Format Compressed):
L1v6ZDZyjRv2SKNwSiFZZogBgssSjhpDF5gPVW1jcDNo3ySEMTE9
Public Key (Compressed):
0258d4ef6a6853d67d6d8af4c4b96b3a3bea1512d104023c953ba0f33d705af0b4
===================================================
(Press "Enter" for more dice keys, "C" and "Enter" to close.)
I wasn't content merely using dice as a base-6 number. I decided to remove any bias the cryptologists might find in your dice by randomly shuffling the rolls, bits, and hex characters, seeding urandom with your dice, and XORing the private key with system entropy. It's probably idiot-safe even if you just bang on the numberpad.
There's an undocumented feature for testing. At any point when inputting dice, you can put in a special letter to let the computer complete the rest of the dice rolls for you. "g"-generate random dice rolls; "z" - generate rolls of 1; "m" - generate the highest dice rolls possible.
I could maybe make this save the paper wallet info to a file or print at your command, or make Electrum seeds, if anybody even cares.
Addresses and such are calculated with the Python Bitcoin ECC library -
https://bitcointalksearch.org/topic/python-bitcoin-ecc-library-supports-signing-transactions-determinstic-wallets-271343 Download links:http://we.lovebitco.in/dice2key.py (Python 2.7 source)
http://we.lovebitco.in/setup-dice2key.py (for py2exe)
http://we.lovebitco.in/dice2key.exe (Windows 32 bit executable (python 2.7.6/winxp))
md5: be686743bbe03ad8178c35f785e4c6fe *dice2key.exe
You shouldn't trust my exe, but there it is. I've not documented my exact build environment to make it reproducible.