NOTE: This question cannot be posted to Bitcoin SE because it will not render there due to the mathematical notation. Since the mathematical notation is part of the question, this is the more appropriate forum to post on, with tag 'cryptocurrency'.
I wonder how secure it is to split up a printed Bitcoin private key into parts and keep the parts in separate secure physical locations, such as safe deposit boxes, like the Winklevoss twins.
I am considering a standard Base58Check encoded compressed WIF-format Bitcoin private key of length 52, starting with a K or L.
Imagine it was cut up into 4 pieces and 3 were found. To guess the last 13 base58 characters by brute force would require $58^{13}$ operations, taking time :
$$t = t_0 \left(\frac{\Delta t}{C}\right) \hspace{1em} \mbox{(years)} $$
where $t_0 \simeq 2.7$ million, $\Delta t =$ time per operation (per single core) in nanoseconds, and $C =$ number of cores running in parallel, where each operation requires :
- form the full 52 char key
- base58 decode it to 38 byte binary string
- check the checksum in the last 4 bytes equals first 4 bytes of the double SHA256 hash of the first 34 bytes
- if yes for step 3) verify private key maps to desired bitcoin address
To guess k more characters than that would take :
$$t = t_0 \left(\frac{\Delta t}{C}\right) \cdot 58^k \hspace{1em} \mbox{(years)} $$
Thus for splitting into 2 pieces ($k = 13$), guessing one half of the key would take :
$$t = 2.2 \times 10^{29} \times \left( \frac{\Delta t}{C} \right) \hspace{1em} \mbox{years} $$
However how low a $\Delta t$ could be achieved in practice ? And what kind of a value could $C$ realistically have, the number of cores that could be marshalled?
In particular I wondered whether splitting into 2 pieces is absolutely secure. And how long into the future it would be before that was no longer the case.
Below are some test partial private keys (in compressed WIF Base58Check format), the unknown characters are displayed as dashes. If anyone wants to try and hack them please post up your results. Some empirical data on typical $\Delta t$ values (time per brute force operation) for different software scripts and hardware specs would be helpful.
Test 1 - Find Right 13
----------------------
Private key :
KzVQ743N6jkKFKsmsdsf9nmx7D1vdTeobc2eFSF-------------
Bitcoin address :
1BhjTbu5iWEgkG9HxHqoDkagvdUDh2UYPz
Test 2 - Find Right 26
Private key :
L4UArgExSB4bdtC5SghFuPQghk--------------------------
Bitcoin address :
19QPobhrbQ28UsCVGbJKijnmGHFEAJ8FJK
Test 3 - Find Left 13
Private key :
-------------c9Dkk3UKidxmupMtwHFYLxZNjbeq2SKd2eUWcRh
Bitcoin address :
1P15r2MrtCYec7DpqfGN3rn3BqLYN7E6a1
Test 4 - Find Left 26
Private key :
--------------------------VVWWsyvpetNHhiaLtBcZ3RkBHg
Bitcoin address :
1HVhAuVV5K8rFSiFMqNJZrT72u649bvtBV
Test 5 Find 2nd Quarter 13
Private key :
L4gzpA7sUULxp-------------Y6LQWCgveEMNuCdnao9GFEhiyK
Bitcoin address :
1LDtdQPgj3HacPFCBLrdFPausLMRTBRFk6
Test 6 Find 3rd Quarter 13
Private key :
Kyrs2tSXduPtE6sMjDMnx2yscm-------------H3KwLimK92vDe
Bitcoin address :
16JGYPqog44EiM36uAVkam5j2ereJsmEGX