This classic 1979 result of Shamir allows a dealer D to distribute a
secret value s to n players, such that at least
players
is required to reconstruct the secret. The protocol is
information theoretically secure, i.e., any fewer than kplayers cannot gain any information about the secret by themselves.
The protocol itself is very straightforward:
The key observation here is that k points are required to uniquely
determine a polynomial with degree less than k. As a result, if
only k-1 evaluation points are known, then for any constant s' we
can create a unique and equally likely polynomial of degree k-1 by
requiring the point (0,s') to be on it. Thus, in our protocol kplayers can reconstruct the constant term s, but no smaller number
can conspire to gain any information whatsoever. Reconstruction is
done using Lagrange interpolation, a fairly standard technique. By
performing
reconstructions with the shares produced by
each k-subset of players, Byzantine errors on the part of not too
many players can be detected and corrected easily.
It is easy to extend Shamir secret sharing to let the players compute any linear combination of secrets without gaining information on intermediate results of the computation. To add two shared secrets together, the players need only add together individual shares at each evaluation point; to multiply a shared secret by a known scalar, just multiply each share by that scalar. It is more difficult, though still possible, to compute the product of two secrets, provided that at least half of the players follow the protocol correctly. Thus, it is possible to compute any ``arithmetic'' function (i.e., function involving only addition, subtraction, and multiplication) of secrets securely and robustly.