Documentation

Cslib.Crypto.Protocols.SecretSharing.Defs

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 #

References #

noncomputable def Cslib.Crypto.Protocols.SecretSharing.Scheme.shareDist {Secret : Type u_1} {Randomness : Type u_2} {Party : Type u_3} {Share : Type u_4} (scheme : Scheme Secret Randomness Party Share) (secret : Secret) :
PMF (PartyShare)

The distribution of the full share assignment for one secret.

Equations
Instances For
    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 (sShare)

    The view distribution induced on the coalition s.

    Equations
    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) :
      scheme.viewDist s secret₀ = scheme.viewDist s 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 : sShare) (hv : v (secretDist.bind (scheme.viewDist s)).support) :
      PMF Secret

      The posterior distribution on secrets after observing the coalition view v.

      Equations
      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 : sShare) (hv : v (secretDist.bind (scheme.viewDist s)).support) (secret : Secret) :
        (scheme.posteriorSecretDist s secretDist v hv) secret = (secretDist.bind fun (secret' : Secret) => (scheme.viewDist s secret').bind fun (v' : sShare) => PMF.pure (secret', v')) (secret, v) / (secretDist.bind (scheme.viewDist s)) v
        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) :

          Every scheme has posterior privacy by definition of Scheme.