Documentation

GaudisCrypt.Lib.RO.Basic

structure state :

The ambient state of the development. (Moved here from the former scratch Unsorted.lean so that the crypto layer doesn't depend on that file.)

Instances For
    @[reducible, inline]
    abbrev Variable (a : Type u_1) :
    Type u_1

    A Variable is a lens into the ambient state.

    Equations
    Instances For

      Random oracle primitives #

      The basic actors of the random oracle framework: the RO state lens, the two query primitives (lazy_query and random_oracle_query), and their respective initialisation routines (lazy_init and random_oracle_init).

      convert and everything related to converting one to the other lives in PlonkLean.RO.Transfer. The scratch state variables used by the adversary-driven oracle loops live in PlonkLean.RO.OracleLoop.

      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      noncomputable instance instDecidableEqOutput :
      Equations
      @[implicit_reducible]
      Equations

      Sample the entire input → output function space uniformly and store it in the random oracle (as the eager initialisation).

      Equations
      Instances For

        Initialise the random oracle with no cached entries (lazy initialisation).

        Equations
        Instances For

          Lazy random-oracle query: return the cached output if present, otherwise sample uniformly and cache.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Eager random-oracle query: read the (pre-sampled) value at inp.

            Equations
            Instances For

              lazy_query only reads and writes random_oracle_state (probabilistic footprint form, countability-free).