Shamir Secret Sharing: Polynomial Utilities #
This file contains the Shamir-specific polynomial and interpolation utilities used to prove correctness and privacy of the public scheme construction.
The tail polynomial determined by the first n coefficients.
Equations
- Cslib.Crypto.Protocols.SecretSharing.Shamir.Polynomial.tailPolynomial n coeffs = ↑((Polynomial.degreeLTEquiv F n).symm coeffs)
Instances For
tailPolynomial n coeffs has degree < n by construction.
tailPolynomial is additive in its coefficient vector.
The standard Shamir sharing polynomial s + X * q(X).
Equations
- Cslib.Crypto.Protocols.SecretSharing.Shamir.Polynomial.sharingPolynomial secretValue tail = Polynomial.C secretValue + Polynomial.X * tail
Instances For
If the tail polynomial has degree < n, then the sharing polynomial has
natural degree at most n.
If the tail polynomial has degree < n, then the sharing polynomial has
degree < n + 1.
The coefficient-vector version of degree_sharingPolynomial_lt_succ.
Reconstruct the secret from finitely indexed share values by interpolating the unique low-degree polynomial that matches them.
Equations
Instances For
Reconstruction recovers the constant coefficient of any low-degree polynomial from its values at distinct points.
Reconstruction succeeds on the values of a Shamir sharing polynomial once the finite index type is large enough.