Please advise. Does the "Pollard's Kangaroo" method search for keys faster than the "Baby Step Giant Step (BSGS)" algorithm? Or do these methods have the same search speed?
Question, do you know the public key?
If not: refer to my previous reply.
If yes, go for Kangaroo, here's a famous implementation:
https://github.com/JeanLucPons/KangarooHere's a sample usage:
https://bitcointalk.org/index.php?topic=5520878.msg64805542#msg64805542 (
65bit)
For the "
start rage" and "
end range", fill up the missing characters with placehodlers of "
1" and another with "
z",
Decode each from BASE58 to HEX (
should start with 80, else something is wrong), then remove the last 4 checksum Bytes at the end and the 1 network Byte (
0x80) at front.
Compare where the results match, it should be your "
known characters".
With that fill up the rest with 0x00 up to 32Bytes to complete the "
start range" and 0xFF for the "
end range".
(
"hacky" but simple method)
example:
- Let's say that your incomplete uncompressed WIF private key is: 5JtMpyujE8M6PKpAY6ez8sn7VtkQpm
- Fill up the remaining 21 characters with 1 and z, like this: 5JtMpyujE8M6PKpAY6ez8sn7VtkQpm111111111111111111111 & 5JtMpyujE8M6PKpAY6ez8sn7VtkQpmzzzzzzzzzzzzzzzzzzzzz
- Base58 Decode the above:
808cf1e0851a2f0676799d32d9bee6c5f4f9fe8f3b628f305869b80c873e9d4a85c7c00000
808cf1e0851a2f0676799d32d9bee6c5f4f9fe8f3b6aa853d7a24eff7a4a557d54055fffff - Remove the checksum and network bytes:
8cf1e0851a2f0676799d32d9bee6c5f4f9fe8f3b628f305869b80c873e9d4a85
8cf1e0851a2f0676799d32d9bee6c5f4f9fe8f3b6aa853d7a24eff7a4a557d54 - Check where the two match: 8cf1e0851a2f0676799d32d9bee6c5f4f9fe8f3b6
- Lastly, use it as start and end range by filling up the placeholder bytes with 0 and F:
8cf1e0851a2f0676799d32d9bee6c5f4f9fe8f3b600000000000000000000000
8cf1e0851a2f0676799d32d9bee6c5f4f9fe8f3b6fffffffffffffffffffffff
Use than in your "
inFile" together with your uncompressed public key.
That example averages to 20days on a 5 year-old Desktop CPU.