Secret Sharing Schemes #
A secret-sharing scheme bundles the deterministic sharing/reconstruction interface, the distribution on randomness, and privacy for unauthorized coalitions.
Main definitions #
Cslib.Crypto.Protocols.SecretSharing.Scheme: a secret-sharing scheme with correctness and privacyCslib.Crypto.Protocols.SecretSharing.Scheme.view: the restricted shares seen by one coalition
References #
The view distribution induced by raw sharing data.
Equations
- Cslib.Crypto.Protocols.SecretSharing.viewDistOf gen share s secret = PMF.map (fun (r : Randomness) (i : ↥s) => share r secret ↑i) gen
Instances For
A secret-sharing scheme over secret space Secret, randomness space
Randomness, party set Party, and share space Share.
Correctness is deterministic: every authorized coalition reconstructs the secret from the shares generated using any randomness seed. Privacy is distributional: unauthorized coalitions have the same view distribution for all secrets.
- gen : PMF Randomness
The distribution used to sample the protocol's randomness.
- reconstruct (s : Finset Party) : (↥s → Share) → Secret
Reconstruction from a coalition's observed shares.
- correct (r : Randomness) (secret : Secret) (s : Finset Party) : self.authorized s → (self.reconstruct s fun (i : ↥s) => self.share r secret ↑i) = secret
Authorized coalitions reconstruct the secret from the restricted view.
- view_indist (s : Finset Party) : ¬self.authorized s → ∀ (secret₀ secret₁ : Secret), viewDistOf self.gen self.share s secret₀ = viewDistOf self.gen self.share s secret₁
Unauthorized coalitions receive secret-independent view distributions.
Instances For
The restricted shares observed by the coalition s.
Instances For
Authorized coalitions reconstruct the secret from the restricted view.
Any sub-coalition of an unauthorized coalition is unauthorized as well.