Home

How to Share a Secret

Author: Adi Shamir

Date: 1979

Link: PDF


Note: This note is augmented with paragraphs from Wikipedia.

  1. The author shows how to divide data D into n pieces in such a way that D is easily reconstructable from any k pieces, but even complete knowledge of k - 1 pieces reveals absolutely no information about D (i.e: all its possible values are equally likely).
  2. Such a scheme is called a (k, n) threshold scheme.
  3. Efficient threshold schemes can be used in the management of cryptographic keys.
  4. By using a (k, n) threshold scheme with n = 2k - 1 we get a very robust key management scheme: We can recover the original key even when [n / 2] = k - 1 of the n pieces are destroyed, but our opponents cannot reconstruct the key even when security breaches expose [n / 2] = k - 1 of the remaining k pieces.

  5. E.g:
  6. The scheme proposed in this paper is based on polynomial interpolation: given k points in the 2-dimensional plane (x₁, y₁), … ,(xₖ, yₖ) with distinct xᵢ's , there is one and only one polynomial q(x) of degree k - 1such that q(x) =yᵢ for all i.
  7. The essential idea of the scheme is based on the Lagrange interpolation theorem , specifically that k points is enough to uniquely determine a polynomial of degree less than or equal to k − 1. For instance:

  8. Assume that the data D is (or can be made) a number.
  9. To divide D into pieces Dᵢ:
  10. Given any subset of k of these Dᵢ values (together with their identifying indices), the coefficients of q(x) can be found by interpolation, and then evaluate D = q(O). Knowledge of just k - 1 of these values, on the other hand, does not suffice in order to calculate D.
  11. Example calculation using integer arithmetic:
  12. Problem of using integer arithmetic:

    Although the simplified version of the method demonstrated above, which uses integer arithmetic rather than finite field arithmetic, works, there is a security problem: An attacker gains information about D with every Dᵢ they find.

  13. This problem can be fixed by using finite field arithmetic. A field of size p ∈ ℙ : p > D, p > n is used.
  14. In practice this is only a small change:
  15. Useful properties of the scheme includes: