| I thought that algorithm was crazy magic when I first heard of it. The method behind it is pretty fascinating. A nth degree polynomial is uniquely identified by n+1 points. So the algorithm interprets your secret to a binary numeric value, sets that as the value at x=0 (i.e. the constant term of the polynomial), picks random coefficients for all the polynomial degrees, then computes coordinate pairs for however many shards you need the secret split into. Then you give one of the shards to anyone who is sharing the secret. When enough of the points are input at the same time, the x=0 value can be calculated and the secret is revealed. The really neat thing about that is if you have something like "There are 500 people in the organization and 6 of them need to be present to perform this procedure", you generate 500 unique points, and any six of those points will let you compute the original secret. There is some added math bit that gets added on top to make the polynomial less easy to guess, but the concept remains the same. When the method finally clicked for me, I was left feeling like "that is so obvious, anyone could come up with it", and I feel like those are some of the best discoveries. |
https://en.bitcoin.it/wiki/Shamir_Secret_Snakeoil