Secret Sharing: Definitions #
Privacy for secret sharing is part of the Scheme interface. This file exposes
the corresponding view and posterior distributions, plus theorem-friendly
consequences of the built-in privacy field.
Main definitions #
Cslib.Crypto.Protocols.SecretSharing.Scheme.shareDist: the full share distribution for one secretCslib.Crypto.Protocols.SecretSharing.Scheme.viewDist: the distribution of the restricted view for one coalitionCslib.Crypto.Protocols.SecretSharing.Scheme.posteriorSecretDist: the posterior distribution on secrets after observing one viewCslib.Crypto.Protocols.SecretSharing.Scheme.PerfectlyPrivate: posterior equals prior for unauthorized coalitionsCslib.Crypto.Protocols.SecretSharing.Scheme.perfectlyPrivate: every scheme has posterior privacy
References #
noncomputable def Cslib.Crypto.Protocols.SecretSharing.Scheme.viewDist {Secret : Type u_1} {Randomness : Type u_2} {Party : Type u_3} {Share : Type u_4} (scheme : Scheme Secret Randomness Party Share) (s : Finset Party) (secret : Secret) :
PMF (↥s → Share)
The view distribution induced on the coalition s.
Equations
- scheme.viewDist s secret = Cslib.Crypto.Protocols.SecretSharing.viewDistOf scheme.gen scheme.share s secret
Instances For
theorem Cslib.Crypto.Protocols.SecretSharing.Scheme.viewDist_eq_of_not_authorized {Secret : Type u_1} {Randomness : Type u_2} {Party : Type u_3} {Share : Type u_4} (scheme : Scheme Secret Randomness Party Share) {s : Finset Party} (hs : ¬scheme.authorized s) (secret₀ secret₁ : Secret) :
Unauthorized coalitions receive secret-independent view distributions.
noncomputable def Cslib.Crypto.Protocols.SecretSharing.Scheme.posteriorSecretDist {Secret : Type u_1} {Randomness : Type u_2} {Party : Type u_3} {Share : Type u_4} (scheme : Scheme Secret Randomness Party Share) (s : Finset Party) (secretDist : PMF Secret) (v : ↥s → Share) (hv : v ∈ (secretDist.bind (scheme.viewDist s)).support) :
PMF Secret
The posterior distribution on secrets after observing the coalition view
v.
Equations
- scheme.posteriorSecretDist s secretDist v hv = Cslib.Probability.PMF.posteriorDist secretDist (scheme.viewDist s) v hv
Instances For
@[simp]
theorem Cslib.Crypto.Protocols.SecretSharing.Scheme.posteriorSecretDist_apply {Secret : Type u_1} {Randomness : Type u_2} {Party : Type u_3} {Share : Type u_4} (scheme : Scheme Secret Randomness Party Share) (s : Finset Party) (secretDist : PMF Secret) (v : ↥s → Share) (hv : v ∈ (secretDist.bind (scheme.viewDist s)).support) (secret : Secret) :
def Cslib.Crypto.Protocols.SecretSharing.Scheme.PerfectlyPrivate {Secret : Type u_1} {Randomness : Type u_2} {Party : Type u_3} {Share : Type u_4} (scheme : Scheme Secret Randomness Party Share) :
Perfect privacy for unauthorized coalitions: conditioning on a view does not change the prior on secrets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem Cslib.Crypto.Protocols.SecretSharing.Scheme.perfectlyPrivate {Secret : Type u_1} {Randomness : Type u_2} {Party : Type u_3} {Share : Type u_4} (scheme : Scheme Secret Randomness Party Share) :
scheme.PerfectlyPrivate
Every scheme has posterior privacy by definition of Scheme.