Documentation

Cryptlib.Protocols.BACAP.Ratchet

BACAP ratchet and per-context key derivation #

K_i^ctx = HKDF-Expand(HKDF-Extract(salt=ctx, IKM=K_i), info=empty, 32).

Equations
Instances For

    E_i^ctx = HKDF-Expand(HKDF-Extract(salt=ctx, IKM=E_i), info=empty, 32).

    Equations
    Instances For

      Advance one step: expand HKDF(IKM=H_i, info=idx64 LE) to 96 bytes, split as H_{i+1} ‖ E ‖ K, and increment idx64.

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

        Advance to target; none if target is behind the current index.

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

            HKDF info label separating mutateKDFState from ordinary advancement.

            Equations
            Instances For

              Re-seed the ratchet state from ctx, preserving idx64 and the root key. The result addresses a fresh box sequence that cannot be found without ctx.

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

                A fresh MessageBoxIndex from 48 random bytes: 32 bytes of HKDF state, and a starting index that is the sum of two 62-bit little-endian draws, then advanced once. A random start hides how many messages precede a shared capability.

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