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
    • One or more equations did not get rendered due to their size.
    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
      • One or more equations did not get rendered due to their size.
      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
          • One or more equations did not get rendered due to their size.
          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