I have been trying to understand how secret sharing methods like Shamir's secret sharing solve the problem of a share revealing information about the secret. I guess there are some random numbers involved, but how is it done mathematically?
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
A simple partial explanation addressing your "random value added", too long for a comment. This works well for the trivial case of two shares: Given a secret $x$, split it into $r$ and $x-r$, where $r$ is a random number. Having both shares, you can get the secret by as their sum.
Having only one share, you can do nothing at all, assuming there are no bounds on the variable values. This wouldn't work with integers, so some finite field gets used, e.g. modular arithmetic with a prime modulus $p$. As an example, consider $p=101$ and $r=42$. Now each secret $x$ is equally possible, e.g., $x=10$ corresponds with the other share $x-r = 10-42 = -32 = 69$ (computed modulo 101). This is what information-theoretic security means in this trivial example.
It's easy to extend this for an arbitrary number shares where all of them are needed to reconstruct the secret. I hope it can help you to understand the general method described elsewhere.
Shamir's secret sharing is based on mathematical splitting but not string splitting (as in programming languages) . So a key share cannot be considered same as partial key . Also the security is information-theoretic but not computational meaning no amount of computational power can reveal the complete secret if less than threshold secret shares are available .
play around some of the open source implementations you would get a feel of it .