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:
e3b0c44****c1c149afbf4c8996fb****7ae41e4649b934c****991b7852b855
We divide it in two parts, most significative bytes and less significative bytes.
Part 1 less significative bytes:
**7ae41e4649b934c****991b7852b855
We calculate and store the publickeys from
007ae41e4649b934c0000991b7852b855
to
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:
e3b0c44****c1c149afbf4c8996fb**
This part must be brute force from
e3b0c440000c1c149afbf4c8996fb00
to
e3b0c44ffffc1c149afbf4c8996fbff
We need to add the remaining bytes filled as ZERO
Example:
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
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
e3b0c441234c1c149afbf4c8996fb56ab7ae41e4649b934ccdef991b7852b855In that case in some point our subtraction will be something like this:
ab7ae41e4649b934ccdef991b7852b855 = e3b0c441234c1c149afbf4c8996fb56ab7ae41e4649b934ccdef991b7852b855 - e3b0c441234c1c149afbf4c8996fb56000000000000000000000000000000000
If there is a match our privatekey will be:
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