Post
Topic
Board Project Development
Re: Keyhunt - development requests - bug reports
by
albert0bsd
on 09/03/2022, 16:37:57 UTC
1. How to split the private key into parts and brute through it in parts?

I will explain this one using only privatekeys. But remember that those calculations depend only if you already have the TARGET PUBLICKEY. if you don't have the publickey this example doesn't apply.

Lets to asume that we have the key like you example:
Code:
e3b0c44****c1c149afbf4c8996fb****7ae41e4649b934c****991b7852b855

We divide it in two pats, most significative bytes and less significative bytes.

Part 1 less significative bytes:

Code:
**7ae41e4649b934c****991b7852b855

We calculate and store the publickeys  from

Code:
007ae41e4649b934c0000991b7852b855
to

Code:
ff7ae41e4649b934cffff991b7852b855

In this example is 2^24 publickeys (16777216 publickey) this can be done in seconds, this part is the precalculated data it can be more but all depend of how much memory do you have.

now the second part:
Code:
e3b0c44****c1c149afbf4c8996fb**

This part must be brute force from

Code:
e3b0c440000c1c149afbf4c8996fb00

to

Code:
e3b0c44ffffc1c149afbf4c8996fbff

We need to add the remaining bytes filled as ZERO

Example:

Code:
e3b0c440000c1c149afbf4c8996fb00000000000000000000000000000000000
e3b0c440000c1c149afbf4c8996fb01000000000000000000000000000000000
e3b0c440000c1c149afbf4c8996fb02000000000000000000000000000000000
e3b0c440000c1c149afbf4c8996fb03000000000000000000000000000000000
...
e3b0c44ffffc1c149afbf4c8996fbff000000000000000000000000000000000

We need to calculate each of those public key, this is again 2^24 public keys to be calculate.
For EACH of those "TEMP PUBLICKEY" values we need to do a Public keys subtraction

Code:
NEW PUBLICKEY = TARGET PUBLICKEY - TEMP PUBLICKEY

Now we need to compare the NEW PUBLICKEY against our precalcualted data if there is a match then we only need to concatenate or Add our partials privatekey to get the real one.

Example, lets to say that the TARGET PRIVATEKEY is e3b0c441234c1c149afbf4c8996fb56ab7ae41e4649b934ccdef991b7852b855

In that case in some point our subtraction  will be something like this:

Code:
ab7ae41e4649b934ccdef991b7852b855 = e3b0c441234c1c149afbf4c8996fb56ab7ae41e4649b934ccdef991b7852b855 - e3b0c441234c1c149afbf4c8996fb56000000000000000000000000000000000

If there is a match our privatekey will be:

Code:
ab7ae41e4649b934ccdef991b7852b855  + e3b0c441234c1c149afbf4c8996fb56000000000000000000000000000000000

maybe there are ready-made solutions

NO, there is no public program that do that actually, because those examples of missing characters are unlikely to happen.

2. How to brute a private key with missing characters together?

Is exactly the same but with the advantage that we can use BSGS at full capacity