Documentation

Cryptlib.Primitives.NIKE.NIKE

Instances For

    Iterated group action #

    Acting on a base public key with f 0, ..., f (n-1) and then targetSk gives the same result as acting on targetSk's public key with the base key and then f 0, ..., f (n-1).

    def Cryptlib.Primitives.NIKE.NIKE.telescopeElem (nike : NIKE) (baseSk : nike.PrivateKey) (f : Nat → nike.PrivateKey) :
    Nat → { pk : nike.PublicKey // nike.Safe pk }

    The base public key after n group actions by f 0, ..., f (n-1).

    Equations
    Instances For
      def Cryptlib.Primitives.NIKE.NIKE.telescopeSecret (nike : NIKE) (baseSk targetSk : nike.PrivateKey) (f : Nat → nike.PrivateKey) :
      Nat → { ss : nike.SharedSecret // nike.Safe (nike.reinterpret ss) }

      The base key's shared secret with targetSk, then n group actions by f 0, ..., f (n-1).

      Equations
      Instances For
        theorem Cryptlib.Primitives.NIKE.NIKE.telescope_agree (nike : NIKE) (baseSk targetSk : nike.PrivateKey) (f : Nat → nike.PrivateKey) (n : Nat) :
        nike.groupAction targetSk (telescopeElem nike baseSk f n) = (telescopeSecret nike baseSk targetSk f n).val

        targetSk acting on telescopeElem n equals telescopeSecret n.