9

Is it possible to generate address and private key pair completely offline, using only dice / other random number generators, calculators, paper and pen? If yes, whats the procedure and formulas used?

5
  • Is there a reason for asking this question?
    – o0'.
    Feb 7, 2013 at 16:27
  • 1
    Just to be extra careful.. may be its more of a trouble than what its worth. I will choose an offline desktop. :)
    – vi.su.
    Feb 7, 2013 at 16:56
  • Like this one? furniturebydovetail.com/wp-content/uploads/2012/08/…
    – o0'.
    Feb 7, 2013 at 18:21
  • No, that's just a desk.. :)
    – vi.su.
    Feb 8, 2013 at 4:51
  • 1
    Actually, that's a wise question to ask, even offline hardwares may have a pre-defined pattern for generating random numbers. So no complete privacy is guaranteed by using hardware systems. Dec 13, 2017 at 23:07

4 Answers 4

7

Yes, it is possible to create such keypairs offline, but the calculations are long and complex. You would need to find out how to:

1) Create a secp256k1 public key from a private key

2) Perform SHA-256 hashing

3) Perform RIPEMD-160 hashing

4) Be able to convert the final value into Base 58

Generally, the calculations would be very tedious; this is what we have computers for.

2
  • 2
    Yeah, no one should be doing this by hand... Feb 7, 2013 at 15:31
  • 4
    Also, if you made any mistakes, you'd be sending your coins into the void.
    – Nick ODell
    Feb 7, 2013 at 16:05
3

A good article on keypair generation http://www.swansontec.com/bitcoin-dice.html

Essentially, you can generate your private key using dice, and use a computer to derive an address from that private key.

1
  • The article seems very relevant, however it would be better if you added a short summary of the contents and not only left the link.
    – Murch
    Nov 10, 2015 at 9:13
0

Here are instructions to create a Bitcoin address and associated key-pair completely offline. It is straight from the Bitcoin Wiki.

https://en.bitcoin.it/wiki/How_to_set_up_a_secure_offline_savings_wallet

0

This working computer example complements @ThePiachu.

Let's assume your random number generator mechanism generated this very low entropy 256-bit number in hexadecimal format that will become the private key:

0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff

1. Associated compressed Bitcoin WIF-encoded private key:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" | sed 's/$/01/' | bx base58check-encode -v 128

KwDiDMtpksBAcfyHsVS5XzmirtyjKWSeaeM9U1QppugixMUeKMqp

2. Associated compressed Bitcoin public address:

% echo "0000111122223333444455556666777788889999aaaabbbbccccddddeeeeffff" | bx ec-to-public | bx ec-to-address -v 0

1PbStXjfDNBU6FZA2iSeisVWwCFN9GK1eQ

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.