Security and Private Key – Does Knowing Half of a Private Key Provide Any Useful Information?

private-keySecurity

I have a private key and I want to store a paper version of it. I would like to split it in 2 equal parts (first 32 numbers and last 32 numbers) and store them in 2 different locations.
Let's assume I'm 100% sure no one can access both parts, but it's possible that someone can steal one of them.

How much am I compromised?

To explain the question: I understand the attacker needs to guess only 32 hexadecimal numbers instead of 64 to complete the private key. Is that so much easier than guessing 64? Does this seriously undermine the security of my account? And is there something I'm missing that makes it even easier than guessing the remaining 32 numbers (ex: given the first 32 numbers only a possible subset of all remaining 32 numbers is possible due to some constraint)?

Best Answer

For a numbers of 64 hexadecimal digits, there are 16 ^ 64 = 115792089237316195423570985008687907853269984665640564039457584007913129639936 possibilities.

For a numbers of 32 hexadecimal digits, there are 16 ^ 32 = 340282366920938463463374607431768211456 possibilities.

If someone has half your private key, your security has been reduced by a factor of 340282366920938463463374607431768211456. That's a large factor, but the amount of possibilities they would need to check to brute-force your wallet is still giant. They probably still wouldn't be able to break in.

However, to prevent any loss of security if one piece is compromised I would recommend a different scheme, for example:

Generate another random 64-digit hexadecimal number, different from your private key. XOR this new number together with your private key. Now, store the new random number and the result of the XOR operation in the two different locations.

To retrieve your private key, you would need both of the pieces and XOR them together. This way, your security is not compromised at all if someone has some but not all of the pieces.

You can use this same scheme with any number of pieces.

Just be sure you do it right :-)

Related Topic