How to generate keypair completely offline?

8

3

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?

vi.su.

Posted 2013-02-07T07:38:34.127

Reputation: 1 714

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 2017-12-13T23:07:45.430

Is there a reason for asking this question?o0'. 2013-02-07T16:27:38.300

Just to be extra careful.. may be its more of a trouble than what its worth. I will choose an offline desktop. :)vi.su. 2013-02-07T16:56:20.780

No, that's just a desk.. :)vi.su. 2013-02-08T04:51:16.050

Answers

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.

ThePiachu

Posted 2013-02-07T07:38:34.127

Reputation: 41 594

2Yeah, no one should be doing this by hand...placeybordeaux 2013-02-07T15:31:25.110

4Also, if you made any mistakes, you'd be sending your coins into the void.Nick ODell 2013-02-07T16:05:29.957

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.

Mikhail Baynov

Posted 2013-02-07T07:38:34.127

Reputation: 47

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 2015-11-10T09:13:40.820

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

Ajoy Bhatia

Posted 2013-02-07T07:38:34.127

Reputation: 167

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

skaht

Posted 2013-02-07T07:38:34.127

Reputation: 2 588