8

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?

  • Is there a reason for asking this question? – o0'. Feb 7 '13 at 16:27
  • 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 '13 at 16:56
  • Like this one? furniturebydovetail.com/wp-content/uploads/2012/08/… – o0'. Feb 7 '13 at 18:21
  • No, that's just a desk.. :) – vi.su. Feb 8 '13 at 4:51
  • 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. – Orhun Alp Oral Dec 13 '17 at 23:07
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
    Yeah, no one should be doing this by hand... – placeybordeaux Feb 7 '13 at 15:31
  • 4
    Also, if you made any mistakes, you'd be sending your coins into the void. – Nick ODell Feb 7 '13 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.

  • 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 '15 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, privacy policy and cookie policy

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