Documentation

VCVio.CryptoFoundations.SignatureAlg

Asymmetric Encryption Schemes. #

This file defines a type AsymmEncAlg spec σ M PK SK C to represent an protocol for asymmetric encryption using oracles in spec, with message space M, public/secret keys PK and SK, and ciphertext space C.

structure SignatureAlg (m : TypeType v) (M PK SK S : Type) extends ExecutionMethod m :
Type (max 1 v)

Signature algorithm with computations in the monad m, where M is the space of messages, PK/SK are the spaces of the public/private keys, and S is the type of the final signature.

Instances For
    def SignatureAlg.signingOracle {m : TypeType v} [Monad m] {M PK SK S : Type} (sigAlg : SignatureAlg m M PK SK S) (pk : PK) (sk : SK) :
    Equations
      Instances For
        def SignatureAlg.PerfectlyComplete {m : TypeType v} [Monad m] {M PK SK S : Type} (sigAlg : SignatureAlg m M PK SK S) :

        a SignatureAlg is perfectly complete if honest signatures are always verified.

        Equations
          Instances For
            structure SignatureAlg.unforgeableAdv {ι : Type u} {spec : OracleSpec ι} {M PK SK S : Type} (_sigAlg : SignatureAlg (OracleComp spec) M PK SK S) :
            Type (max (max 1 u) u_1)

            Adversary for testing the unforgeability of a signature scheme. We only define this if the monad for the protocol is OracleComp spec, as we need to be able to give the adversary access to a signing oracle.

            Instances For
              def SignatureAlg.unforgeableExp {ι : Type u} {spec : OracleSpec ι} {M PK SK S : Type} [DecidableEq M] [DecidableEq S] {sigAlg : SignatureAlg (OracleComp spec) M PK SK S} (adv : sigAlg.unforgeableAdv) :

              Unforgeability expiriment for a signature algorithm runs the adversary and checks returns whether or not the adversary successfully forged a signature

              Equations
                Instances For
                  noncomputable def SignatureAlg.unforgeableAdv.advantage {ι : Type u} {spec : OracleSpec ι} {M PK SK S : Type} [DecidableEq M] [DecidableEq S] {sigAlg : SignatureAlg (OracleComp spec) M PK SK S} (adv : sigAlg.unforgeableAdv) :

                  Advantage

                  Equations
                    Instances For