Secret sharing: Shamir's and Blakley's schemes

The act of distributing a secret, S, to a group of i members, in such a way that no single member holds any intelligible information about the secret, but when a sufficient number, k, of individuals combine their “shares”, the secret may be reconstructed. In other words: Split a secret S to a group of i number of individuals, but require cooperation from k number of individuals to learn the secret.

Adi Shamir’s scheme

Uses polynomial interpolation to recover the secret

3 shares, but only 2 required to find S

Doing a Lagrange interpolation with Sage:

points = [(9, 27), (2, 6), (5, 15)]
R = PolynomialRing(QQ, "x")
f = R.lagrange_polynomial(points)

# Prints value of `y` where `x = 3`
print(f(3))
# prints: 9

Resources

George Blakley’s scheme

Uses geometric methods to recover the secret. Explained in detail on Wikipedia