4 ms·
You're looking for secret sharing algorithms, which is what this is using behind the hood. The classic (used in OP) is Shamir's secret sharing algorithm [1]. Th
by nbadg 6y ago
You're looking for secret sharing algorithms, which is what this is using behind the hood. The classic (used in OP) is Shamir's secret sharing algorithm [1]. The general gist of it, simplified into the 2-of-N case, is:
1. the encryption key is the y-intercept of a line
2. each shared key ("horcrux" in the OP terminology) is a point along the line
3. more keys are simply more points on the line
Once you have any two keys, you can fully define the line and recover the Y intercept.
This gives you really strong guarantees because each point on its own reveals nothing about the y-intercept; without satisfying the M-of-N threshold, the value could still be anything.
Generalizing this to the M-of-N case simply involves increasing the order of the curve (ie line -> parabola -> ...)
[1] https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing https://en.wikipedia.org/wiki/Shamir%27s_Secret_Sharing