sharedsecret

Package sharedsecret is implementation of Shamir's Secret Sharing algorithm.
Shamir's Secret Sharing is an algorithm in cryptography created by Adi Shamir. It is a form of
secret sharing, where a secret is divided into parts, giving each participant its own unique
part. To reconstruct the original secret, a minimum number of parts is required. In the threshold
scheme this number is less than the total number of parts. Otherwise all participants are needed
to reconstruct the original secret.
See wiki page.
Examples
Distribute
With the Distribute
function, a given secret can be distributed to shares.
secret := big.NewInt(120398491412912873)
shares := Distribute(secret, 5, 3)
recovered := Recover(shares[1], shares[3], shares[0])
fmt.Println(recovered)
Output:
120398491412912873
New
With the New
function, a random secret is generated and distributed into shares. Both the
secret and the shares are returned.
shares, secret := New(5, 3)
wrong := Recover(shares[1], shares[3])
correct := Recover(shares[1], shares[3], shares[0])
fmt.Println(secret.Cmp(wrong) != 0, secret.Cmp(correct) == 0)
Output:
true true
Readme created from Go doc with goreadme